Repository navigation
chore(deps): Update the MCP SDK to 1.32.1 with one zod copy, and apply the 11 security updates from #81 - #107
Conversation
…y the security updates from #81 - Take the yarn.lock of #81 (axios, body-parser, fast-uri, follow-redirects, form-data, handlebars, lodash, postcss-selector-parser and their trees). - Raise @modelcontextprotocol/sdk to ^1.32.1 in the server and the codegen package. The mcp-proxy range (^1.11.4) resolves to the same 1.32.1. - Resolve the SDK zod range ("^3.25 || ^4.0") to the zod 3.25.28 of the server, so the tree and the bundle hold one zod copy. - Re-resolve fast-uri 3.1.9, handlebars 4.7.10, proxy-addr 2.0.8 and ip-address 10.7.4 inside their existing ranges. No resolutions are needed. - Pass only name and version to the McpServer constructor. The SDK 1.32 types reject capabilities in serverInfo, and the server has no resources to advertise.
🦋 Changeset detectedLatest commit: f6397b4 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
@deanzaka This PR replaces Dependabot #81. It moves the bundled MCP SDK from 1.12.1 to 1.32.1 and keeps one zod copy, so Before and after: a developer runs the stdio server Before and after: a contributor type-checks the server QA
|
Code reviewFound 1 issue:
mcp/.changeset/server-sdk-1-32.md Lines 1 to 5 in eefdfa2 |
There was a problem hiding this comment.
🔵 Needs a closer look
The broad runtime dependency upgrade warrants human confirmation of the reported compatibility and security checks despite no identified blocking defects.
No open issues 🎉
What changed in this PR
Updates the Taskade MCP server to SDK 1.32.1 and applies dependency security updates while retaining a single zod version and the existing 62-tool interface.
Changes:
- Upgrades SDK dependencies in both packages and refreshes the lockfile with patched transitive dependencies.
- Removes unused capabilities from server metadata and adds a regression test for the initialization response.
- Adds a server patch changeset documenting the dependency and protocol behavior changes.
| File | Description |
|---|---|
yarn.lock |
Updates dependencies and consolidates SDK and zod resolutions. |
packages/server/src/server.ts |
Limits server metadata to name and version. |
packages/server/src/server.test.ts |
Checks tools-only capabilities and server metadata. |
packages/server/package.json |
Raises the SDK requirement to ^1.32.1. |
packages/openapi-codegen/package.json |
Aligns the codegen SDK requirement with the server. |
.changeset/server-sdk-1-32.md |
Documents the server patch release and observable behavior changes. |
Review effort: Balanced
…nd shorten the constructor comment
Summary
This PR applies the security updates of #81 and moves
@modelcontextprotocol/sdkto 1.32.1. It keeps one zod copy innode_modulesand inbin/cli.mjs. It closes 72 of the 124 open Dependabot alerts, and every open alert with runtime scope. The 62 stdio and HTTP tools keep the same names and order.Supersedes #81.
Why
^3.25 || ^4.0) to a second zod (4.6.1) next to the zod 3.25.28 ofpackages/server. With two zod copies,tsc --noEmit -p packages/serverruns out of memory at the 4 GB heap limit after about 2.5 minutes, andbin/cli.mjsgrows from 564 KB to 1.25 MB.tscrejectscapabilitiesin theserverInfoargument ofMcpServer(TS2353 atpackages/server/src/server.ts:19).What changes
yarn.lock^1.11.4frommcp-proxyand^1.32.1), zod^3.25 || ^4.0folded into zod 3.25.28, fast-uri 3.1.9, handlebars 4.7.10, proxy-addr 2.0.8, ip-address 10.7.4. Each patched version is inside the existing range, so the PR adds noresolutions. qs stays at 6.16.0 from #81, which is the patched version for #126.packages/server/package.json,packages/openapi-codegen/package.json@modelcontextprotocol/sdk^1.12.0to^1.32.1(devDependencies in both).packages/server/src/server.ts{ name, version }.McpServeradvertises the tools capability when the first tool is registered.packages/server/src/server.test.tstoolsonly) and theserverInfo(name,version). It fails on main, because main echoescapabilitiesinsideserverInfo..changeset/server-sdk-1-32.md@taskade/mcp-server.ip-address: #81 adds ip-address 10.7.0 (through
express-rate-limit8 in the SDK), and 10.7.0 is inside the range of #136. This PR moves it to 10.7.4.Note on
resources: the task asked to movecapabilities(withresources: {}) to the options argument. I tested that build. Theinitializeresponse then listsresources, butresources/listanswers-32601 Method not found, because the server registers no resource. A client that reads the capability callsresources/listand gets an error. This PR thus advertises no resources capability. That is the same capability set as main.Zero-regression evidence
e7bf36ffffecce(gate run)yarn install --frozen-lockfileyarn build, thengit statusyarn lintyarn testtsc --noEmit -p packages/servertools/list/streamtools/list(src/http.ts)bin/cli.mjssizeyarn why zodThe bundle grows by about 500 KB because SDK 1.32 validates with
ajv(212 KB withfast-uri) and imports more of zod and of the SDK itself. The bundle now holds@modelcontextprotocol/sdk,ajv,ajv-formats,fast-uri,zod,zod-to-json-schema,node-fetchand its polyfills.Changes that come from the SDK and that a client can see:
2025-11-25client2025-03-262025-11-252025-06-18client2025-03-262025-06-182024-11-05client2024-11-052024-11-05initializecapabilities{ tools: { listChanged: true } }initializeserverInfo{ name, version, capabilities: {...} }{ name, version }-32602isError: trueand the messageMCP error -32602: Input validation error: ...tools/listexecutionfieldexecution: { taskSupport: "forbidden" }workspacesGetinput schema (no arguments)additionalProperties: falserequired: []The other 61 input schemas are byte-equal.
Dependabot alerts
Closed by this PR (72, computed from the open alerts and the versions in
yarn.lock):@modelcontextprotocol/sdkfast-uriproxy-addrqspath-to-regexpbody-parserajvhandlebarsaxiosform-datalodashshell-quotepostcssflatted,follow-redirects,picomatch,postcss-selector-parserStill open (52, all development scope, out of the scope of this PR):
nx,vite,vitestand@vitest/mocker,js-yaml,tar,minimatch,brace-expansion,ip-address9.0.5,glob,tmp,uuid,sigstore,@sigstore/core,source-map-js,postcss-selector-parser#148 (needs 7.x),http-cache-semantics#141 (no patch).Rollback
Revert the merge commit. The release workflow then publishes the next patch with SDK 1.12.1. No data and no config depend on this change.
QA
yarn install --frozen-lockfile && yarn build && git status --shortyarn lint && yarn testtime npx tsc --noEmit -p packages/serveryarn why zodTASKADE_API_KEY=<key> node packages/server/bin/cli.mjs, then sendinitializeandtools/listprotocolVersionequals the version that the client sent (up to2025-11-25),capabilitieslists onlytools, 62 tools.projectGetwith{}isError: truethat namesprojectId.PORT=3000 npx tsx packages/server/src/http.ts, theninitializeandtools/liston/stream?access_token=<key>npx @taskade/mcp-serverfrom a local pack) and callworkspacesGetwith a real key