Less than a minute to convert MCP transport from SSE to stdio!
A while ago someone asked in the MCParty Slack Community (a community designated to sharing thoughts, ideas and problems regarding building and using MCP) a very good question: My MCP has URL connection, how do I connect it to Claude Desktop? Whether you just started building your own MCP server from scratch or you found helpful tools to convert your existing applications to MCP servers (such as fastapi-mcp, see my guide on how to do that easily), you must know by now that your AI agent needs to connect to your MCP by one of two communication options (while Anthropic recently updated their protocol to use Streamable HTTP, many still use SSE so I am writing in relation to the original implementation): SSE (Server-Sent Events) — pushing data to a client over a single HTTP connection. It’s a real-time, one-way communication from server to client. This is the URL connection he asked about. stdio (Standard Input/Output) — a local integration not specific to web technologies (not tied to any specific network protocol), with lower latency. You must have asked yourself — why choose one over the other? MCP servers should use stdio for local integrations (often simpler to set up and use, also the recommended method by Anthropic), while SSE is better suited for distributed systems requiring multi-client support and remote access. But here come’s the challenge — what can you do if your MCP is using SSE (because you downloaded it from a remote place), and you want to connect it to Claude Desktop, which currently supports only stdio? After trying out three other possible solutions that didn’t work, I found the ONE that actually did the job: mcp-proxy by @sparfenyuk — an open-source project (I ❤️ open-source). How to Use mcp-proxy The implementation is surprisingly straightforward. Here’s a step-by-step guide: Installation First, install the library using: uv tool install mcp-proxy Configure Claude Desktop Open Claude Desktop, then nabivate to: File → Settings → Developer → Edit config A JSON configuration file will open. Enter the appropriate settings to specify the path to your MCP. If you used fastapi-mcp to convert an existing FastAPI application to an MCP server, your SSE URL is likely http://127.0.0.1:8000/mcp. { "mcpServers": { "my-api-mcp-proxy": { "command": "mcp-proxy", "args": ["http://path/to/mcp/sse"] } } } Note for MacOS users: you might need to use the full-path to your mcp-proxy executable, which can be found by running in Terminal: which mcp-proxy. Don’t forget to quit Claude after you saved the configuration! Accessing Your Tools Finally, open Claude Desktop and discover all your tools: Notice that you will need to approve the usage of the MCP before Claude can run it. Troubleshooting Tips If you don’t see your tools after configuration: Verify your MCP server is running Check that the URL in your configuration matches your SSE endpoint exactly Ensure mcp-proxy was installed correctly Review Claude Desktop logs for any connection errors The fine print (Additional Considerations) When using mcp-proxy to convert SSE to stdio (or vice versa), remember that you’re creating a bridge between different communication protocols. Aside from latency differences — error handling approaches might need adjustment. Additionally, ensure you consider these important security considerations: Your MCP server implements proper authentication if needed The communication happens over a secure connection if handling sensitive data You’re aware of any rate limiting or timeout settings in your MCP implementation While these considerations might alarm you, remember that the beauty of this solution is in its simplicity. By using mcp-proxy, you’ve effectively bridged the gap between SSE and stdio, allowing your Claude Desktop client to communicate seamlessly with your existing MCP infrastructure! Written in collaboration with Shira Ayal.

A while ago someone asked in the MCParty Slack Community (a community designated to sharing thoughts, ideas and problems regarding building and using MCP) a very good question:
My MCP has URL connection, how do I connect it to Claude Desktop?
Whether you just started building your own MCP server from scratch or you found helpful tools to convert your existing applications to MCP servers (such as fastapi-mcp, see my guide on how to do that easily), you must know by now that your AI agent needs to connect to your MCP by one of two communication options (while Anthropic recently updated their protocol to use Streamable HTTP, many still use SSE so I am writing in relation to the original implementation):
SSE (Server-Sent Events) — pushing data to a client over a single HTTP connection. It’s a real-time, one-way communication from server to client. This is the URL connection he asked about.
stdio (Standard Input/Output) — a local integration not specific to web technologies (not tied to any specific network protocol), with lower latency.
You must have asked yourself — why choose one over the other?
MCP servers should use stdio for local integrations (often simpler to set up and use, also the recommended method by Anthropic), while SSE is better suited for distributed systems requiring multi-client support and remote access.
But here come’s the challenge — what can you do if your MCP is using SSE (because you downloaded it from a remote place), and you want to connect it to Claude Desktop, which currently supports only stdio?
After trying out three other possible solutions that didn’t work, I found the ONE that actually did the job: mcp-proxy by @sparfenyuk
— an open-source project (I ❤️ open-source).
How to Use mcp-proxy
The implementation is surprisingly straightforward. Here’s a step-by-step guide:
Installation
First, install the library using:
uv tool install mcp-proxy
Configure Claude Desktop
Open Claude Desktop, then nabivate to:
File → Settings → Developer → Edit config
A JSON configuration file will open. Enter the appropriate settings to specify the path to your MCP.
If you used fastapi-mcp to convert an existing FastAPI application to an MCP server, your SSE URL is likely http://127.0.0.1:8000/mcp
.
{
"mcpServers": {
"my-api-mcp-proxy": {
"command": "mcp-proxy",
"args": ["http://path/to/mcp/sse"]
}
}
}
Note for MacOS users: you might need to use the full-path to your mcp-proxy executable, which can be found by running in Terminal: which mcp-proxy
.
Don’t forget to quit Claude after you saved the configuration!
Accessing Your Tools
Finally, open Claude Desktop and discover all your tools:
Notice that you will need to approve the usage of the MCP before Claude can run it.
Troubleshooting Tips
If you don’t see your tools after configuration:
Verify your MCP server is running
Check that the URL in your configuration matches your SSE endpoint exactly
Ensure mcp-proxy was installed correctly
Review Claude Desktop logs for any connection errors
The fine print (Additional Considerations)
When using mcp-proxy to convert SSE to stdio (or vice versa), remember that you’re creating a bridge between different communication protocols. Aside from latency differences — error handling approaches might need adjustment. Additionally, ensure you consider these important security considerations:
Your MCP server implements proper authentication if needed
The communication happens over a secure connection if handling sensitive data
You’re aware of any rate limiting or timeout settings in your MCP implementation
While these considerations might alarm you, remember that the beauty of this solution is in its simplicity. By using mcp-proxy, you’ve effectively bridged the gap between SSE and stdio, allowing your Claude Desktop client to communicate seamlessly with your existing MCP infrastructure!
Written in collaboration with Shira Ayal.