Skip to content

Upgrade MCP SDK to 1.29#35

Open
itz4blitz wants to merge 1 commit into
tacticlaunch:mainfrom
itz4blitz:justin/mcp-sdk-upgrade
Open

Upgrade MCP SDK to 1.29#35
itz4blitz wants to merge 1 commit into
tacticlaunch:mainfrom
itz4blitz:justin/mcp-sdk-upgrade

Conversation

@itz4blitz

@itz4blitz itz4blitz commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Upgrades @modelcontextprotocol/sdk from ^1.6.0 to ^1.29.0 and hardens the MCP smoke test with wire-contract assertions so future SDK bumps are verified against the actual protocol surface.

Changes

  • package.json / package-lock.json: @modelcontextprotocol/sdk ^1.6.0^1.29.0. No other dependency or version changes.
  • scripts/mcp-smoke-test.mjs: new wire-contract assertions on top of the existing tool/resource/prompt checks:
    • Initialize handshake: server must identify as name: "linear" with a semver version, and declare the tools, resources, and prompts capabilities.
    • Advertised tool list must contain no duplicate names.
    • Tool-result shape: a successful linear_getServerStatus call (no Linear I/O required) must return a content array of text items with isError: false, and its JSON payload must report the advertised tool count and a semver version.
    • In-band error shape for invalid arguments: calling linear_getServerStatus with an unknown argument must return isError: true with a text content item (Unknown argument(s) for ...), not a protocol-level error.
    • In-band error shape for unknown tools: calling a nonexistent tool must return isError: true with Unknown tool: ..., not a protocol-level error.

Breaking changes handled

None required. The server compiles and runs against SDK 1.29 without source changes — the Server, StdioServerTransport, request-schema handler registration, and client APIs used here are all compatible across 1.6 → 1.29.

Verification

All checks run against SDK 1.29 on this branch:

  • npx jest: 25 suites, 172 tests passed
  • npm run build (tsc): clean
  • npm run test:mcp-smoke: passed — 185 tools, 6 resources, 4 prompts, plus all new wire-contract assertions
  • npm pack --dry-run: clean
  • git diff --check: clean

The new smoke-test assertions were also validated against the old SDK (1.6) before the upgrade to confirm they encode existing behavior rather than 1.29-specific behavior.

@itz4blitz
itz4blitz marked this pull request as ready for review July 12, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant