Background
reqstool mcp currently only supports the stdio transport (mcp.run() default). FastMCP already supports two additional transports:
sse — HTTP Server-Sent Events (host: 127.0.0.1, port: 8000, path: /sse)
streamable-http — stateless HTTP JSON (host: 127.0.0.1, port: 8000, path: /mcp)
Use Case
When multiple clients need to share one reqstool MCP server (e.g. Claude + openspecui simultaneously), HTTP transports allow both to connect to the same running instance rather than each spawning their own process.
Proposed Changes
Add --transport, --port, and --host flags to reqstool mcp:
reqstool mcp --transport streamable-http --port 9001
reqstool mcp --transport sse --port 9001
reqstool mcp # unchanged stdio default
In server.py, set FastMCP settings and call mcp.run(transport=transport).
Notes
streamable-http with stateless_http=True + json_response=True is the simplest for HTTP clients using plain fetch
- Requires
uvicorn + starlette for HTTP transports — should be gated behind a check or added as optional extra
- Should be validated locally before merging
Background
reqstool mcpcurrently only supports the stdio transport (mcp.run()default). FastMCP already supports two additional transports:sse— HTTP Server-Sent Events (host: 127.0.0.1, port: 8000, path:/sse)streamable-http— stateless HTTP JSON (host: 127.0.0.1, port: 8000, path:/mcp)Use Case
When multiple clients need to share one reqstool MCP server (e.g. Claude + openspecui simultaneously), HTTP transports allow both to connect to the same running instance rather than each spawning their own process.
Proposed Changes
Add
--transport,--port, and--hostflags toreqstool mcp:In
server.py, set FastMCP settings and callmcp.run(transport=transport).Notes
streamable-httpwithstateless_http=True+json_response=Trueis the simplest for HTTP clients using plainfetchuvicorn+starlettefor HTTP transports — should be gated behind a check or added as optional extra