Repository navigation
fix(mcp): make the HTTP fallback work and stop it masking bridge errors - #44
Merged
Merged
Conversation
The MCP server falls back to the bridge's HTTP API when the socket fails. It sent the extension's request types (`browser.snapshot`) to `/v1/tools/call`, which takes tool names (`browser_snapshot`), so every tool came back "Unknown tool" and the fallback had never worked. It was also taken on any socket failure, including an error the bridge itself returned. The real error was then replaced by the retry's, and a socket timeout would have sent the same action a second time. The fallback now runs only when the socket cannot be opened. scripts/mcp-smoke.mjs drives the real mcp-server.js over stdio against a real bridge and a recording HTTP server, and runs from check.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
What this changes
/v1/tools/callunder their tool names, and a goal goes to/v1/tasksand/v1/tasks/:id/wait.Why
callHttpposted the extension's request types (browser.snapshot) to/v1/tools/call, which takes tool names (browser_snapshot). Every one of the ten tools came backUnknown tool: browser.…, so the fallback had never worked.callBridgealso fell back on any socket failure. Two consequences:How it was verified
./scripts/check.shpasses locallyscripts/mcp-smoke.mjs, run fromcheck.sh. It drives the realmcp-server.jsover stdio in three set-ups: no socket and a real bridge (all ten tools must be recognised), no socket and a recording HTTP server (routes and bodies for a goal and a click), socket open and bridge answering with an error (no HTTP request may follow).mainwithbrowser_snapshot over HTTP: Unknown tool: browser.snapshot. It stops at that first assertion, so the third set-up was not separately shown to fail onmain.browser_snapshotthrough the MCP server still returns a snapshot over the socket.Notes
weboperator-mcpon npm is still 1.5.1 with the broken fallback; this reaches users with the next publish.🤖 Generated with Claude Code