Skip to content

Switch MCP server from stdio to SSE/Streamable HTTP transport #26

@apireno

Description

@apireno

Problem

The current MCP server uses stdio transport, meaning it must be spawned as a child process by a single MCP client (e.g. Claude Desktop). This means:

  • Only one client can use it at a time (Claude Desktop OR Claude CLI, not both)
  • Server lifecycle is tied to whichever client spawned it
  • Each client needs its own config entry

Solution

Switch to SSE (Server-Sent Events) or Streamable HTTP transport:

  • MCP server runs as a standalone long-lived HTTP server on localhost:9876/mcp
  • Any number of MCP clients connect via URL
  • Server runs independently — start once, all clients share it
  • The WebSocket bridge to the Chrome extension stays the same
  • Claude Desktop config uses "url" instead of "command" + "args"

Implementation

  1. Swap StdioServerTransport for StreamableHTTPServerTransport (or SSEServerTransport)
  2. Add Express/Hono HTTP server to host the transport
  3. Update Claude Desktop config format to URL-based
  4. Add npx domshell serve entrypoint
  5. Update README docs

Sprint item

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestplatformNew platforms, backends, transports

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions