mcp-proxy

MCP.Pizza Chef: tbxark

Running half a dozen tool servers usually means half a dozen entries in every app you use. This proxy sits in front of them and presents all their tools, prompts, and files as a single connection over the web, so each app points at one place. For services that make you sign in through a browser, such as Notion, it can hold and refresh that authorization on behalf of everyone connecting through it. You run it yourself with Docker, Go, or a built binary.

Coding
Other

Use This MCP server To

Point every app at one address instead of many Share one set of tools across my whole team Sign in to a service once instead of in every app Add a new tool server without editing each app's settings Run tool servers on one machine and use them elsewhere

README

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.
  • OAuth client support: authorize once against downstream servers that require interactive OAuth (e.g. Notion), then let the proxy hold and refresh the token for every caller.

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

mcp-proxy FAQ

Which apps does this work with?
Any client that can connect to an MCP server over the web. There is also a converter page that turns a Claude config into its config file.
Do I need an API key?
Not for the proxy itself, though the servers sitting behind it may need their own credentials.
Can I use this to give my team one shared set of tools?
Yes — run it once, point everyone at the same address, and manage the whole tool list in a single config file.
How hard is setup?
This is a developer job. You run it with Docker, install it with Go, or build from source, and hand-write a config file.
Does it replace the servers behind it?
No. It passes requests through, so each of those servers still has to be installed or reachable.
Does it handle logins for me?
For services that need an interactive sign-in, you authorize once and it keeps the resulting access refreshed.