Multi-CLI MCP
An MCP server that bridges multiple AI clients (Claude, Gemini, Codex, OpenCode) so they can call each other as tools.
README
Multi-CLI MCP
An MCP server that lets Claude, Gemini, Codex, and OpenCode call each other as tools.
Claude: "Hey Gemini, what do you think about this code?"
Gemini: "It's mass. Let me ask Codex for a second opinion."
Codex: "You're both wrong. Here's the fix."
OpenCode: "I checked with three providers. They all agree with Codex."
One-Line Install (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/osanoai/multicli/main/install.sh | bash
Detects which AI CLIs you have installed and configures Multi-CLI for them automatically.
- Claude Code is configured to use a per-user local HTTP service on
127.0.0.1 - Gemini CLI, Codex CLI, and OpenCode keep using stdio/local config by default
- The installer may update client config files on your behalf
What It Does
Multi-CLI sits between your AI clients and bridges them via the Model Context Protocol. Install it once, and whichever AI you're talking to gains the ability to call the others.
- Claude can ask Gemini, Codex, or OpenCode for help
- Gemini can delegate to Claude, Codex, or OpenCode
- Codex can consult Claude, Gemini, or OpenCode
- OpenCode can call Claude, Gemini, or Codex (across 75+ providers)
- Each client's own tools are hidden (no talking to yourself, that's weird)
- Auto-detects which CLIs you have installed — only shows what's available
The Meta Part
This tool was built by the very AIs it connects.
Claude, Gemini, Codex, and OpenCode wrote the code. Claude, Gemini, Codex, and OpenCode maintain it. Every night, a CI job queries the latest stable release of each CLI for its current model list, diffs the results against what's in the repo, and automatically publishes a new version if anything changed. New model releases get picked up within 24 hours. Deprecated models get cleaned out. The repo stays current without anyone touching it.
The stdio install paths use @latest, so those clients pick up new releases automatically. Claude Code's managed HTTP service intentionally runs from a stable installed runtime instead of a transient npx cache; rerun the installer or multicli service refresh --configure-claude after upgrading.
Most MCP tools go stale within weeks. This one is self-maintaining by design.
Prerequisites
You need Node.js >= 20 and at least one of these CLIs installed:
| CLI | Install |
|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code |
| Gemini CLI | npm install -g @google/gemini-cli |
| Codex CLI | npm install -g @openai/codex |
| OpenCode | `curl -fsSL https://opencode.ai/install |
Multi-CLI is most useful with two or more CLIs installed. With only one, the install still works, but there may be nothing to bridge yet.
Manual Installation
Prefer to install per-client yourself? Each command is one line.
Claude Code
Recommended for Claude Code stability:
npm install -g @osanoai/multicli
multicli service install --configure-claude
This installs a per-user background service that listens only on 127.0.0.1, configures Claude Code to use Multi-CLI over HTTP, and keeps the underlying server alive even if Claude drops a stdio subprocess.
The managed service installs as a per-user login/background service:
- macOS:
launchdLaunchAgent - Ubuntu/Debian:
systemd --user - Windows: Scheduled Task at user logon
Security model:
- Listens only on
127.0.0.1 - Uses
Authorization: Bearer <token>for every HTTP MCP request - Stores generated service artifacts in a user-owned service directory
Operational notes:
multicli service installrefuses transientnpxruntimes; use a global install or a stable local checkout- Generated service state includes an env file you can edit if your local AI CLIs require additional credentials or PATH entries
- On Linux, the default
systemd --userservice follows your login session; enablelingeryourself only if you intentionally want it to stay up after logout
Legacy stdio installation is still available:
claude mcp add --scope user Multi-CLI -- npx -y @osanoai/multicli@latest
<details> <summary>Claude Desktop (JSON config)</summary>
Add to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS:
{
"mcpServers": {
"Multi-CLI": {
"command": "npx",
"args": ["-y", "@osanoai/multicli@latest"]
}
}
}
Restart Claude Desktop completely after saving. </details>
Gemini CLI
gemini mcp add --scope user Multi-CLI npx -y @osanoai/multicli@latest
<details> <summary>Manual config (~/.gemini/settings.json)</summary>
{
"mcpServers": {
"Multi-CLI": {
"command": "npx",
"args": ["-y", "@osanoai/multicli@latest"]
}
}
}
</details>
Codex CLI
codex mcp add Multi-CLI -- npx -y @osanoai/multicli@latest
<details> <summary>Manual config (~/.codex/config.toml) or pass --mcp-config</summary>
codex --mcp-config mcp.json
Where mcp.json contains:
{
"mcpServers": {
"Multi-CLI": {
"command": "npx",
"args": ["-y", "@osanoai/multicli@latest"]
}
}
}
</details>
OpenCode
OpenCode's mcp add command is interactive, so add Multi-CLI to ~/.config/opencode/opencode.json directly:
{
"mcp": {
"Multi-CLI": {
"type": "local",
"command": ["npx", "-y", "@osanoai/multicli@latest"]
}
}
}
If the file already exists, merge the "Multi-CLI" entry into the existing "mcp" object.
Any Other MCP Client
Multi-CLI supports both stdio and Streamable HTTP.
For stdio-capable clients, point them at:
npx -y @osanoai/multicli@latest
For a managed local HTTP service, install Multi-CLI globally and run:
multicli service install
The service listens on 127.0.0.1 only and exposes /mcp plus /health.
Available Tools
Once connected, your AI client gains access to tools for the other CLIs (never its own):
| Tool | Description |
|---|---|
List-Gemini-Models |
List available Gemini models and their strengths |
Ask-Gemini |
Ask-Gemini a question or give it a task |
Fetch-Chunk |
Retrieve chunked responses from Gemini |
Gemini-Help |
Get Gemini CLI help info |
List-Codex-Models |
List available Codex models |
Ask-Codex |
Ask-Codex a question or give it a task |
Codex-Help |
Get Codex CLI help info |
List-Claude-Models |
List available Claude models |
Ask-Claude |
Ask-Claude a question or give it a task |
Claude-Help |
Get Claude Code CLI help info |
List-OpenCode-Models |
List available OpenCode models from all configured providers |
Ask-OpenCode |
Ask-OpenCode a question or give it a task |
OpenCode-Help |
Get OpenCode CLI help info |
Task-Capable Ask Tools
The Ask-* tools still work as normal synchronous MCP tools, but they now also advertise optional task-based execution for MCP clients that support tasks.
- Task-capable clients can run long
Ask-*calls using MCP tasks to avoid long blocking tool requests - Older clients keep using the same
Ask-*tools synchronously with no config changes List-*,*-Help, andFetch-Chunkremain normal synchronous tools
Usage Examples
Once installed, just talk naturally to your AI:
"Ask-Gemini what it thinks about this architecture"
"Have Codex review this function for performance issues"
"Get Claude's opinion on this error message"
"Use OpenCode to get a second opinion from Llama"
Or get a second opinion on anything:
"I want three perspectives on how to refactor this module —
ask Gemini and Codex what they'd do differently"
How It Works
┌─────────────┐ MCP (stdio) ┌──────────────┐ CLI calls ┌─────────────┐
│ Your AI │ ◄──────────────────► │ Multi-CLI │ ───────────────► │ Other AIs │
│ Client │ │ server │ │ (CLI tools) │
└─────────────┘ └──────────────┘ └─────────────┘
1. Your AI client connects to Multi-CLI via MCP
2. Multi-CLI detects which CLIs are installed on your system
3. It registers tools for the OTHER clients (hides tools for the calling client)
4. When a tool is called, Multi-CLI executes the corresponding CLI command
5. Results flow back through MCP to your AI client
For Claude Code, Multi-CLI can also run as a local background HTTP service:
┌─────────────┐ MCP (HTTP) ┌──────────────┐ CLI calls ┌─────────────┐
│ Claude Code │ ◄──────────────────► │ Multi-CLI │ ───────────────► │ Other AIs │
│ Client │ 127.0.0.1 only │ service │ │ (CLI tools) │
└─────────────┘ └──────────────┘ └─────────────┘
Troubleshooting
"No usable AI CLIs detected" Make sure at least one other CLI is installed and on your PATH:
which gemini && which codex && which claude && which opencode
No tools showing up? If only your own CLI is installed, Multi-CLI hides it (no self-calls). Install a different CLI to enable cross-model collaboration.
MCP server not responding?
- Check that Node.js >= 20 is installed
- Run
npx -y @osanoai/multicli@latestdirectly to see if the stdio server starts - Restart your AI client completely
Claude Code disconnecting after successful calls? Use the managed background service instead of the legacy stdio integration:
npm install -g @osanoai/multicli
multicli service install --configure-claude
multicli service doctor
Helpful service commands:
multicli service statusmulticli service doctormulticli service logsmulticli service refreshmulticli service uninstall
Need to tune timeouts or cleanup behavior? Multi-CLI supports these optional environment variables:
MULTICLI_TRANSPORT(stdioorhttp)MULTICLI_ASK_TIMEOUT_MSMULTICLI_HELP_TIMEOUT_MSMULTICLI_CLI_DETECT_TIMEOUT_MSMULTICLI_KILL_GRACE_MSMULTICLI_HTTP_HOST(defaults to127.0.0.1)MULTICLI_HTTP_PORT(defaults to37420)MULTICLI_HTTP_PATH(defaults to/mcp)MULTICLI_HTTP_AUTH_TOKEN(required for direct HTTP mode)MULTICLI_HTTP_SESSION_IDLE_MSMULTICLI_LOG_PATH(defaults to~/.multicli/logs/multicli.log)MULTICLI_LOG_LEVEL(error,info, ordebug; defaults todebugfor the file log)MULTICLI_STDERR_LOG_LEVEL(silent,error,info, ordebug; defaults toerror)MULTICLI_SERVICE_ROOT_DIRMULTICLI_SERVICE_LOG_PATHMULTICLI_SERVICE_ENV_PATHMULTICLI_SERVICE_MANIFEST_PATH
The server writes structured JSON-line logs to a single file destination, rotates them automatically for long-running service mode, and includes full prompt bodies for Ask-* requests so disconnects and crashes can be reconstructed after the fact.
Development
git clone https://github.com/osanoai/multicli.git
cd multicli
npm install
npm run build
npm run dev
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。