Open-source · local-first · any LLM

One credential broker.
Every account.

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.

npm @bayway/janusmcp brew scoop docker MCP Registry

The problem

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.

How it works

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       │   └─ …
                 └─────────────────────────────┘
🔀

Switch, don't reconnect

N identities for one service, swapped with a tool call. No re-login, no config edits.

🔒

Secrets stay local

Tokens live in your OS keychain, never in config files and never in the chat context.

🧩

Any client

Standard MCP over stdio and Streamable HTTP — Claude, ChatGPT, Gemini, Cursor, Copilot.

🪶

Context-safe

Only the active account's tools are exposed — not N×tools — so the model stays focused.

🗂️

Profiles

Activate a whole client's stack — Supabase + GitHub + Slack of Client A — with one call.

⌨️

MCP and CLI

Agents with shell access use tools / schema / call on demand — no bulk tool definitions loaded upfront.

Different from an MCP gateway

Gateways and proxies aggregate different servers behind one endpoint. JanusMCP solves the orthogonal, under-served problem: many identities for the same service.

MCP gateways / proxies

  • Many different servers → one endpoint
  • Tools from everything loaded at once
  • No concept of per-account identity

JanusMCP

  • Many accounts → same service, one endpoint
  • Only the active account's tools exposed
  • Credential-aware: keychain vault + OAuth, fully local

Install

Pick your channel — all published automatically on each release.

npm / npx
npx @bayway/janusmcp serve
Homebrew (macOS/Linux)
brew install bayway/janusmcp/janusmcp
Scoop (Windows)
scoop bucket add janusmcp https://github.com/bayway/scoop-janusmcp && scoop install janusmcp
Docker
docker run --rm -p 7332:7332 ghcr.io/bayway/janusmcp:latest
  1. Add accounts & log in: run janusmcp ui (local control panel) or janusmcp add supabase.
  2. Choose a mode: use janusmcp tools from the shell, or run janusmcp install claude-desktop for MCP.
  3. Switch safely: janusmcp use client_a in the CLI, or janus_use_account in chat.

Full command reference: janusmcp help · Docs & source on GitHub.

FAQ

What is JanusMCP?

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.

How is it different from an MCP gateway?

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.

Which LLM clients does it work with?

Any MCP client — it speaks standard MCP over stdio and Streamable HTTP: Claude Desktop and Claude Code, ChatGPT, Gemini, Cursor, and Copilot.

Do agents have to use MCP, or can they use the CLI directly?

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.

Where are my credentials stored?

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.

Is it free and open source?

Yes — MIT-licensed and free. The source is on GitHub and it's listed on the official MCP Registry.

CLI on the surface. MCP under the hood.

One credential broker for every account, whether your agent uses a shell or an MCP client.