Hmbown / Hmbown/Codewhale

MCP: qualify one negotiated protocol adapter across legacy and current servers

Open
#6,131 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.