The official MCP TypeScript SDK shipped `@modelcontextprotocol/[email protected]` on 2026-09-23 (npm). Headline: request-time `scopeChallenge` callbacks on tools, resources, resource templates, and prompts that return the exact scope set for an `insufficient_scope` challenge; `createMcpHandler` and Streamable HTTP answer HTTP 403 before handler/SSE setup. Patches add a default **4 MiB** request body limit and JSON-RPC batch cap of 100, treat request id `0` as a real id, stop sending `notifications/cancelled` for `initialize`, and enforce `Mcp-Name` on modern tasks routes. For Agent gateways wiring MCP to OAuth resource servers, this is a permissions + DoS hardening minor.
- ✓Shipped: @modelcontextprotocol/[email protected] on GitHub + npm
- ✓Auth: scopeChallenge/requireScopes (#1624); 403 insufficient_scope per Authorization spec
- ✓Hardening: 4MiB body default, batch≤100; request id 0 treated as real
- ✓Protocol: no cancel notify on initialize; Mcp-Name checked on modern tasks routes
- ✓Docs: MCP architecture + typescript-sdk repo; npm i @modelcontextprotocol/[email protected]
🔗
Project Links & Resources
Direct AccessDirect access to official project resources and documentation🔬
In-Depth Technical Analysis
Core Background & Industry Pain Points MCP servers behind enterprise OAuth often need per-tool/resource scopes, not only connection-level bearer checks. Unbounded Streamable HTTP body reads invite DoS; treating JSON-RPC id 0 as falsy broke cancel/debounce for the first server→client request. Gateways need finer auth challenges and hard read limits. ### Architecture Highlights & Internals @modelcontextprotocol/[email protected] adds scopeChallenge / requireScopes via #1624, returning HTTP 403 insufficient_scope before handler/SSE. Default 4 MiB body cap and batch≤100; id 0 is real; no cancel notify on initialize; modern tasks validate Mcp-Name vs params.taskId. See Authorization. ### Authoritative Benchmarks & Measured Scores No public latency/throughput board. Validate 403 challenges, 413 on oversized bodies, cancel-on-id-0, and no initialize cancel notify. ### Developer Hands-on Guide npm i @modelcontextprotocol/[email protected] (npm). Attach scopeChallenge/requireScopes, tune maxRequestBodySize, ensure tasks clients send Mcp-Name. Repo: typescript-sdk.
Discussion & Comments
0Sign in to join the discussion
Connect with AI developers to exchange benchmark insights.