Repository navigation
fix(deps): update mcp-go to v1.1.1 so fly mcp server stops hanging - #5308
Merged
Merged
Conversation
mcp-go v1.1.0 handles subscriptions/listen inline on the stdio read loop and blocks there until shutdown. Clients that negotiate MCP protocol 2026-07-28 open that subscription right after server/discover (flyctl advertises tools.listChanged), so every later request, including tools/list, goes unanswered and the process no longer exits when stdin closes. This affects both `fly mcp server` and `fly mcp proxy`. v1.1.1 serves requests off the read loop (mark3labs/mcp-go#977, fixing mark3labs/mcp-go#976). It is a patch release with five bug fixes and no API changes. Fixes superfly#5307 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The targeted dependency update addresses the reported hang, with no blocking issues identified.
0 open findings
What changed in this PR
Updates mcp-go to resolve the stdio subscription hang reported in #5307, covering both fly mcp server and fly mcp proxy.
Changes:
- Bumps
mcp-gofrom v1.1.0 to v1.1.1. - Updates dependency checksums without changing application code.
| File | Description |
|---|---|
| go.sum | Updates checksums for mcp-go v1.1.1. |
| go.mod | Selects the patch release containing the stdio fix. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Member
|
thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Summary
What and Why:
fly mcp serverstops answering requests once an MCP client opens asubscriptions/listenstream. Clients that negotiate protocol2026-07-28do this right afterserver/discover, because flyctl advertisestools.listChanged. After that,tools/listnever returns, so the client loads no Fly tools and times out on every retry. The process also doesn't exit when stdin closes, so stalefly mcp serverprocesses pile up. Details and a repro are in #5307.The bug is in
mcp-gov1.1.0. Its stdio server handlessubscriptions/listeninline on the read loop and blocks there until shutdown (mark3labs/mcp-go#976). It was fixed in mark3labs/mcp-go#977 and released in v1.1.1.fly mcp proxyuses the sameServeStdiopath, and its relayed tools also advertiselistChanged, so it gets the same fix.How:
github.com/mark3labs/mcp-gofrom v1.1.0 to v1.1.1 (go get+go mod tidy). Onlygo.modandgo.sumchange.x-mcp-headervalidation toAddTaskTools,SetToolsandAddSessionTools. flyctl only callsAddTool, which v1.1.0 already validated, so its behavior doesn't change.Tested locally on macOS arm64 with Go 1.27.2:
go build .,go vet ./internal/command/mcp/...andgo test ./internal/command/mcp/...pass.fly mcp serverhangs aftersubscriptions/listen(stdio deadlock from mcp-go v1.1.0; fixed in v1.1.1) #5307 (server/discover→subscriptions/listen→tools/list→ close stdin):initializehandshake (2025-11-25) still returns all 60 tools on this branch.fly mcp proxyend to end. It gets the fix through the sameServeStdiocode path.Related to: Fixes #5307
Documentation