Skip to content

Upgrade MCP SDK to 1.29 - #35

Merged
beautyfree merged 1 commit into
tacticlaunch:mainfrom
itz4blitz:justin/mcp-sdk-upgrade
Jul 28, 2026
Merged

Upgrade MCP SDK to 1.29#35
beautyfree merged 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
@itz4blitz
itz4blitz force-pushed the justin/mcp-sdk-upgrade branch from e9944b4 to df9ddda Compare July 12, 2026 15:24
@beautyfree
beautyfree merged commit df9ddda into tacticlaunch:main Jul 28, 2026
@itz4blitz
itz4blitz deleted the justin/mcp-sdk-upgrade branch July 29, 2026 23:08
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.

2 participants