Multi-MCP
Multi-MCP is a multi-model AI orchestration server that enables automated code review and LLM-powered analysis using multiple AI providers in parallel.
Code Review – Systematic, multi-step code reviews covering quality, security (OWASP Top 10), performance, and architecture using one or more AI models in parallel. Tracks cumulative issues with severity levels across review steps.
Chat – Interactive, multi-turn conversations with an AI assistant, with support for project context and file inclusion for development assistance.
Compare – Run the same prompt against multiple AI models simultaneously and compare responses side-by-side — useful for architectural decisions or getting diverse perspectives.
Debate – Two-step multi-model debate: models answer independently, then critique each other and vote to reach consensus.
Models – List all available AI models, their aliases, providers, and configuration details.
Version – Retrieve server version, configuration details, and available tools.
Key capabilities:
Supports OpenAI GPT, Anthropic Claude, Google Gemini, OpenRouter, Azure OpenAI, AWS Bedrock, and custom CLI models (e.g., Ollama)
Parallel model execution for low-latency results
Conversation threading (
thread_id) to maintain context across multi-step workflowsFile and project context inclusion (up to 100 relevant files per request)
Customizable models via YAML config, with aliases (e.g.,
mini,sonnet,gemini) for convenience
Integrates Google Gemini models (API and CLI) for parallel code review and multi-model comparisons.
Supports custom local LLMs via Ollama CLI as a model provider for code review and analysis.
Integrates OpenAI GPT and Codex models (API and CLI) for code review, security analysis, and consensus debates.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Multi-MCPcodereview the changes in the last commit"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Multi-MCP: Multi-Model Code Review and Analysis MCP Server for Claude Code
A multi-model AI orchestration MCP server for automated code review and LLM-powered analysis. Multi-MCP integrates with Claude Code CLI and OpenCode to orchestrate multiple AI models (OpenAI GPT, Anthropic Claude, Google Gemini) for code quality checks, security analysis (OWASP Top 10), and multi-agent consensus. Built on the Model Context Protocol (MCP), this tool enables Python developers and DevOps teams to automate code reviews with AI-powered insights directly in their development workflow.
Features
🔍 Code Review - Systematic workflow with OWASP Top 10 security checks and performance analysis
💬 Chat - Interactive development assistance with repository context awareness
🔄 Compare - Parallel multi-model analysis for architectural decisions
🎭 Debate - Multi-agent consensus workflow (independent answers + critique)
🤖 Multi-Model Support - OpenAI GPT, Anthropic Claude, Google Gemini, and OpenRouter
🖥️ CLI & API Models - Mix CLI-based (Gemini CLI, Codex CLI) and API models
🏷️ Model Aliases - Use short names like
mini,sonnet,gemini🧵 Threading - Maintain context across multi-step reviews
Related MCP server: mcp-agent-review
How It Works
Multi-MCP acts as an MCP server that Claude Code or OpenCode connects to, providing AI-powered code analysis tools:
Install the MCP server and configure your AI model API keys
Integrate with Claude Code or OpenCode automatically via
make installInvoke tools using natural language (e.g., "multi codereview this file")
Get Results from multiple AI models orchestrated in parallel
Performance
Fast Multi-Model Analysis:
⚡ Parallel Execution - 3 models in ~10s (vs ~30s sequential)
🔄 Async Architecture - Non-blocking Python asyncio
💾 Conversation Threading - Maintains context across multi-step reviews
📊 Low Latency - Response time = slowest model, not sum of all models
Quick Start
Prerequisites:
Python 3.11+
API key for at least one provider (OpenAI, Anthropic, Google, or OpenRouter)
Installation
Option 1: From Source
# Clone and install
git clone https://github.com/religa/multi_mcp.git
cd multi_mcp
# Execute ./scripts/install.sh
make install
# The installer will:
# 1. Install dependencies (uv sync)
# 2. Generate your .env file
# 3. Automatically add to Claude Code / OpenCode config (requires jq)
# 4. Test the installationOption 2: Manual Configuration
If you prefer not to run make install:
# Install dependencies
uv sync
# Copy and configure .env
cp .env.example .env
# Edit .env with your API keysAdd to Claude Code (~/.claude.json) or OpenCode (~/.opencode/opencode.json), replacing /path/to/multi_mcp with your actual clone path:
Claude Code:
{
"mcpServers": {
"multi": {
"type": "stdio",
"command": "/path/to/multi_mcp/.venv/bin/python",
"args": ["-m", "multi_mcp.server"]
}
}
}OpenCode:
{
"mcp": {
"multi": {
"type": "local",
"command": ["/path/to/multi_mcp/.venv/bin/python", "-m", "multi_mcp.server"],
"enabled": true
}
}
}Configuration
Environment Configuration (API Keys & Settings)
Multi-MCP loads settings from .env files in this order (highest priority first):
Environment variables (already set in shell)
Project
.env(current directory or project root)User
.env(~/.multi_mcp/.env) - fallback for pip installs
Edit .env with your API keys:
# API Keys (configure at least one)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=...
OPENROUTER_API_KEY=sk-or-...
# Azure OpenAI (optional)
AZURE_API_KEY=...
AZURE_API_BASE=https://your-resource.openai.azure.com/
# AWS Bedrock (optional)
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION_NAME=us-east-1
# Model Configuration
DEFAULT_MODEL=gpt-5-mini
DEFAULT_MODEL_LIST=gpt-5-mini,gemini-3-flashModel Configuration (Adding Custom Models)
Models are defined in YAML configuration files (user config wins):
Package defaults:
multi_mcp/config/config.yaml(bundled with package)User overrides:
~/.multi_mcp/config.yaml(optional, takes precedence)
To add your own models, create ~/.multi_mcp/config.yaml (see config.yaml and config.override.example.yaml for examples):
version: "1.0"
models:
# Add a new API model
my-custom-gpt:
litellm_model: openai/gpt-4o
aliases:
- custom
notes: "My custom GPT-4o configuration"
# Add a custom CLI model
my-local-llm:
provider: cli
cli_command: ollama
cli_args:
- "run"
- "llama3.2"
cli_parser: text
aliases:
- local
notes: "Local LLaMA via Ollama"
# Override an existing model's settings
gpt-5-mini:
constraints:
temperature: 0.5 # Override default temperatureMerge behavior:
New models are added alongside package defaults
Existing models are merged (your settings override package defaults)
Aliases can be "stolen" from package models to your custom models
Usage Examples
Once installed in your MCP client (Claude Code or OpenCode), you can use these commands:
💬 Chat - Interactive development assistance:
Can you ask Multi chat what's the answer to life, universe and everything?🔍 Code Review - Analyze code with specific models:
Can you multi codereview this module for code quality and maintainability using gemini-3 and codex?🔄 Compare - Get multiple perspectives (uses default models):
Can you multi compare the best state management approach for this React app?🎭 Debate - Deep analysis with critique:
Can you multi debate the best project code name for this project?Enabling Allowlist
Edit ~/.claude/settings.json and add the following lines to permissions.allow to enable Claude Code to use Multi MCP without blocking for user permission:
{
"permissions": {
"allow": [
...
"mcp__multi__chat",
"mcp__multi__codereview",
"mcp__multi__compare",
"mcp__multi__debate",
"mcp__multi__models"
],
},
"env": {
"MCP_TIMEOUT": "300000",
"MCP_TOOL_TIMEOUT": "300000"
},
}Model Aliases
Use short aliases instead of full model names:
Alias | Model | Provider |
| gpt-5.6-luna | OpenAI |
| gpt-5.6-luna | OpenAI |
| gpt-6-astra | OpenAI |
| gpt-6-astra | OpenAI |
| gpt-5.6-sol | OpenAI |
| gpt-5.6-terra | OpenAI |
| gpt-5.6-luna | OpenAI |
| gpt-5.3-codex | OpenAI |
| claude-fable-5-1 | Anthropic |
| claude-opus-5 | Anthropic |
| claude-sonnet-5 | Anthropic |
| claude-haiku-4.5 | Anthropic |
| gemini-3.1-pro-preview | |
| gemini-3.1-pro-preview | |
| gemini-3.8-flash | |
| gemini-3.5-flash-lite | |
| azure-gpt-5-mini | Azure |
| bedrock-claude-4-5-sonnet | AWS |
Run multi:models to see all available models and aliases.
CLI Models
Multi-MCP can execute CLI-based AI models (like Gemini CLI, Codex CLI, or Claude CLI) alongside API models. CLI models run as subprocesses and work seamlessly with all existing tools.
Benefits:
Use models with full tool access (file operations, shell commands)
Mix API and CLI models in
compareanddebateworkflowsLeverage local CLIs without API overhead
Built-in CLI Models:
gemini-cli(alias:gem-cli) - Gemini CLI with auto-edit modecodex-cli(alias:cx-cli) - Codex CLI with full-auto modeclaude-cli(alias:cl-cli) - Claude CLI with acceptEdits mode
Adding Custom CLI Models:
Add to ~/.multi_mcp/config.yaml (see Model Configuration):
version: "1.0"
models:
my-ollama:
provider: cli
cli_command: ollama
cli_args:
- "run"
- "codellama"
cli_parser: text # "json", "jsonl", or "text"
aliases:
- ollama
notes: "Local CodeLlama via Ollama"Prerequisites:
CLI models require the respective CLI tools to be installed:
# Gemini CLI
npm install -g @anthropic-ai/gemini-cli
# Codex CLI
npm install -g @openai/codex
# Claude CLI
npm install -g @anthropic-ai/claude-codeCLI Usage (Experimental)
Multi-MCP includes a standalone CLI for code review without needing an MCP client.
⚠️ Note: The CLI is experimental and under active development.
# Review a directory
multi src/
# Review specific files
multi src/server.py src/config.py
# Use a different model
multi --model mini src/
# JSON output for CI/pipelines
multi --json src/ > results.json
# Verbose logging
multi -v src/
# Specify project root (for CLAUDE.md loading)
multi --base-path /path/to/project src/Why Multi-MCP?
Feature | Multi-MCP | Single-Model Tools |
Parallel model execution | ✅ | ❌ |
Multi-model consensus | ✅ | Varies |
Model debates | ✅ | ❌ |
CLI + API model support | ✅ | ❌ |
OWASP security analysis | ✅ | Varies |
Troubleshooting
"No API key found"
Add at least one API key to your
.envfileVerify it's loaded:
uv run python -c "from multi_mcp.settings import settings; print(settings.openai_api_key)"
Integration tests fail
Set
RUN_E2E=1environment variableVerify API keys are valid and have sufficient credits
Debug mode:
export LOG_LEVEL=DEBUG # INFO is default
uv run python -m multi_mcp.serverCheck logs in logs/server.log for detailed information.
FAQ
Q: Do I need all three AI providers? A: No, just one API key (OpenAI, Anthropic, or Google) is enough to get started.
Q: Does it truly run in parallel?
A: Yes! When you use codereview, compare or debate tools, all models are executed concurrently using Python's asyncio.gather(). This means you get responses from multiple models in the time it takes for the slowest model to respond, not the sum of all response times.
Q: How many models can I run at the same time? A: There's no hard limit! You can run as many models as you want in parallel. In practice, 2-5 models work well for most use cases. All tools use your configured default models (typically 2-3), but you can specify any number of models you want.
Contributing
We welcome contributions! See CONTRIBUTING.md for:
Development setup
Code standards
Testing guidelines
Pull request process
Quick start:
git clone https://github.com/YOUR_USERNAME/multi_mcp.git
cd multi_mcp
uv sync --extra dev
make check && make testLicense
MIT License - see LICENSE file for details
Links
Available Tools
6 toolschatC
General chat with AI assistant. Supports multi-turn conversations with project context and file inclusion.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Step name (e.g., 'Initial Analysis', 'Security Review') | |
| content | Yes | Your question to the AI Assistant. Provide detailed context: your goal, what you've tried, what worked, any specific challenges. IMPORTANT: Always include paths to relevant files in `relevant_files` - do NOT skip this step. | |
| step_number | Yes | Current step | |
| next_action | Yes | Recommended next action: 'continue' to proceed, 'stop' to end | |
| base_path | Yes | Absolute path to project root to id the project and load project files | |
| thread_id | No | Thread ID to continue previous conversation and preserve context. WHEN TO USE: - None/omit: Starting a brand new review or chat session (step_number=1) - Provide thread_id: Continuing a multi-step workflow from a previous response (step_number>1) The thread_id is returned in every response - save it and reuse it for follow-up steps. | |
| relevant_files | No | Absolute paths of ALL files relevant to this question (up to 100 files). CRITICAL: For project-level questions (features, architecture, design), you MUST include project documentation (README.md, docs/, architecture diagrams). For code-specific questions, include the implementation files, related modules, tests, and configs. Example 1: 'What feature should we build?' → Include README.md, src/server.py, config/*.*, tests/. Example 2: 'Review this function' → Include the file with the function, related modules, tests, and documentation. | |
| model | No | LLM Model name to use (default: gpt-4) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It mentions multi-turn conversation support and file inclusion but omits important details such as whether the tool modifies state, requires authentication, has rate limits, or how conversation history is managed. The agent may not know that it can safely invoke this tool without side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief at two sentences, front-loading the core purpose. It avoids verbosity but could include more useful information (e.g., tip on when to use) without becoming too long. It is appropriately sized for a simple chat tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters (5 required), no annotations, and an output schema, the description is insufficient. It fails to explain the multi-turn workflow, how to start vs. continue a conversation, or what the output contains. The schema descriptions partly compensate, but the description should provide higher-level guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters are fully described in the input schema, so the baseline is 3. The description adds minimal value by framing parameters in terms of 'project context' and 'file inclusion,' but the schema already covers this in detail. There is no significant additional semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'General chat with AI assistant' which clearly identifies the tool's purpose. It further specifies multi-turn conversations and project context, distinguishing it from sibling tools like codereview and compare. However, it could be more explicit about the scope of the chat (e.g., programming assistance vs. general Q&A).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Sibling tool names are given but without any context or comparison. The description does not mention when not to use chat or suggest other tools for specific tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codereviewB
Systematic code review using external models. Covers quality, security, performance, and architecture.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Step name (e.g., 'Initial Analysis', 'Security Review') | |
| content | Yes | Your code review request for the expert reviewer. Step 1: Describe the project and define review objectives and focus areas. Step 2+: Report findings organized by quality, security, performance, architecture. Include: what to review, focus areas (security/concurrency/logic), specific concerns, confidence level. Exclude: code snippets (use `relevant_files`), issue lists (use `issues_found`). | |
| step_number | Yes | Current step | |
| next_action | Yes | Recommended next action: 'continue' to proceed, 'stop' to end | |
| base_path | Yes | Absolute path to project root to id the project and load project files | |
| thread_id | No | Thread ID to continue previous conversation and preserve context. WHEN TO USE: - None/omit: Starting a brand new review or chat session (step_number=1) - Provide thread_id: Continuing a multi-step workflow from a previous response (step_number>1) The thread_id is returned in every response - save it and reuse it for follow-up steps. | |
| relevant_files | No | Absolute paths of ALL files relevant to this question (up to 100 files). CRITICAL: For project-level questions (features, architecture, design), you MUST include project documentation (README.md, docs/, architecture diagrams). For code-specific questions, include the implementation files, related modules, tests, and configs. Example 1: 'What feature should we build?' → Include README.md, src/server.py, config/*.*, tests/. Example 2: 'Review this function' → Include the file with the function, related modules, tests, and documentation. | |
| models | No | List of LLM models to run in parallel (minimum 1) (will use default models (['gpt-4', 'gpt-3.5-turbo']) if not specified) | |
| issues_found | No | REQUIRED: List of issues identified with severity levels, locations, and detailed descriptions. IMPORTANT: This list is CUMULATIVE across steps. Include ALL issues found in previous steps PLUS new ones. Each dict must contain these keys: 'severity' (required, one of: 'critical', 'high', 'medium', 'low'), 'location' (required, format: 'filename:line_number' or 'filename' if line unknown), 'description' (required, detailed explanation of the issue). Example: [{'severity': 'high', 'location': 'auth.py:45', 'description': 'SQL injection vulnerability in login query - user input not sanitized'}]. Empty list is acceptable if no issues found yet. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must clarify behavior. It only says 'uses external models' without detailing model behavior, result handling, or limitations. The multi-step process and requirement for cumulative issues_found are not mentioned, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at one sentence, but it lacks structure and misses key contextual information. It is not overly verbose, but it could be better organized to front-load important details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 9 parameters and the step-based workflow implied by parameters like step_number and thread_id, the description provides insufficient high-level context. It does not explain the review process or how results are aggregated, relying too heavily on parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself explains parameters well. The description does not add new semantic meaning beyond the schema, so it meets the baseline without excelling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs code review covering quality, security, performance, and architecture, distinguishing it from sibling tools like chat or debate. However, it omits mentioning the multi-step workflow evident from the input schema, which would strengthen clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for code review but provides no explicit guidance on when to use it versus alternatives, nor does it mention when not to use it. Sibling tool names suggest different purposes, but the description itself lacks directives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compareA
Compare responses from multiple AI models. Runs the same content against all specified models in parallel. Supports multi-turn conversations with project context and file inclusion.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Step name (e.g., 'Initial Analysis', 'Security Review') | |
| content | Yes | Your question to the AI Assistant. Provide detailed context: your goal, what you've tried, what worked, any specific challenges. IMPORTANT: Always include paths to relevant files in `relevant_files` - do NOT skip this step. | |
| step_number | Yes | Current step | |
| next_action | Yes | Recommended next action: 'continue' to proceed, 'stop' to end | |
| base_path | Yes | Absolute path to project root to id the project and load project files | |
| thread_id | No | Thread ID to continue previous conversation and preserve context. WHEN TO USE: - None/omit: Starting a brand new review or chat session (step_number=1) - Provide thread_id: Continuing a multi-step workflow from a previous response (step_number>1) The thread_id is returned in every response - save it and reuse it for follow-up steps. | |
| relevant_files | No | Absolute paths of ALL files relevant to this question (up to 100 files). CRITICAL: For project-level questions (features, architecture, design), you MUST include project documentation (README.md, docs/, architecture diagrams). For code-specific questions, include the implementation files, related modules, tests, and configs. Example 1: 'What feature should we build?' → Include README.md, src/server.py, config/*.*, tests/. Example 2: 'Review this function' → Include the file with the function, related modules, tests, and documentation. | |
| models | No | List of LLM models to run in parallel (minimum 2) (will use default models (['gpt-4', 'gpt-3.5-turbo']) if not specified) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses parallel execution, multi-turn conversation support, and file inclusion. With no annotations, description provides good behavioral context, though no mention of side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each adding essential information. No redundancy or filler. Front-loaded with core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters and output schema exists, description covers key aspects. Could mention output format but not required. Adequate for a comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 8 parameters with descriptions. Description adds that content is sent to all models in parallel, but this is implicit from the tool's purpose. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool compares responses from multiple AI models, running same content in parallel. Distinguishes from siblings like chat and codereview by emphasizing multi-model comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly specify when to use vs alternatives like debate or chat. Mentions multi-turn support but lacks guidance on choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debateA
Multi-model debate: Step 1 (independent answers) + Step 2 (debate/critique). Each model provides independent answer, then reviews all responses and votes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Step name (e.g., 'Initial Analysis', 'Security Review') | |
| content | Yes | Your question to the AI Assistant. Provide detailed context: your goal, what you've tried, what worked, any specific challenges. IMPORTANT: Always include paths to relevant files in `relevant_files` - do NOT skip this step. | |
| step_number | Yes | Current step | |
| next_action | Yes | Recommended next action: 'continue' to proceed, 'stop' to end | |
| base_path | Yes | Absolute path to project root to id the project and load project files | |
| thread_id | No | Thread ID to continue previous conversation and preserve context. WHEN TO USE: - None/omit: Starting a brand new review or chat session (step_number=1) - Provide thread_id: Continuing a multi-step workflow from a previous response (step_number>1) The thread_id is returned in every response - save it and reuse it for follow-up steps. | |
| relevant_files | No | Absolute paths of ALL files relevant to this question (up to 100 files). CRITICAL: For project-level questions (features, architecture, design), you MUST include project documentation (README.md, docs/, architecture diagrams). For code-specific questions, include the implementation files, related modules, tests, and configs. Example 1: 'What feature should we build?' → Include README.md, src/server.py, config/*.*, tests/. Example 2: 'Review this function' → Include the file with the function, related modules, tests, and documentation. | |
| models | No | List of LLM models to run in parallel (minimum 2) (will use default models (['gpt-4', 'gpt-3.5-turbo']) if not specified) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the two-step behavioral flow (independent answers then debate/voting), which is useful. However, it omits details like idempotency, side effects, or any constraints. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences, no redundant words. Front-loaded with the core concept 'Multi-model debate'. Every sentence adds value, efficiently conveying the two-step process.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full schema coverage and presence of an output schema, the description adequately covers the conceptual flow. It could mention the requirement of at least two models, but that is already in the schema. Minor gaps exist but overall sufficient for an agent to understand execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The tool description does not add any parameter-specific meaning beyond what the schema already provides. It focuses on the overall process rather than individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Multi-model debate' and outlines the two-step process (independent answers then debate/critique), which clearly sets it apart from sibling tools like chat (single model) or compare (likely pairwise comparison). The verb+resource is specific and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It describes the process but does not specify scenarios (e.g., when you need multiple perspectives vs a single answer) or provide exclusion criteria. Lacks context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modelsA
List available AI models. Returns model names, aliases, provider, and configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies idempotent read behavior by stating 'list available AI models', but it does not explicitly confirm no side effects or mention idempotency. With no annotations, the description carries full burden; it is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the core purpose; the second specifies return values. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and a simple listing task, the description covers purpose and return fields adequately. The presence of an output schema (even if not shown) means return details can be inferred, so no further explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter details. Baseline 4 is appropriate as it does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'lists available AI models' using a specific verb and resource. It further specifies return fields (names, aliases, provider, configuration), making the purpose explicit and distinguishing it from sibling tools like 'chat' or 'compare' which are interactive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools exist (chat, codereview, etc.) but the description does not mention them or provide context for selecting this tool. For a simple listing, this omission is less critical but still a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
versionA
Get server version, configuration details, and list of available tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by stating 'Get', which combined with no parameters and output schema suggests no side effects. However, without annotations, explicit disclosure of non-destructiveness or authorization needs would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence that is front-loaded with the verb. Every word is necessary and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and an output schema, the description covers the key return aspects (version, configuration, tool list). The presence of an output schema further supports completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline score is 4. The description doesn't need to add parameter information beyond what the empty schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resources: server version, configuration details, and list of available tools. This is specific and distinguishes from sibling tools like chat, codereview, compare, debate, models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It's a simple info retrieval tool, but no explicit context or exclusion is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.1- First observed
chat - First observed
codereview - First observed
compare - First observed
debate - First observed
models - First observed
version
TDQS
Each tool has a clearly distinct purpose: general chat, code review, model response comparison, multi-model debate, listing models, and server version. No overlap between tools.
All tool names are single, lowercase words, which is consistent in style. However, part of speech varies (e.g., 'compare' is a verb while 'models' is a noun), which is a minor inconsistency.
With 6 tools, the server covers its intended multi-model AI interaction scope concisely without being bloated or insufficient.
The tool surface covers the full range of expected operations: general interaction, code review, model comparison, debate, and informational queries. No obvious gaps in functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
AI code review for GitHub PRs with an MCP autofix loop for Claude Code and Cursor
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that orchestrates a dual-model workflow using Claude Opus for high-level code generation and Codex for automated code review and bug fixing. It provides tools for framework design, task classification, and quality assurance to optimize software development.-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides agentic code review powered by OpenAI-compatible models, designed for use with Claude Code.1MIT
- AlicenseBqualityAmaintenanceMCP server orchestrating API-first cross-review between Claude, ChatGPT Codex, Gemini, DeepSeek, Grok, and Perplexity with unanimous convergence gates.31634Apache 2.0
- AlicenseAqualityCmaintenanceAn MCP server that enables code review by having two LLMs (Claude and GPT-4o) independently evaluate code and then synthesize their findings into a unified report.3MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/religa/multi_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server