Skip to content

fix(tools): support streamable HTTP MCP app routes - #378

Merged
drewstone merged 2 commits into
mainfrom
fix/http-app-tool-mcp
Aug 4, 2026
Merged

fix(tools): support streamable HTTP MCP app routes#378
drewstone merged 2 commits into
mainfrom
fix/http-app-tool-mcp

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What changed

  • Make every handleAppToolRequest endpoint speak stateless Streamable HTTP MCP JSON-RPC through the existing shared MCP handler.
  • Preserve the direct HTTP args/arguments/bare-body contract and custom app-tool dispatch.
  • Accept params.arguments in the shared argument reader for routes that need raw-argument inspection.
  • Add buildProductEgressPolicy(publicOrigin, extraDomains) so product shells declare one consistent strict sandbox policy.
  • Regenerate the package API/codemap docs.

Why

A real Legal production chat reached the sandbox after the billing/egress fix, but every app-tool MCP route returned 400/500 because OpenCode sent JSON-RPC envelopes to routes that only understood direct tool bodies. This moves the protocol translation into agent-app once.

Proof

  • pnpm vitest run src/tools/auth.test.ts src/tools/registry.test.ts src/sandbox/index.test.ts — 248 passed.
  • pnpm vitest run tests/sequences/mcp-server.test.ts tests/design-canvas/mcp-handler.test.ts src/sandbox/index.test.ts tests/codemap-fresh.test.ts --no-file-parallelism — 304 passed.
  • pnpm typecheck — passed.
  • pnpm docs:gen — passed.
  • git diff --check — passed.
  • pnpm build emitted a successful ESM build but its DTS worker exceeded the local memory limit; typecheck passed independently.

@tangletools tangletools 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.

✅ Auto-approved drewstone PR — 88b82b80

This PR was opened by the trusted drewstone account.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.

tangletools · auto-approval · reason: drewstone_author · 2026-08-04T05:05:01Z

@drewstone
drewstone merged commit 5355252 into main Aug 4, 2026
1 check passed
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