mcp-stdio-to-streamable-http-adapter MCP Server
@pyroprompts
Proxy through a STDIO MCP Server to interact with Streamable HTTP MCP Servers
Overview
What is mcp-stdio-to-streamable-http-adapter?
This server bridges the gap between MCP clients that support only STDIO transport and MCP servers that use the Streamable HTTP Transport. It acts as a STDIO MCP server that relays requests to a Streamable HTTP MCP server, enabling any STDIO-capable client to immediately use Streamable HTTP servers. It is intended for developers who want to build Streamable HTTP MCP servers today while clients lack native support.
How to use mcp-stdio-to-streamable-http-adapter?
Configure it in your MCP client (e.g., Claude Desktop or LibreChat) by adding a server entry that runs npx @pyroprompts/mcp-stdio-to-streamable-http-adapter or a local build of build/index.js. Set the required environment variable URI to the URL of your Streamable HTTP MCP server; optionally set MCP_NAME and BEARER_TOKEN. Multiple instances can be added with different configurations.
Key features of mcp-stdio-to-streamable-http-adapter
- Relays STDIO MCP calls to a Streamable HTTP MCP server
- Supports optional bearer token authentication
- Allows multiple Streamable HTTP servers via repeated configuration
- Works with any STDIO-compatible MCP client
- Installs via npx or local build
Use cases of mcp-stdio-to-streamable-http-adapter
- Connect Claude Desktop to a Streamable HTTP MCP server without client updates
- Use Streamable HTTP MCP servers in LibreChat or other STDIO‑only clients
- Develop and test Streamable HTTP MCP servers immediately, before SDK support is widespread
- Run multiple Streamable HTTP services side‑by‑side in the same client
FAQ from mcp-stdio-to-streamable-http-adapter
What problem does this adapter solve?
As of late April 2025, no MCP clients (except the Inspector) support the Streamable HTTP Transport defined in the March 26, 2025 spec. This adapter lets developers use Streamable HTTP servers today by wrapping them in a STDIO interface.
How is this different from the mcp‑remote package?
The README notes there are similarities, but does not detail specific differences.
What are the runtime requirements?
A Node.js environment is required to run the adapter via npx or a local build. The target Streamable HTTP server must be reachable from the adapter’s network.
Where does configuration data live?
Configuration is done in the client’s JSON config file (e.g., claude_desktop_config.json) or YAML for LibreChat. Environment variables URI, MCP_NAME, and BEARER_TOKEN are set there.
Is authentication supported?
Yes, an optional bearer token can be provided via the BEARER_TOKEN environment variable, which is sent in the Authorization header to the Streamable HTTP server.