MCP Connector

Bridge STDIO Clients to HTTP MCP Servers

mcp-stdio-to-streamable-http-adapter bridges STDIO-only MCP clients to Streamable HTTP MCP servers via a URI relay.

Works with claude desktoplibrechat

91
Spark score
out of 100
Updated Aug 2025
Source checked Sep 10, 2026
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Connect legacy MCP clients that only support STDIO to modern Streamable HTTP MCP servers, ensuring compatibility and enabling seamless integration.

Outcomes

What it gets done

01

Adapt STDIO-only MCP clients to communicate with Streamable HTTP MCP servers.

02

Facilitate communication between different MCP transport protocols.

03

Provide bearer token authentication for secure connections.

04

Configure multiple server connections with custom naming.

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-mcp-stdio-to-streamable-http-adapter | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

MCP STDIO to Streamable HTTP Adapter MCP Server

This adapter runs as a STDIO MCP server that relays to a Streamable HTTP MCP server, giving STDIO-only clients Streamable HTTP support via a URI. Use it when your MCP client doesn't yet support the Streamable HTTP transport natively but you want to use a server built on it.

What it does

mcp-stdio-to-streamable-http-adapter is a bridge that lets any MCP client with STDIO support, which is most of them, connect to a Streamable HTTP MCP server. It runs as a STDIO MCP server itself and relays everything to the Streamable HTTP server you point it at, so a client that only speaks STDIO gets Streamable HTTP support without any changes on the client side.

When to use - and when NOT to

Use it when you've built or want to use an MCP server over the Streamable HTTP transport, but your MCP client, like Claude Desktop, doesn't yet support that transport natively. As of the project's writing, the Streamable HTTP transport had landed in the MCP spec but hadn't been adopted by clients: the TypeScript SDK had merged but not released support, the Python SDK was still in development, and only the Inspector actually worked with it. This adapter closes that gap so developers can build Streamable HTTP servers now and give people an installation method today, rather than waiting for client-side support to catch up. If your client already supports Streamable HTTP directly, you don't need this adapter at all.

Capabilities

The adapter's entire job is relaying: point it at a Streamable HTTP MCP server's URI and it exposes that server to any STDIO-capable client transparently. Configuration is via three environment variables: URI, the required URL of the target Streamable HTTP MCP server; MCP_NAME, an optional name required only when you configure multiple instances so they don't collide; and BEARER_TOKEN, an optional token sent in the Authorization header for servers that require authentication. You can register multiple instances of the adapter simultaneously, each pointed at a different Streamable HTTP server with its own URI, name, and token, so a single client ends up with a distinct tool for each backend.

How to install

Via npx, in Claude Desktop's config:

{
  "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 clone and build from source, then point the command at node with the built build/index.js. It also works with LibreChat, configured as a stdio-type MCP server with the same URI and MCP_NAME environment variables. For local development, install with npm install, build with npm run build, and debug with the MCP Inspector via npm run inspector.

Who it's for

Developers building Streamable HTTP MCP servers who want people to be able to use them today, through clients like Claude Desktop or LibreChat that don't yet support that transport natively.

Source README

mcp-stdio-to-streamable-http-adapter MCP Server

Integrate any MCP Client that has STDIO MCP Server Support (most do) with the Streamable HTTP MCP Servers

If you have a Streamable HTTP MCP Server, forking this, hardcoding the URI and publishing will give you a repo that you can point to, add to directories and let people use via STDIO.

Note: This has similarities to the mcp-remote package

Why?

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.

Installation

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

Env Vars

  • 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.

Configuration

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:

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Debugging

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.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.