Skip to content

fix(deps): sdk 1.30.0 unblocks @hono/node-server 2.x (closes #49) - #50

Open
yakimoto wants to merge 4 commits into
mainfrom
fix/mcp-sdk-1.30-hono-node-server
Open

fix(deps): sdk 1.30.0 unblocks @hono/node-server 2.x (closes #49)#50
yakimoto wants to merge 4 commits into
mainfrom
fix/mcp-sdk-1.30-hono-node-server

Conversation

@yakimoto

@yakimoto yakimoto commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

User description

Closes #49.

@modelcontextprotocol/sdk  1.29.0  → 1.30.0
@hono/node-server          1.19.14 → 2.0.12     (advisory: < 2.0.5, moderate, runtime scope)

#49 asked the wrong question, and the answer changed underneath it

I filed #49 saying this needed a breaking-change assessment because 1.19.14 → 2.0.5 is a major jump. That framing was correct against SDK 1.29.0, which pinned @hono/node-server: ^1.19.9 — the only way through was a pnpm.overrides entry forcing 2.x against a dependency's own declared range, which is exactly the trap in claude-workstation#554.

@modelcontextprotocol/sdk@1.30.0 shipped on 2026-07-27 and widened that range to ^1.19.9 || ^2.0.5. So there is no override, no pin, and no breaking-change assessment to make — the SDK maintainers did it. Updating the SDK is the whole fix.

@hono/node-server is not declared by any manifest in this workspace; it arrives solely through the SDK:

'@modelcontextprotocol/sdk@1.29.0(zod@3.25.76)':
  '@hono/node-server': 1.19.14(hono@4.12.23)

The one manifest line, and why it stays

  "dependencies": {
-   "@modelcontextprotocol/sdk": "^1.0.0",
+   "@modelcontextprotocol/sdk": "^1.30.0",

This is not the churn from claude-workstation#555. That issue is about pnpm update --recursive --lockfile-only silently reformatting all 48 package.json files and unescaping into literal em-dashes inside published description fields — 928 lines of it, reverted before it could ship. This run touched one manifest and one line.

And it's load-bearing. @wave-av/mcp-server is published, so downstream consumers resolve against its declared range, not our lockfile. Left at ^1.0.0, a consumer could resolve SDK 1.29.x and pull the vulnerable @hono/node-server right back in. ^1.30.0 states the requirement that actually exists.

Verification

CI can't run — Actions are refusing every job org-wide on an account-level billing lock (plan=free, locked=yes, confirmed live this morning against adk and dispatch-edge). All local:

pnpm install --frozen-lockfile   → resolved 188, done      (lock genuinely consistent with manifests)
pnpm -r build                    → success across the workspace
pnpm -r test                     → 143 tests / 52 files / 48 packages, 0 failed
pnpm -r type-check               → no errors

pnpm audit compares version strings and never loads a module, so it can't be the evidence here. Two things stand in for it:

  1. Reachabilitypackages/mcp-server/src/server.ts imports only StdioServerTransport and never constructs an HTTP transport, so @hono/node-server is in the tree but off the exercised code path.
  2. The same bump, driven end-to-end on the sibling repo. fix(deps): sdk 1.30.0 unblocks @hono/node-server 2.x, clearing the last two runtime advisories mcp-server#68 has the identical two-package move, and there I spawned the built binary over stdio and completed a real MCP handshake: initializewave-mcp-server, protocol 2025-06-18; tools/list18 tools, byte-identical to baseline.

Merge-order note

#48 also rewrites sdk-typescript/pnpm-lock.yaml. This PR is based on main @ 9eb128a and is independent of it, but the two will conflict textually. Whichever lands second should re-run its own update command rather than hand-merging the lockfile — a hand-merged pnpm lockfile is how you get a tree that installs but doesn't match either intent.

After #48 and this one, the only alerts left on the repo are vite ×2 and esbuild ×1, all dev-only via vitest, which Renovate #24 already bumps.

View with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is enabled.

Note

Low Risk
Dependency-only change with no application source edits; runtime path uses stdio transport, though downstream installs still pick up the updated transitive tree.

Overview
Addresses #49 by raising @modelcontextprotocol/sdk from ^1.0.0 to ^1.30.0 in @wave-av/mcp-server, with lockfile updates so the resolved SDK is 1.30.0 and the transitive @hono/node-server moves from 1.19.x to 2.1.1 (≥ 2.0.5), clearing the moderate advisory without pnpm.overrides.

The ^1.30.0 floor matters for published consumers: a loose ^1.0.0 range could still resolve 1.29.x and pull the vulnerable Hono stack. CHANGELOG adds an [Unreleased] → Security entry documenting the fix.

Reviewed by Cursor Bugbot for commit de0be71. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Update @modelcontextprotocol/sdk to ^1.30.0 in @wave-av/mcp-server so consumers resolve @hono/node-server 2.x transitively, clearing the moderate advisory without overrides.

SDK 1.30.0 widened its @hono/node-server range to ^1.19.9 || ^2.0.5, so no pnpm.overrides pin is needed. The ^1.30.0 floor is load-bearing: @wave-av/mcp-server is published, and consumers resolve against its declared range rather than our lockfile, so ^1.0.0 would still allow SDK 1.29.x and the vulnerable @hono/node-server. Merged main, keeping both the Security changelog entry and the Go 1.25 note; regenerated sdk-typescript/pnpm-lock.yaml rather than hand-merging, dropping the stale @hono/node-server@1.19.14 entries to force a fresh resolve to 2.1.1.

Verification

  • Frozen install, build, and type-check clean; 143 tests across 48 packages pass.
  • The MCP server is stdio-only, so @hono/node-server is in the tree but off the exercised path.
  • CI can't run (org-wide account billing lock); the same bump was verified over stdio on the sibling repo.

Written for commit fc82be8. Summary will update on new commits.

Review in cubic

Summary by Sourcery

Update the MCP server SDK dependency to ^1.30.0, bringing in a fixed transitive @hono/node-server version and removing the need for overrides or pins.

Bug Fixes:

  • Update the MCP server dependency tree to resolve the moderate security advisory affecting vulnerable @hono/node-server versions.

Enhancements:

  • Raise the published MCP server SDK requirement to ^1.30.0 so downstream consumers cannot resolve the older vulnerable SDK range without dependency overrides.

Documentation:

  • Document the dependency security update in the changelog.

CodeAnt-AI Description

Update the MCP server dependencies to resolve a moderate security advisory

What Changed

  • The MCP server now requires SDK 1.30.0, which updates the transitive Hono Node server dependency from 1.19.14 to 2.1.1.
  • The dependency update removes versions below 2.0.5 affected by the moderate advisory without requiring an override or forced pin.
  • The security fix is recorded in the changelog.

Impact

✅ Removes the vulnerable Hono Node server version
✅ Keeps published MCP server consumers on the fixed SDK range
✅ Avoids dependency overrides and forced version pins

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

closes #49, which called this a major bump needing a breaking-change
assessment. that was true against @modelcontextprotocol/sdk 1.29.0, which
declared @hono/node-server ^1.19.9. sdk 1.30.0, published 2026-07-27,
widened the range to ^1.19.9 || ^2.0.5, so no pnpm.overrides pin is
needed. forcing 2.x onto the old sdk would have meant overriding a
dependency own declared range, which is the failure claude-workstation#554
documents.

  @modelcontextprotocol/sdk  1.29.0  -> 1.30.0
  @hono/node-server          1.19.14 -> 2.0.12

the one manifest line is deliberate, not the claude-workstation#555 churn.
#555 is about all 48 package.json files being reformatted and em dashes
unescaped inside published description fields; that was reverted. this run
touched one manifest and one line. it is load-bearing: @wave-av/mcp-server
is published, and consumers resolve against its declared range rather than
our lockfile, so ^1.0.0 would let them pull sdk 1.29.x and the vulnerable
node-server straight back in.

pnpm install --frozen-lockfile clean, pnpm -r build clean,
143 tests / 52 files / 48 packages green, type-check clean.

packages/mcp-server/src/server.ts imports only StdioServerTransport and
never builds an HTTP transport, so node-server sits off the exercised
path. the identical bump was verified end to end on wave-av/mcp-server#68
by driving the built binary over stdio: initialize plus tools/list
returning all 18 tools, matching baseline.

CI cannot run.
@changeset-bot

changeset-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 12aff7a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 13 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 95 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: f5253a65-9f03-41de-a4cd-6dfe6ff118ce

📥 Commits

Reviewing files that changed from the base of the PR and between 8838c2e and fc82be8.

⛔ Files ignored due to path filters (1)
  • sdk-typescript/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (2)
  • CHANGELOG.md
  • sdk-typescript/packages/mcp-server/package.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/mcp-sdk-1.30-hono-node-server
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch fix/mcp-sdk-1.30-hono-node-server

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Jul 28, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_7383ed78-198a-429f-83ad-92da8f883030)

@socket-security

socket-security Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​@​modelcontextprotocol/​sdk@​1.29.0 ⏵ 1.30.099 +110010093100

View full report

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Resolves CHANGELOG.md Unreleased-section conflict by keeping both entries
(Security note on top, Go 1.25 floor Changed note below). Regenerated
sdk-typescript/pnpm-lock.yaml instead of hand-merging: pnpm's incremental
lockfile-only resolve kept the stale @hono/node-server@1.19.14 pin (still
satisfies the SDK's ^1.19.9||^2.0.5 range) rather than advancing it, so the
two @hono/node-server registry entries were dropped from the lockfile first
to force a fresh resolution — it now resolves to 2.1.1, clearing the
moderate advisory this PR targets (same fix intent as the PR's original
2.0.12, on a newer patch).
@codeant-ai

codeant-ai Bot commented Sep 6, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Incremental review completed fc82be8 Sep 08, 2026 · 18:21 18:22
✅ Reviewed your PR de0be71 Sep 06, 2026 · 22:49 22:50

@codeant-ai

codeant-ai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@cursor

cursor Bot commented Sep 6, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_9ed337cf-2052-4b25-b8db-6ea2c0b2b91e)

@codeant-ai codeant-ai Bot added the size:S This PR changes 10-29 lines, ignoring generated files label Sep 6, 2026

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sourcery assessment

Approved.

},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.0.0",
"@modelcontextprotocol/sdk": "^1.30.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: The new SDK resolves @hono/node-server 2.1.1, which requires Node 20; Node 18 consumers can fail installation under engine-strict. [api mismatch]

Assessment: 🟠 Major · 🔁 Occurrence: Sometimes

Use CodeAnt Skill Fix in Cursor Fix in VSCode Claude

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** sdk-typescript/packages/mcp-server/package.json
**Line:** 67:67
**Comment:**
	*Api Mismatch: The new SDK resolves `@hono/node-server` 2.1.1, which requires Node 20; Node 18 consumers can fail installation under engine-strict.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@codeant-ai

codeant-ai Bot commented Sep 6, 2026

Copy link
Copy Markdown

CodeAnt Nitpicks

1 code suggestion

1. The entry says the transitive package is version 2.0.12, but this workspace lockfile resolves @hono/node-server to 2.1.1, making the security record inaccurate.

Comment mismatch · CHANGELOG.md:13

@macroscopeapp

macroscopeapp Bot commented Sep 6, 2026

Copy link
Copy Markdown

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This published dependency update resolves @hono/node-server 2.1.1, which requires Node 20 while the MCP server still declares Node 18 support, potentially breaking engine-strict installations. The unresolved compatibility concern and changes to files owned by the SDK owners make the security-focused dependency change non-inert.

Not approved because:

  • Credit balance exhausted. Approvability relies on correctness review in order to determine eligibility

Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more.

@cursor

cursor Bot commented Sep 8, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_2328be00-6175-4629-8584-f7c8b5abc276)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

@hono/node-server needs a major bump (1.19.14 -> 2.0.5) — the last runtime-scope alert left after #48

1 participant