Skip to main content

MCP Network Bridge

Enable network access to STDIO-based MCP servers through HTTP streamable protocol.

The Problem

Many open-source MCP servers only support the local-only stdio protocol. For one reason or another their developers never bothered to implement one of the two network-enabled modes: SSE or StreamableHTTP. In most cases that's fine - Claude Code or Cursor or any other modern IDE supports MCP over stdio. But when your AI application is not a stock-standard IDE that needs access to some MCP server over the network you've got a problem.

One option is to add Streaming HTTP support to the MCP servers that you want to use. It's usually not very difficult but also it's not very scalable.

A better option is to Bridge the STDIO local-only protocol to StreamableHTTP network-enabled protocol. And that's what this project is for.

Learn more about STDIO and StreamableHTTP MCP Protocols

Quick Start

The typical MCP server will provide a sample config to use. It could be something like:

{
  "server": {
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-everything"
    ]
  }
}

We can use the same config.json with mcp-network-bridge:

Run directly with uvx

uvx mcp-http-bridge --config config.json

Or specify the command as a parameter:

uvx mcp-http-bridge --command "npx -y @modelcontextprotocol/server-everything"

We can also run it in a Docker container with both Python (uvx) and Node.JS (npx) environment pre-installed:

Run with Docker:

docker run --rm -it -p 8000:8000 -v $(pwd)/config.json:/app/config.json ghcr.io/mludvig/mcp-http-bridge

Check our sample docker-compose.yml for a Docker Compose example.

Your MCP server is now available at http://localhost:8000/mcp/. Test it out with MCP Inspector.

MCP server network access

With the bridge running the MCP server can now be accessed over the network:

{
  "server": {
    "type": "http",
    "url": "http://127.0.0.1:8000/mcp/",
  }
}

Security

This bridge doesn't implement any security or access control. You'll have to configure something like nginx in front of it for TLS or Authentication support. That's beyond the scope of this project since better and more appropriate tools already exist.

Development

Local Development

This project uses uv for dependency management:

# Install dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Run linting
uv run ruff check src/ tests/

# Format code
uv run ruff format src/ tests/

# Run the CLI
uv run mcp-http-bridge --help

CI/CD

This project uses GitHub Actions for:

  • Continuous Integration: Runs tests, linting, and formatting checks on every push and PR
  • Build and Release: Automatically builds and publishes to PyPI and GHCR when tags are pushed
  • Dependency Updates: Dependabot keeps dependencies up to date

To publish a new release:

  1. Update the version in pyproject.toml
  2. Create a git tag: git tag v0.1.1
  3. Push the tag: git push origin v0.1.1
  4. GitHub Actions will automatically build and publish to PyPI and GHCR

Publishing to PyPI

The workflow uses Trusted Publishing to securely publish to PyPI without storing API tokens. Make sure to configure the PyPI trusted publisher for this repository.

Author

Michael Ludvig

Metadata

Release files for mcp-http-bridge 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-http-bridge 1.3.2
File Size Uploaded Provenance
mcp_http_bridge-1.3.2.tar.gz 74.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-http-bridge 1.3.2
File Interpreter ABI Platform
mcp_http_bridge-1.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 83.0 kB

Release files / mcp_http_bridge-1.3.2.tar.gz

Download URL mcp_http_bridge-1.3.2.tar.gz
Size 74.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7ba6a93906edd373303bb5e2a8a288b3685c820c0659d12e7b9d3b287cc15055
BLAKE2b-256 checksum
How to use checksums
ace4b1e8aff043a97e14a7b7a8342df5a04620ce4f60a23bdda27b3f15c56fb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 8, 2025.

Transparency log

Release files / mcp_http_bridge-1.3.2-py3-none-any.whl

Download URL mcp_http_bridge-1.3.2-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b8c40e1cb82ebef347e8f0f0b6ab6286c85a36127edc3e92840d9e923cc48b9
BLAKE2b-256 checksum
How to use checksums
01b231b9d301e9dd02937ea14ffa6493d273d161205eba61deb7d2808266d60b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 8, 2025.

Transparency log

Security for mcp-http-bridge 1.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mcp_http_bridge-1.3.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 8, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page