Local multi-account MCP broker β one endpoint, every account. Switch identity without reconnecting.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
One credential broker. Every account. From the CLI or MCP. Multi-account tool access for AI agents, with credentials kept local.
One-click buttons require the npm package to be published. See RELEASING.md.
If you work with more than one company, you use the same MCP server (Supabase, GitHub, Slackβ¦) with different identities β a different account, email and token per client. Today most LLM clients hold one account at a time per connector: to switch client you disconnect, reconnect, and redo the OAuth login. Every time.
The MCP protocol has no notion of "account": one session = one identity = one set of credentials. JanusMCP fills that gap.
JanusMCP is a local multi-account tool broker for AI agents. It can be used directly from the CLI or as an MCP server in front of the real upstream servers:
janusmcp tools / schema / call invoke tools on demand, with no bulk tool
definitions loaded upfront.You drive it with three control tools that appear in any client:
janus_list_accounts, janus_use_account, janus_whoami.
The CLI discovers schemas only when needed, accepts JSON through --args or stdin,
supports explicit accounts/profiles, and provides stable exit codes. See the
CLI guide and copyable agent instructions.
Both modes share the same config, OS-keychain vault, OAuth tokens and persisted active
account. Use janusmcp daemon start to keep upstream sessions warm across repeated CLI calls.
Once released, install via your favorite channel (all published automatically on each tag β see RELEASING.md):
β¦or download a prebuilt binary from Releases.
Two Supabase clients, PATs kept in your OS keychain (never in the config):
Add it to Claude Desktop:
For ChatGPT / Gemini / Cursor / Copilot, run HTTP and point them at the URL:
Run janusmcp help for the full reference. The essentials:
| Command | What it does |
|---|---|
janusmcp serve | Run the broker (default). Transports via env: JANUS_TRANSPORT=stdio|http|both, JANUS_HTTP_HOST, JANUS_HTTP_PORT. |
janusmcp tools [selector] | Compact tool list for the active (or given) account/profile. --json for full definitions; optional --timeout. |
janusmcp schema <tool> | Full JSON definition of one tool. --account <id|profile> disambiguates; optional --timeout. |
janusmcp call <tool> | Invoke a tool. Supports --account, --args, stdin, stable --json, and optional --timeout. |
janusmcp use <account|profile> | Persist the active selector for future CLI commands and new MCP sessions. |
janusmcp daemon start|stop|restart|status | Manage the optional loopback-only daemon that reuses upstream sessions. |
janusmcp ui | Open the local control panel β add accounts, log in, set secrets. |
janusmcp add <template> [id] | Add an account from a template (janusmcp catalog lists them). |
janusmcp catalog | List the built-in account templates. |
janusmcp connect <id> | Connect an account; for remote OAuth, opens the browser. |
janusmcp status | Show each account's login/secret status (no secret values). |
janusmcp vault set <name> / delete <name> | Store / remove a secret in the OS keychain. |
janusmcp login <provider> <name> | OAuth loopback login; token referenced as oauth:<name>. |
janusmcp providers | List built-in OAuth providers. |
janusmcp install <client> | Configure an LLM client to launch JanusMCP. |
janusmcp uninstall <client> | Remove JanusMCP from an LLM client's config. |
janusmcp version Β· janusmcp help | Version Β· this reference. |
Supported <client> values for install / uninstall: claude-desktop, claude-code,
cursor, vscode, gemini, codex, chatgpt, print. Run janusmcp install list
(or uninstall list) to see each target and whether it's already configured.
Inside any connected client you also get the control tools janus_list_accounts,
janus_use_account, janus_whoami, janus_login, janus_use_profile, and
janus_with_account.
A profile groups accounts of the same client across different services. Activating it exposes the tools of all its accounts together, and each call is routed to the right upstream:
Then in chat: janus_use_profile with { "profile": "client_a" } β Supabase and
GitHub tools for Client A are available simultaneously. Colliding tool names across
accounts are namespaced (<account>_<tool>).
janus_with_account runs a single call on another account without changing the
active one β e.g. { "account_id": "client_b", "tool": "list_tables" }. Omit tool
to list that account's available tools first.
Loading every MCP tool definition into an LLM context is expensive. In code-execution mode an agent (or you) invokes tools on demand from the shell instead β Γ la "code execution with MCP" β so the context holds only the results it actually asked for:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/janusmcp)<a href="https://allmcps.com/mcp/janusmcp"><img src="https://allmcps.com/api/badge/janusmcp?style=directory" alt="Janusmcp on AllMCPs" /></a>