A local multi-account tool broker for AI agents. Discover and call tools on demand from the CLI, or connect through MCP — the same credentials, profiles and secure local vault in both modes.
If you work with more than one company, you use the same MCP server (Supabase, GitHub, Slack…) with different identities — a different account and token per client. Most LLM clients hold one account at a time per connector: to switch you disconnect, reconnect, and redo the login. Every time. The MCP protocol itself has no notion of "account" — one session is one identity. JanusMCP fills that gap.
JanusMCP sits between your LLM client and the real MCP servers. It exposes only
the active account's tools (so your context stays clean) plus a few control tools, and
switching identity is a single tool call that emits tools/list_changed — no reconnect.
┌─────────────────────────────┐ ┌─ Supabase (Client A)
LLM client ─MCP─▶│ JanusMCP broker │─▶ ├─ Supabase (Client B)
(Claude/GPT/ │ active-account · vault · │ ├─ GitHub (Client A)
Gemini/…) │ per-session scoping │ └─ …
└─────────────────────────────┘N identities for one service, swapped with a tool call. No re-login, no config edits.
Tokens live in your OS keychain, never in config files and never in the chat context.
Standard MCP over stdio and Streamable HTTP — Claude, ChatGPT, Gemini, Cursor, Copilot.
Only the active account's tools are exposed — not N×tools — so the model stays focused.
Activate a whole client's stack — Supabase + GitHub + Slack of Client A — with one call.
Agents with shell access use tools / schema / call on demand — no bulk tool definitions loaded upfront.
Gateways and proxies aggregate different servers behind one endpoint. JanusMCP solves the orthogonal, under-served problem: many identities for the same service.
Pick your channel — all published automatically on each release.
npx @bayway/janusmcp servebrew install bayway/janusmcp/janusmcpscoop bucket add janusmcp https://github.com/bayway/scoop-janusmcp && scoop install janusmcpdocker run --rm -p 7332:7332 ghcr.io/bayway/janusmcp:latestjanusmcp ui (local control panel) or janusmcp add supabase.janusmcp tools from the shell, or run janusmcp install claude-desktop for MCP.janusmcp use client_a in the CLI, or janus_use_account in chat.Full command reference: janusmcp help · Docs & source on
GitHub.
A local, open-source multi-account tool broker for AI agents. Use it directly from the CLI or connect through MCP, with the same vault, profiles and account switching.
Gateways aggregate different servers behind one endpoint. JanusMCP solves the orthogonal problem: many identities for the same service, without saturating the model's context, fully local. It's a credential-aware broker, not a flat aggregator.
Any MCP client — it speaks standard MCP over stdio and Streamable HTTP: Claude Desktop and Claude Code, ChatGPT, Gemini, Cursor, and Copilot.
Both. Besides being an MCP server, JanusMCP has a code-execution mode: agents
with shell access (Claude Code, Codex, Cursor…) run janusmcp tools,
janusmcp schema <tool> and janusmcp call <tool>
to discover and invoke tools on demand — no bulk tool definitions loaded upfront, same
keychain credentials, same multi-account switching.
In your OS keychain (macOS Keychain, Windows Credential Manager, or the Linux Secret Service). Tokens are never written to config files in clear text and never pass through the model's chat context.
Yes — MIT-licensed and free. The source is on GitHub and it's listed on the official MCP Registry.
One credential broker for every account, whether your agent uses a shell or an MCP client.