Loading languages...
TB

TBXark/mcp-proxy

@TBXark615

An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.

proxy
aggregation
sse
http-streaming

MCP Proxy Server

An MCP proxy that aggregates multiple MCP servers behind a single HTTP entrypoint.

Features

  • Proxy multiple MCP clients: aggregate tools, prompts, and resources from many servers.
  • SSE and streamable HTTP: serve via Server‑Sent Events or streamable HTTP.
  • Flexible config: supports stdio, sse, and streamable-http client types.

Documentation

Quick Start

Build from source

git clone https://github.com/TBXark/mcp-proxy.git
cd mcp-proxy
make build
./build/mcp-proxy --config path/to/config.json

Install via Go

go install github.com/TBXark/mcp-proxy@latest

Docker

The image includes support for launching MCP servers via npx and uvx.

docker run -d -p 9090:9090 -v /path/to/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest
# or provide a remote config
docker run -d -p 9090:9090 ghcr.io/tbxark/mcp-proxy:latest --config https://example.com/config.json

More deployment options (including docker‑compose) are in docs/deployment.md.

Configuration

See full configuration reference and examples in docs/configuration.md. An online Claude config converter is available at: https://tbxark.github.io/mcp-proxy

Usage

Command‑line flags, endpoints, and auth examples are documented in docs/usage.md.

Thanks

License

This project is licensed under the MIT License. See the LICENSE file for details.

# mcpServer Config

{
  "mcpProxy": {
    "baseURL": "https://mcp.example.com",
    "addr": ":9090",
    "name": "MCP Proxy",
    "version": "1.0.0",
    "type": "streamable-http",
    "options": {
      "panicIfInvalid": false,
      "logEnabled": true,
      "authTokens": [
        "DefaultTokens"
      ]
    }
  },
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      },
      "options": {
        "toolFilter": {
          "mode": "block",
          "list": [
            "create_or_update_file"
          ]
        }
      }
    },
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ],
      "options": {
        "panicIfInvalid": true,
        "logEnabled": false,
        "authTokens": [
          "SpecificTokens"
        ]
      }
    },
    "amap": {
      "url": "https://mcp.amap.com/sse?key=<YOUR_TOKEN>"
    }
  }
}

# sseURL

https://mcp.example.com/{clientName}/sse

# streamableURL

https://mcp.example.com/{clientName}/mcp
Transport:
sse
streamable
Language:
Go
Created: 3/27/2025
Updated: 2/4/2026