Multi-MCP — Claude Code MCP server for multi-model code review
An MCP server that sends the same question or file to several AI models and returns their answers. Useful when one review pass feels thin.
claude mcp add --env OPENAI_API_KEY=<OPENAI_API_KEY> --env ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> --env GEMINI_API_KEY=<GEMINI_API_KEY> --env OPENROUTER_API_KEY=<OPENROUTER_API_KEY> --env DEFAULT_MODEL=<DEFAULT_MODEL> --transport stdio multi-mcp -- uvx multi-mcpWhat Multi-MCP does
Multi-MCP sits between your editor and the model providers. It exposes four tools: a code review with OWASP Top 10 checks and a performance pass, a chat about the repository, a side-by-side model comparison, and a debate where models answer alone and then critique each other.
API providers share space with CLI ones such as Gemini CLI and Claude CLI. Short aliases like mini or sonnet save typing. Calls run in parallel on asyncio, so a round takes as long as the slowest model rather than the sum of all. Threads keep context across review steps.
You need Python 3.11 and a key for at least one provider: Anthropic, Anthropic, Google or OpenRouter. No key, no tools. Settings load from .env in three layers — shell variables first, then the project file, then ~/.multi_mcp/.env. Custom models go into ~/.multi_mcp/config.yaml, which overrides the bundled set.
What it helps with
- run one file past several models and compare the notes
- scan code for OWASP Top 10 holes
- see how different models answer an architecture question
- get a model to critique another model's answer
- wire a local Ollama model next to cloud ones
Example prompts for the agent
- Ask Multi chat what
parse_configdoes in this repo - Run multi codereview on this module for quality and maintainability with gemini-3 and Claude
- Use multi compare to weigh the state management options for this React app
How to install Multi-MCP
Platform CLI
claude mcp add --env OPENAI_API_KEY=<OPENAI_API_KEY> --env ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> --env GEMINI_API_KEY=<GEMINI_API_KEY> --env OPENROUTER_API_KEY=<OPENROUTER_API_KEY> --env DEFAULT_MODEL=<DEFAULT_MODEL> --transport stdio multi-mcp -- uvx multi-mcpReplace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from multi-mcp <command>
Platform CLI
codex mcp add multi-mcp --env OPENAI_API_KEY=<OPENAI_API_KEY> --env ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> --env GEMINI_API_KEY=<GEMINI_API_KEY> --env OPENROUTER_API_KEY=<OPENROUTER_API_KEY> --env DEFAULT_MODEL=<DEFAULT_MODEL> -- uvx multi-mcpReplace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from multi-mcp <command>
Config file
{
"mcpServers": {
"multi-mcp": {
"command": "uvx",
"args": [
"multi-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>",
"DEFAULT_MODEL": "<DEFAULT_MODEL>"
}
}
}
}Replace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from multi-mcp <command>
Config file
{
"servers": {
"multi-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"multi-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>",
"DEFAULT_MODEL": "<DEFAULT_MODEL>"
}
}
}
}Replace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from multi-mcp <command>
Platform CLI
gemini mcp add -e OPENAI_API_KEY=<OPENAI_API_KEY> -e ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e OPENROUTER_API_KEY=<OPENROUTER_API_KEY> -e DEFAULT_MODEL=<DEFAULT_MODEL> multi-mcp uvx multi-mcpReplace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from multi-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Multi-MCP
How do I install Multi-MCP in Claude Code?
Run `claude mcp add multi-mcp -e OPENAI_API_KEY=<OPENAI_API_KEY> -e ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e OPENROUTER_API_KEY=<OPENROUTER_API_KEY> -- uvx multi-mcp` with your own keys in place of the placeholders.
What does Multi-MCP do?
It gives the agent four tools: code review, repository chat, parallel model comparison and a debate with mutual critique. Model calls go out at the same time.
Which API keys does it need?
One is enough: Anthropic, Anthropic, Google or OpenRouter. Azure Anthropic and AWS Bedrock can be added as options.