MCP: qualify one negotiated protocol adapter across legacy and current servers
- Dominant language
- Rust
- Stars
- 41k
- Forks
- 3.6k
- Avg merge
- 13h 59m
- Merged PRs (30d)
- 299
Description
Release-checkout source inspection at b00afeb3a confirms `crates/tui/src/mcp.rs:1796` sends protocolVersion `2024-11-05` through its custom transport, followed by notifications/initialized at 1821. Cargo.lock contains rmcp 3.2.0. Updating the dependency alone does not replace this path. This is source evidence of a modernization opportunity, not a reproduced 0.9.13 interoperability failure.
Bounded experiment: compare the existing transport with an RMCP adapter for one complete stdio and HTTP handshake/discovery/tool path. Preserve reviewed-plugin identity/trust, credential and redirect rules, cancellation, catalog identity, and compatibility with existing servers. Evaluate current protocol negotiation and input-required/reconnect behavior against the official specifications; do not introduce a second MCP authority.
Acceptance: hermetic old/current/unsupported-version fixtures, strict negotiation, cancellation during auth and tool execution, credential-free errors, reconnect/catalog invalidation, and an unchanged supported legacy journey. Record wire traces without secrets. Migrate the last consumer of the chosen boundary or stop the migration. Stop if trust/compatibility regresses or the adapter adds a parallel transport authority. Core plan C05/C15; backlog beyond the 0.9.13 cut unless a separate current release defect is reproduced.
Research references: [MCP protocol update](), [RMCP 3.3 release](). Related completed RFC Hmbown/Codewhale#2190 is design history; Hmbown/Codewhale#5974 retains its independent freeze acceptance.
Contributor guide
Research direction
Start by reading crates/tui/src/mcp.rs around lines 1796 and 1821, then inspect Cargo.lock for rmcp 3.2.0 and trace the current stdio and HTTP handshake, discovery, and tool paths. Compare that boundary with an RMCP adapter using hermetic old/current/unsupported-version fixtures; done means the listed trust, credential, cancellation, reconnect, catalog, legacy-compatibility, and wire-trace requirements pass, or the migration is explicitly stopped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, cli, networking
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100