Bifrost

Model Context Protocol · access layer

One secure endpoint for every MCP server your team trusts.

Bifrost sits between your AI tooling and a fleet of MCP servers — a single base URL to mount, keys you can scope and rotate, and a live audit log of every invocation, entirely on your own infrastructure.

Self-hosted · one Docker install · five-minute setup

gateway.yamllive · 3 servers
gateway:
  port: 8787
  baseUrl: https://mcp.example.com

servers:
  github:
    url: http://10.0.4.21:3001
  postgres:
    url: http://10.0.4.22:3002

keys:  rotate: 30d · scopes: tools, prompts
01:48:22GET /mcp · github.get_pull200
01:47:03GET /mcp · postgres.query200

How it works

Three moves. One endpoint.

01

Point one client at Bifrost

Add a single entry to your client config pointing at your gateway base URL.

client.jsonclient config
{
  "mcpServers": {
    "bifrost": {
      "url": "https://mcp.example.com",
      "headers": {
        "Authorization": "Bearer sk_live…"
      }
    }
  }
}
02

Attach the servers you need

Register any MCP server — internal or external — and let Bifrost resolve and proxy by tool name.

03

Issue keys, then watch it work

Scope keys per tool or team, rotate them on a schedule, and audit every call from your own dashboard.

01:48:22POST /mcp · github.merge_pr200
01:47:03GET /mcp · postgres.query200
01:45:58POST /mcp · databricks.run_job401

What's different

The access layer your fleet has been missing.

Mount once, route by tool

Point your client at one base URL. Bifrost resolves each tool call to the right server and proxies it — no per-server credentials tangled across your config.

Keys you can scope and rotate

Issue API keys per tool, per team, or per project. Revoke one without rebuilding the fleet — and know exactly who called what, and when.

sk_live_9f2…→tools:github
sk_live_41a…→tools:postgres
sk_live_77b…→revoked

Observability built in

Every invocation lands in a searchable trace — latency, payload size, status. You see the whole fleet's activity in one pane, without bolting on a stack.

01:48:22POST /mcp · github.get_file200
01:47:03GET /mcp · postgres.query200
01:45:58POST /mcp · github.list_issues429

Stop duplicating keys. Mount one gateway.

Runs on your infrastructure — your keys, your network, your audit trail. Docker up in five minutes.

Read the docs