Skip to content

fix(bridge): SSE transport — switch trios-mcp-bridge to StreamableHTTP/SSE for BrowserOS MCP compatibility #8

@gHashTag

Description

@gHashTag

BUG: trios-mcp-bridge returns 500 on tools/list — transport mismatch

Root Cause

BrowserOS MCP server expects StreamableHTTP (SSE + JSON-RPC):

Accept: application/json, text/event-stream

trios-mcp-bridge sends plain JSON-RPC without SSE support → server responds 500 Not Acceptable.


⚡ FAST FIX (15 min) — DO THIS NOW

In mcp-server.ts (or wherever handleRequest is called):

// BEFORE (broken):
const result = await transport.handleRequest(c);

// AFTER (fix):
const result = await transport.handleRequest(c.req.raw);

Then verify:

curl -X POST http://127.0.0.1:9200/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
# Expected: 200 + JSON list of tools (not 500)

If still 500 — switch to full StreamableHTTPServerTransport:

import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';

const server = new McpServer({ name: 'trios-bridge', version: '1.0.0' });
const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });

// register tools on server.tool(...)

app.all('/mcp', (c) => transport.handle(c.req.raw));
await server.connect(transport);

After fix

bun test  # must still pass 34/34

echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] FIX: SSE transport resolved | tools/list: 200 | 34/34 green" \
  >> experience/trios/fix_sse_transport.trinity

Laws

  • L1: Closes #8
  • L4: 34/34 tests still green after fix

Commit

git commit -m "fix(bridge): c.req.raw transport fix, tools/list 200\n\nCloses #8"

Agent returns:

✅ FIX #8 DONE | tools/list: 200 | 34/34

φ² + 1/φ² = 3 | GO NOW.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions