mapbox / mapbox/mcp-devkit-server
Track migration to MCP spec 2026-07-28 (stateless, MRTR, deprecated Sampling)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 60
- Forks
- 12
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 5
Description
## Summary
The MCP spec released a new revision on 2026-07-28 (announced at https://blog.modelcontextprotocol.io/posts/2026-07-28/) that moves from the stateful bidirectional protocol to a stateless request/response model. Key changes relevant to us:
- The `initialize`/`initialized` handshake and session IDs are eliminated; each request is self-describing.
- Server-initiated elicitation is replaced by "Multi Round-Trip Requests" (MRTR).
- **Sampling is deprecated.**
- Roots and Logging are also deprecated.
- Header-based routing, cacheable list results, tasks moved to an official extensions framework.
- Security: RFC 9207 issuer validation required, shift from Dynamic Client Registration toward Client ID Metadata Documents (CIMD).
- Deprecations get a 12-month minimum window; legacy HTTP+SSE transport gets a year-long offramp. No fire drill, but not indefinite either.
As of this issue, `@modelcontextprotocol/sdk` on npm is still on the `1.x` line (`1.30.0` latest) — there is no separate `2.0.0` package. The new spec appears to be supported via 1.x releases, not a major SDK version bump.
## Why this needs a dedicated pass, not an incidental bump
This repo is actively building on the mechanisms this spec revision replaces/deprecates — most concretely, the in-progress `add-preview-token-elicitation` work (PR #57) depends on server-initiated elicitation, the exact thing MRTR replaces. Migrating means redesigning against whatever MRTR's actual API surface turns out to be, not just bumping a dependency version.
## What to check before starting
- [ ] Confirm real client support for MRTR (Claude Desktop, Claude Code, VS Code Copilot) — no point redesigning against a mechanism clients can't use yet.
- [ ] Read the SDK's actual migration guide/changelog for the TypeScript SDK version(s) that implement 2026-07-28 support.
- [ ] Audit this repo for every current use of `elicitInput`/Sampling beyond the in-progress PR #57 work.
## Non-goals for now
- No urgency given the 12-month deprecation window.
- The routine SDK dependency bump (`1.29.0` → `1.30.0`) is handled separately and does not itself adopt the new spec — see the corresponding PR.
See also mapbox/mcp-server#245 for the equivalent tracking issue there.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the TypeScript SDK migration guide and changelog for support of the 2026-07-28 specification, then verify MRTR support in Claude Desktop, Claude Code, and VS Code Copilot. Audit this repository for uses of elicitInput and Sampling beyond PR #57. The work is complete when client support, SDK support, and all affected repository usage are documented well enough to define the migration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100