DEVELOPMENT DOCUMENTATION / MCP
Make local tools reachable by authorized agents.
Model Context Protocol exposes tools and related protocol exchanges. Agent Uplink transports selected MCP profiles to fixed local HTTP services or supervised stdio servers.
Compatibility profiles
| Profile | Lifecycle | HTTP surface | Stdio ownership |
|---|---|---|---|
| mcp-2026-07-28 | Discovery and per-request metadata; no lifecycle translation. | POST; GET and DELETE answered 405 before backend dispatch. | One child per request; no cross-request child state. |
| mcp-2025-11-25 | Initialize lifecycle and session ownership. | POST, GET and DELETE. | One child per session. |
These are the repository's pinned profiles, not a claim to support every MCP revision. The bridge forwards raw JSON-RPC bytes rather than retyping messages and dropping unknown metadata.
Local export choices
- HTTP: a locally configured backend destination, not a caller-supplied URL.
- Stdio: a fixed local executable and launch policy, supervised by the device.
- Consumer: an authorized application calls the enrolled device/service route; a tool name is not an authorization grant.
Limits and interoperability
| Area | Current scope |
|---|---|
| Pinned interoperability | The official rmcp 3.4.0 fixture exercises the two profiles; this is not certification of every SDK or server. |
| Request size | Default 1 MiB, configured ceiling 16 MiB. |
| JSON response | Default 8 MiB, ceiling 64 MiB; enforced on the device. |
| Cumulative SSE response | Default 64 MiB, ceiling 1 GiB. |
| Consumer transport | HTTP/1.1 and HTTP/2 accepted by the profile; full cross-client coverage remains separate. |
Do not assume
Browser access, unrestricted headers, OAuth flows, Last-Event-ID replay, every resources/prompts/sampling/elicitation exchange, and cross-platform child cleanup are not blanket supported. Header allowlists differ by profile. In particular, the browser Origin/CORS profile is not delivered.
Failure behavior
A transport interruption is not proof that a tool did not run. Respect explicit unknown outcomes and cancellation semantics. Do not blindly retry a side-effecting tool call. Session isolation and wider conformance acceptance still have open work.
Source & review
Reviewed against eb2422008a3a on 2026-09-22. Based on docs/mcp.md, docs/tasks.md, crates/tunnel-mcp. Historical test evidence is not a new test run.