You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is there a native MCP Python method to run a streaming http server running other peoples MCP implementations?
For stdio there is no need to "start" a server as when you create a Stdio client connection is includes starting a stdio server. And I have found examples of running MCP as streaming http when you are creating an MCP in which you define the app, tools, and streaming http. But if I want to run something like 'mcp-server-fetch' but as a streaming http server where I can then connect to that single server from different remote clients, what is the correct way to do so?
Is it really just running the stdio server and wrapping it myself in a streaming http server?
There's no built-in way to serve someone else's stdio server over Streamable HTTP — the SDK's HTTP support (MCPServer.run(transport="streamable-http"), see Running your server → Streamable HTTP) serves a server object you define, and nothing ships that wraps an external stdio process behind an HTTP endpoint. So for a stdio-only third-party server it's essentially what you guessed: connect to it with stdio_client and re-expose its tools/resources from your own server on the Streamable HTTP transport. It's worth checking the server package's own options first, though — a server built on this SDK can serve Streamable HTTP itself through that same run(transport=...) argument, so many already offer an HTTP mode. A first-party proxy helper for exactly this pattern is tracked in #12, if you'd like to add your use case there.
Closing this as part of a wider backlog cleanup around the v2 release. Feel free to reopen if this is still relevant.
Activity
maxisbey commentedon Jul 24, 2026
There's no built-in way to serve someone else's stdio server over Streamable HTTP — the SDK's HTTP support (
MCPServer.run(transport="streamable-http"), see Running your server → Streamable HTTP) serves a server object you define, and nothing ships that wraps an external stdio process behind an HTTP endpoint. So for a stdio-only third-party server it's essentially what you guessed: connect to it withstdio_clientand re-expose its tools/resources from your own server on the Streamable HTTP transport. It's worth checking the server package's own options first, though — a server built on this SDK can serve Streamable HTTP itself through that samerun(transport=...)argument, so many already offer an HTTP mode. A first-party proxy helper for exactly this pattern is tracked in #12, if you'd like to add your use case there.Closing this as part of a wider backlog cleanup around the v2 release. Feel free to reopen if this is still relevant.
AI Disclaimer