by pyroprompts
A proxy that enables MCP Clients supporting STDIO to interact with Streamable HTTP MCP Servers, bridging the gap between different MCP transport protocols.
mcp-stdio-to-streamable-http-adapter is a proxy that allows MCP (Model Context Protocol) clients that only support STDIO (Standard Input/Output) to connect and interact with MCP servers that use the newer Streamable HTTP transport. This project addresses the current challenge where many MCP clients have not yet adopted support for Streamable HTTP, leaving developers in a difficult position when building Streamable HTTP MCP servers.
This adapter can be used by configuring it within your MCP client, such as Claude Desktop or LibreChat. It acts as an intermediary, relaying communication from your STDIO-based client to a Streamable HTTP MCP Server.
Installation:
Via npx
(recommended for Claude Desktop):
Configure your Claude Desktop claude_desktop_config.json
file to use npx
to run the adapter. You'll need to specify the URI
of your Streamable HTTP MCP Server and optionally MCP_NAME
and BEARER_TOKEN
.
{
"mcpServers": {
"my-saas-app-development": {
"command": "npx",
"args": [
"@pyroprompts/mcp-stdio-to-streamable-http-adapter"
],
"env": {
"URI": "http://localhost:3002/mcp",
"MCP_NAME": "local-custom-streamable-http-adapter"
}
}
}
}
Cloning the repository (for local development/custom builds):
Clone the repository, build the project, and then configure your MCP client to execute the built index.js
file.
{
"mcpServers": {
"my-saas-app-development": {
"command": "node",
"args": [
"/path/to/mcp-stdio-to-streamable-http-adapter/build/index.js"
],
"env": {
"URI": "http://localhost:3002/mcp",
"MCP_NAME": "local-custom-streamable-http-adapter"
}
}
}
}
For LibreChat:
Configure LibreChat's librechat.yaml
to use the adapter as a stdio
type server.
my-saas-app-development:
type: stdio
command: npx
args:
- -y
- @pyroprompts/mcp-stdio-to-streamable-http-adapter
env:
URI: "http://localhost:3002/mcp",
MCP_NAME: "my-custom-saas-app"
PATH: '/usr/local/bin:/usr/bin:/bin'
Environment Variables:
URI
: The URL of the Streamable HTTP MCP Server (required).MCP_NAME
: The name of the MCP Server (optional, but recommended for multiple configurations).BEARER_TOKEN
: Bearer token for authentication with the Streamable HTTP MCP Server (optional).Development:
npm install
: Install dependencies.npm run build
: Build the server.npm run watch
: For development with auto-rebuild.npm run inspector
: Use the MCP Inspector for debugging.npx
or by directly running the built JavaScript file.Q: Why was this project created? A: The project was created because while the MCP Spec added Streamable HTTP Transport, many MCP clients have not yet adopted support for it. This leaves developers in an awkward position when building Streamable HTTP MCP servers, as clients cannot easily connect to them. This adapter bridges that gap.
Q: Is this similar to mcp-remote
?
A: Yes, it has similarities to the mcp-remote
package, but this project specifically focuses on bridging STDIO to Streamable HTTP.
Q: What are the required environment variables?
A: The URI
of the Streamable HTTP MCP Server is required. MCP_NAME
and BEARER_TOKEN
are optional but can be useful for specific configurations.
Q: How can I debug my MCP server when using this adapter?
A: You can use the MCP Inspector by running npm run inspector
, which provides a URL to access debugging tools in your browser.
Integrate any MCP Client that has STDIO MCP Server Support (most do) with the Streamable HTTP MCP Servers
Note: This has similarities to the mcp-remote package
The MCP Spec to add a Streamable HTTP Transport landed end of March 2025 and as of the end of April, no clients have adopted support. The typescript-sdk has merged the code, but not released. The Python SDK is still in development to support it. The Inspector supports it, but that's it.
This leaves developers in an awkward position. Develop the MCP Server using STDIO or SSE (deprecated) so it works with clients or develop with Streamable HTTP transport, but nobody can use it.
I (ferrants) want to start integrating the Streamable HTTP MCP Servers beyond just the inspector, so I need a way to connect them to clients and LLMs right away!
This package aims to bridge the cap by being a STDIO MCP Server that relays to your Streamable HTTP MCP Server. This makes all MCP Clients support Streamable HTTP right away. And now developers can develop the Streamable HTTP MCP Servers and provide an installation method.
To add OpenAI to Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
URI
: The URL of the Streamable HTTP MCP Server. This is required.MCP_NAME
: The name of the MCP Server. This is optional. If you configure multiple, this is required so they do not have the same names.BEARER_TOKEN
: The Bearer token for the Streamable HTTP MCP Server. This is optional. If specified, this will be sent along in the Authorization header.You can use it via npx
in your Claude Desktop configuration like this:
{
"mcpServers": {
"my-saas-app-development": {
"command": "npx",
"args": [
"@pyroprompts/mcp-stdio-to-streamable-http-adapter"
],
"env": {
"URI": "http://localhost:3002/mcp",
"MCP_NAME": "local-custom-streamable-http-adapter"
}
}
}
}
Or, if you clone the repo, you can build and use in your Claude Desktop configuration like this:
{
"mcpServers": {
"my-saas-app-development": {
"command": "node",
"args": [
"/path/to/mcp-stdio-to-streamable-http-adapter/build/index.js"
],
"env": {
"URI": "http://localhost:3002/mcp",
"MCP_NAME": "local-custom-streamable-http-adapter"
}
}
}
}
You can add multiple providers by referencing the same MCP server multiple times, but with different env arguments:
{
"mcpServers": {
"my-saas-app-development": {
"command": "node",
"args": [
"/path/to/mcp-stdio-to-streamable-http-adapter/build/index.js"
],
"env": {
"URI": "http://localhost:3002/mcp",
"MCP_NAME": "local-custom-streamable-http-adapter"
}
},
"pyroprompts": {
"command": "node",
"args": [
"/path/to/mcp-stdio-to-streamable-http-adapter/build/index.js"
],
"env": {
"URI": "https://api.pyroprompts.com/mcp",
"MCP_NAME": "pyroprompts",
"BEARER_TOKEN": "abcdefg"
}
}
}
}
With these three, you'll see a tool for each in the Claude Desktop Home:
And then you can chat with other LLMs and it shows in chat like this:
Or, configure in LibreChat like:
my-saas-app-development:
type: stdio
command: npx
args:
- -y
- @pyroprompts/mcp-stdio-to-streamable-http-adapter
env:
URI: "http://localhost:3002/mcp",
MCP_NAME: "my-custom-saas-app"
PATH: '/usr/local/bin:/usr/bin:/bin'
And it shows in LibreChat:
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
MCPSTREAMABLEADAPTER
for 20 free automation credits on Pyroprompts.Please log in to share your review and rating for this MCP.
Discover more MCP servers with similar functionality and use cases
by zed-industries
Provides real-time collaborative editing powered by Rust, enabling developers to edit code instantly across machines with a responsive, GPU-accelerated UI.
by cline
Provides autonomous coding assistance directly in the IDE, enabling file creation, editing, terminal command execution, browser interactions, and tool extension with user approval at each step.
by continuedev
Provides continuous AI assistance across IDEs, terminals, and CI pipelines, offering agents, chat, inline editing, and autocomplete to accelerate software development.
by github
Enables AI agents, assistants, and chatbots to interact with GitHub via natural‑language commands, providing read‑write access to repositories, issues, pull requests, workflows, security data and team activity.
by block
Automates engineering tasks by installing, executing, editing, and testing code using any large language model, providing end‑to‑end project building, debugging, workflow orchestration, and external API interaction.
by RooCodeInc
An autonomous coding agent that lives inside VS Code, capable of generating, refactoring, debugging code, managing files, running terminal commands, controlling a browser, and adapting its behavior through custom modes and instructions.
by lastmile-ai
A lightweight, composable framework for building AI agents using Model Context Protocol and simple workflow patterns.
by firebase
Provides a command‑line interface to manage, test, and deploy Firebase projects, covering hosting, databases, authentication, cloud functions, extensions, and CI/CD workflows.
by gptme
Empowers large language models to act as personal AI assistants directly inside the terminal, providing capabilities such as code execution, file manipulation, web browsing, vision, and interactive tool usage.