# janusmcp

A local credential broker that sits in front of your MCP servers and keeps several accounts for the same service. Useful when one agent has to act as different clients.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 9
- Author: Bayway
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Bayway/janusmcp
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/mcp/janusmcp

## What it does

Most MCP clients hold a single identity per connector. Switching means disconnecting, redoing the OAuth login and editing config again. janusmcp takes the other path: accounts are registered once, and the active one changes on demand.

Three control tools do the work — `janus_list_accounts`, `janus_use_account`, `janus_whoami`. Only the active account's tools are exposed, so the context stays small instead of carrying every account's definitions. There is a CLI route as well: `janusmcp tools`, `janusmcp schema` and `janusmcp call` reach upstream tools from a terminal with no MCP session at all.

Credentials live in the OS keychain, not in `config.json`; you write them with `janusmcp vault set` and reference them as `vault:supabase_client_a`. CLI and MCP modes read the same config and remember the same active account. For clients that speak HTTP, start it with `JANUS_TRANSPORT=http JANUS_HTTP_PORT=7332 ./bin/janusmcp serve` and point the client at `http://127.0.0.1:7332/mcp`.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add janusmcp -- npx -y @bayway/janusmcp
```

### Codex

**Platform CLI**
```bash
codex mcp add janusmcp -- npx -y @bayway/janusmcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "janusmcp": {
            "command": "npx",
            "args": [
                "-y",
                "@bayway/janusmcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "janusmcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@bayway/janusmcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add janusmcp npx -y @bayway/janusmcp
```

## When to use it
- keep several Supabase or GitHub accounts in one agent
- switch client identity without a fresh OAuth login
- call upstream tools from the shell without loading every schema
- keep tokens in the OS keychain instead of a config file
- avoid context bloat from inactive accounts' tools

## Example prompts
- List my accounts and switch to client_b
- Which account is active right now?
- Call list_tables for the public schema through janusmcp

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
