Skip to content

Commit 6f586f3

Browse files
committed
Update roadmap
Signed-off-by: Mihai Criveti <[email protected]>
1 parent 0c72662 commit 6f586f3

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

docs/docs/architecture/roadmap.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,80 @@
22

33
---
44

5+
## 🌐 Federation & Routing
6+
7+
### 🧭 Epic: Streamable HTTP Transport (Protocol Revision 2025-03-26)
8+
9+
> **Note:** stdio and the legacy HTTP+SSE transports are already supported; this epic adds the new Streamable HTTP transport per the 2025-03-26 spec.
10+
11+
* **HTTP POST Messaging**
12+
**As** an MCP client
13+
**I want** to send every JSON-RPC request, notification, or batch in a separate HTTP POST to the MCP endpoint, with `Accept: application/json, text/event-stream`
14+
**So that** the server can choose between immediate JSON replies or initiating an SSE stream.
15+
16+
* **SSE-Backed Streaming on POST**
17+
**As** a developer
18+
**I want** the server, upon receiving request-bearing POSTs, to return `Content-Type: text/event-stream` and open an SSE stream—emitting JSON-RPC responses, server-to-client requests, and notifications until complete—before closing the stream
19+
**So that** clients can consume large or real-time payloads incrementally without buffering.
20+
21+
* **Unsolicited Server Notifications via GET**
22+
**As** a client
23+
**I want** to open an SSE stream with a GET (using `Accept: text/event-stream`) to the same MCP endpoint
24+
**So that** I can receive unsolicited server-to-client messages independently of POST calls.
25+
26+
* **Session Management & Resumability**
27+
**As** an operator
28+
**I want** the server to issue a secure `Mcp-Session-Id` on Initialize, require it on subsequent calls (400 if missing), allow DELETE to terminate, and support SSE resumability via `Last-Event-ID` headers
29+
**So that** clients can manage, resume, and explicitly end long-running sessions robustly.
30+
31+
* **Security & Compatibility**
32+
**As** a platform admin
33+
**I want** to validate `Origin` headers, bind to localhost by default, and enforce authentication against DNS rebinding—while optionally preserving the legacy HTTP+SSE endpoints for backward compatibility with 2024-11-05 clients
34+
**So that** we uphold security best practices and maintain dual-transport support.
35+
36+
---
37+
38+
## 🌐 Federation & Routing
39+
40+
### 🧭 Epic: A2A Transport Support
41+
42+
Enable full-duplex, application-to-application (A2A) integration so that virtual servers and gateways can speak A2A natively.
43+
44+
* **A2A Gateway Registration**
45+
**As** a platform admin
46+
**I want** to register A2A-enabled servers as gateways (in addition to HTTP/SSE/WS)
47+
**So that** I can federate A2A backends alongside standard MCP peers.
48+
49+
* **A2A Tool Invocation**
50+
**As** a developer
51+
**I want** to call A2A servers as tools via the A2A protocol
52+
**So that** A2A-native services appear in my tool catalog and handle messages over A2A transports.
53+
54+
* **Expose Virtual Servers via A2A**
55+
**As** an operator
56+
**I want** to expose virtual servers (i.e. REST-wrapped MCP servers) over the A2A transport
57+
**So that** clients that only support A2A can invoke those servers transparently.
58+
59+
---
60+
61+
## ⚙️ Lifecycle & Management
62+
63+
### 🧭 Epic: Virtual Server Protocol Version Selection
64+
65+
Allow choosing which MCP protocol version each virtual server uses.
66+
67+
* **Per-Server Protocol Version**
68+
**As** a platform admin
69+
**I want** to specify the MCP protocol version (e.g. 2025-03-26 or earlier) on each virtual server
70+
**So that** clients requiring legacy behavior can continue to work without affecting others.
71+
72+
* **Protocol Compatibility Testing**
73+
**As** a developer
74+
**I want** to validate a virtual server's behavior against multiple protocol versions in the Admin UI
75+
**So that** I can catch breaking changes before rolling out new servers.
76+
77+
---
78+
579
## 🔐 Authentication & Identity
680

781
### 🧭 [#87 Epic: JWT Token Catalog with Per-User Expiry and Revocation](https://github.com/IBM/mcp-context-forge/issues/87)

0 commit comments

Comments
 (0)