Skip to content

Commit e9a48d7

Browse files
committed
refactor(fork): drop sep-2243-draft feature, document Claude-CLI-reality posture
Applies the workspace's Claude-CLI-reality filter to the fork: - Delete `sep-2243-draft` feature + `crates/rmcp/src/sep2243_draft.rs` scaffold entirely. The SEP is still draft, the fork's implementation was a scaffold only (no transport plumbing), and Claude CLI does not emit or honour the `Mcp-Method` / `Mcp-Name` headers or the `x-mcp-header` tool-param promotion. No consumer, no reason to keep. - Remove `sep-2243-draft` from `crates/rmcp/Cargo.toml` features list and docs.rs metadata. - Fix `docs.anthropic.com` → `docs.claude.com` in the `anthropic_ext` module doc. - Extend `ROADMAP.md` with a fork-specific changes section documenting: * What `anthropic-ext` adds (channel + permission relay + maxResultSizeChars + structured-with-text-fallback + 2KB lint). * What was deleted (sep-2243-draft). * What was proposed and rejected (notify_tasks_status, search_tools helper, runtime toolset gating) — all lack a Claude-CLI consumer. * What's under consideration (#[resource] macros, Origin-header validation). cargo check --all-features + the anthropic-ext feature set both pass.
1 parent 523c9a6 commit e9a48d7

4 files changed

Lines changed: 53 additions & 253 deletions

File tree

ROADMAP.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,55 @@ These draft/extension scenarios are tracked but do not count toward tier advance
6969
| `auth/client-credentials-jwt` | extension | ❌ Failed — JWT `aud` claim verification error |
7070
| `auth/client-credentials-basic` | extension | ✅ Passed |
7171
| `auth/cross-app-access-complete-flow` | extension | ❌ Failed — sends `authorization_code` grant instead of `jwt-bearer` |
72+
73+
---
74+
75+
## Fork-specific changes (UserGeneratedLLC fork)
76+
77+
The fork diverges from upstream `modelcontextprotocol/rust-sdk` on Claude Code
78+
CLI support. Baseline posture: **skills and code carry only what Claude Code
79+
CLI actually honours**. See the downstream skill
80+
[`.cursor/skills/create-mcp-primitive/audit-checklist.md`](https://github.com/UserGeneratedLLC/iris/blob/main/.cursor/skills/create-mcp-primitive/audit-checklist.md)
81+
for the authoritative Claude-CLI-reality anti-pattern list.
82+
83+
### Divergences from upstream
84+
85+
- **Added**`anthropic-ext` feature: `anthropic/maxResultSizeChars`,
86+
`claude/channel` + `claude/channel/permission` capabilities,
87+
`notify_claude_channel` + `notify_claude_channel_permission` Peer helpers,
88+
`structured_with_text_fallback` helper (Claude Code #41361 workaround),
89+
`lint::warn_if_over_2kb` (Claude Code #43474 2 KB truncation cliff).
90+
91+
### Deleted (no Claude-CLI consumer)
92+
93+
- **`sep-2243-draft`** — draft SEP, never implemented in the fork beyond a
94+
scaffold; Claude CLI doesn't emit or honour the `Mcp-Method` / `Mcp-Name`
95+
headers or the `x-mcp-header` tool-param promotion. Removed 2026-04-23.
96+
97+
### Proposed but rejected
98+
99+
- **`Peer::notify_tasks_status` emitter** — the workspace previously
100+
substituted via `notify_logging_message`, but per the Claude-CLI-reality
101+
filter both the MCP `tasks/*` primitive and `notifications/message` are
102+
unrendered / not implemented client-side (anthropics/claude-code#18617,
103+
#3174). No consumer; the workspace deleted both paths instead of adding
104+
the emitter.
105+
- **`search_tools` meta-tool helper** — Claude CLI already defers MCP tools
106+
via its built-in client-side Tool Search. Server-side `search_tools` would
107+
be redundant for the sole consumer.
108+
- **Runtime toolset gating à la `github-mcp-server --toolsets`**
109+
`notifications/tools/list_changed` is dropped mid-turn on stdio by Claude
110+
CLI (anthropics/claude-code#50515). The existing category-level
111+
`LOAD_INITIALLY = false` + `load_tool_group` pattern is sufficient for
112+
HTTP consumers; runtime toolset gating on stdio is a no-op.
113+
114+
### Under consideration
115+
116+
- **`#[resource]` + `#[resource_router]` + `#[resource_handler]` macros**
117+
would delete ~300 LOC of hand-rolled `ResourceRouter<S>` boilerplate
118+
across the 4 downstream workspace MCPs. Real consumer. Tracked for a
119+
future fork PR.
120+
- **`Origin` header validation** — currently listed above under Tier 1
121+
server conformance. `allowed_hosts` covers `Host`; `Origin` needs a
122+
first-class `allowed_origins` field on `StreamableHttpServerConfig` to
123+
match the 2025-11-25 spec requirement.

crates/rmcp/Cargo.toml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ exhaustive_enums = "warn"
1616
[package.metadata.docs.rs]
1717
features = [
1818
"anthropic-ext",
19-
"sep-2243-draft",
2019
"auth",
2120
"auth-client-credentials-jwt",
2221
"base64",
@@ -126,12 +125,6 @@ elicitation = ["dep:url"]
126125
# the fleet targets Claude Code as the MCP client.
127126
anthropic-ext = []
128127

129-
# Forward-looking scaffold for SEP-2243 (HTTP Header Standardization, Draft).
130-
# Exposes header-name constants, `Tool::with_mcp_header_param` builder, and
131-
# server-side header extraction. Full transport-layer plumbing lands when
132-
# SEP-2243 finalizes. Off by default.
133-
sep-2243-draft = []
134-
135128
# reqwest http client
136129
__reqwest = ["dep:reqwest"]
137130

crates/rmcp/src/lib.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,11 @@ mod error;
77
pub use error::{Error, ErrorData, RmcpError};
88

99
/// Claude Code-specific server extensions (maxResultSizeChars, claude/channel).
10-
/// See <https://docs.anthropic.com/en/docs/claude-code/mcp>.
10+
/// See <https://docs.claude.com/en/docs/claude-code/mcp>.
1111
#[cfg(feature = "anthropic-ext")]
1212
pub mod anthropic_ext;
1313
/// Basic data types in MCP specification
1414
pub mod model;
15-
/// Forward-looking scaffold for SEP-2243 (HTTP Header Standardization, Draft).
16-
/// See <https://modelcontextprotocol.io/seps/2243-http-standardization>.
17-
#[cfg(feature = "sep-2243-draft")]
18-
pub mod sep2243_draft;
1915
#[cfg(any(feature = "client", feature = "server"))]
2016
pub mod service;
2117
#[cfg(feature = "client")]

crates/rmcp/src/sep2243_draft.rs

Lines changed: 0 additions & 241 deletions
This file was deleted.

0 commit comments

Comments
 (0)