SOURCE-AVAILABLEPOLYFORM NONCOMMERCIAL 1.0.0

One gateway in front of every MCP server.

Stop wiring dozens of Model Context Protocol servers into every agent. Configure them once in Universal MCP Bridge, and your agent talks to a compact three-tool API — keeping its context small while reaching every backing server.

~99% STATIC CONTEXT CUT/3 META-TOOLS/RUST · SINGLE BINARY/NO FEATURE GATES
umb — session
$ umb --list-servers
connected mcp servers — 6
filesystem · stdio · 12 tools
github · http · 26 tools
postgres · stdio · 9 tools
… 3 more · 96 tools total
$ umb
universal mcp bridge — listening on stdio
exposing 3 meta-tools · 96 backing tools hidden until queried
$
01THE CONTEXT PROBLEM

Every tool you wire in costs the agent context — before it does any work.

In a neutral benchmark, 756 tools wired directly into an agent consumed 138,417 tokens of static context — and at that scale the direct path is effectively unusable; agents degrade and can't ingest the set.

UMB hides that surface behind three meta-tools and serves full definitions only on request. The same 756 tools collapse to ~1,200 tokens.

STATIC TOOL-CONTEXT · 756 TOOLSTOKENS
Without UMB
756 tools wired directly into the agent
138,417
With UMB
3 meta-tools + on-demand discovery
~1,200
~99.1%reduction in static context, every conversation — measured, not modeled.
02ARCHITECTURE

A transport bridge, not another framework.

The agent only ever sees list_tools, list_mcps, and route_mcp_call. UMB fans those out to every configured server and routes the call back.

AI AGENT
Claude Code
or any MCP client

Sees a 3-tool API. Tool list stays small and fast no matter how many servers sit behind it.

UMB GATEWAY
umb · daemon
list_tools()
list_mcps()
route_mcp_call()
+ get_tool_info()
MCP SERVERS · N
filesystemstdio
githubhttp
postgresstdio
playwrightstdio
brave-searchsse
sequential-thinkingstdio

Add unlimited servers in servers.json. Edits hot-swap live — no restart.

03CAPABILITIES

Everything is on. Always.

One config, every server

Register all your MCP servers once in servers.json. UMB connects to each — stdio, HTTP, or SSE — and presents a single unified surface to the agent.

On-demand discovery

list_tools ranks results deterministically by name match, with optional semantic search. The agent pulls full schemas only for tools it needs via get_tool_info.

Live hot-swap

Edit servers.json while UMB is running and changes are picked up automatically. No restart, no dropped session.

Daemon / proxy mode

Share one warm backend across many agent sessions. Lightweight proxies connect to a single daemon and forward MCP traffic.

umb doctor

A built-in diagnostic scans for and cleans up orphaned daemon processes. Local introspection only — zero telemetry, zero network.

Single native binary

Written in Rust. One 3–8 MB static binary, fast startup, no runtime dependencies. Build from source or grab a release.

NO TIERS · NO SERVER LIMITS · NO LICENSE KEYS · NO PHONE-HOME

04INSTALL

Build it in a minute, or grab a release.

UMB is a single Rust binary with no runtime dependencies. Clone and build, or download a prebuilt binary for macOS, Linux, or Windows.

SHELL
# clone and build
$ git clone https://github.com/david-burley/umb
$ cd umb && cargo build --release
# run it as an MCP server
$ ./target/release/umb
universal mcp bridge — listening on stdio

Free for noncommercial use. Forever.

Read the source, run it everywhere, change what you need. Using UMB inside a company? A commercial license keeps you square — no key to install, just a contract.