Skip to main content
Glama

Multi-MCP: Multi-Model Code Review and Analysis MCP Server for Claude Code

CI PyPI Downloads License: MIT Python 3.11+ GitHub stars

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.

Demo Video

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:

  1. Install the MCP server and configure your AI model API keys

  2. Integrate with Claude Code or OpenCode automatically via make install

  3. Invoke tools using natural language (e.g., "multi codereview this file")

  4. 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 installation

Option 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 keys

Add 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):

  1. Environment variables (already set in shell)

  2. Project .env (current directory or project root)

  3. 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-flash

Model Configuration (Adding Custom Models)

Models are defined in YAML configuration files (user config wins):

  1. Package defaults: multi_mcp/config/config.yaml (bundled with package)

  2. 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 temperature

Merge 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

mini

gpt-5.6-luna

OpenAI

nano

gpt-5.6-luna

OpenAI

gpt

gpt-6-astra

OpenAI

astra

gpt-6-astra

OpenAI

sol

gpt-5.6-sol

OpenAI

terra

gpt-5.6-terra

OpenAI

luna

gpt-5.6-luna

OpenAI

codex

gpt-5.3-codex

OpenAI

fable

claude-fable-5-1

Anthropic

opus

claude-opus-5

Anthropic

sonnet

claude-sonnet-5

Anthropic

haiku

claude-haiku-4.5

Anthropic

gemini

gemini-3.1-pro-preview

Google

gemini-3

gemini-3.1-pro-preview

Google

flash

gemini-3.8-flash

Google

flash-lite

gemini-3.5-flash-lite

Google

azure-mini

azure-gpt-5-mini

Azure

bedrock-sonnet

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 compare and debate workflows

  • Leverage local CLIs without API overhead

Built-in CLI Models:

  • gemini-cli (alias: gem-cli) - Gemini CLI with auto-edit mode

  • codex-cli (alias: cx-cli) - Codex CLI with full-auto mode

  • claude-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-code

CLI 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 .env file

  • Verify it's loaded: uv run python -c "from multi_mcp.settings import settings; print(settings.openai_api_key)"

Integration tests fail

  • Set RUN_E2E=1 environment variable

  • Verify API keys are valid and have sufficient credits

Debug mode:

export LOG_LEVEL=DEBUG # INFO is default
uv run python -m multi_mcp.server

Check 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 test

License

MIT License - see LICENSE file for details

Available Tools

6 tools
chatC

General chat with AI assistant. Supports multi-turn conversations with project context and file inclusion.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStep name (e.g., 'Initial Analysis', 'Security Review')
contentYesYour 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_numberYesCurrent step
next_actionYesRecommended next action: 'continue' to proceed, 'stop' to end
base_pathYesAbsolute path to project root to id the project and load project files
thread_idNoThread 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_filesNoAbsolute 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.
modelNoLLM Model name to use (default: gpt-4)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStep name (e.g., 'Initial Analysis', 'Security Review')
contentYesYour 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_numberYesCurrent step
next_actionYesRecommended next action: 'continue' to proceed, 'stop' to end
base_pathYesAbsolute path to project root to id the project and load project files
thread_idNoThread 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_filesNoAbsolute 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.
modelsNoList of LLM models to run in parallel (minimum 1) (will use default models (['gpt-4', 'gpt-3.5-turbo']) if not specified)
issues_foundNoREQUIRED: 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStep name (e.g., 'Initial Analysis', 'Security Review')
contentYesYour 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_numberYesCurrent step
next_actionYesRecommended next action: 'continue' to proceed, 'stop' to end
base_pathYesAbsolute path to project root to id the project and load project files
thread_idNoThread 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_filesNoAbsolute 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.
modelsNoList of LLM models to run in parallel (minimum 2) (will use default models (['gpt-4', 'gpt-3.5-turbo']) if not specified)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStep name (e.g., 'Initial Analysis', 'Security Review')
contentYesYour 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_numberYesCurrent step
next_actionYesRecommended next action: 'continue' to proceed, 'stop' to end
base_pathYesAbsolute path to project root to id the project and load project files
thread_idNoThread 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_filesNoAbsolute 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.
modelsNoList of LLM models to run in parallel (minimum 2) (will use default models (['gpt-4', 'gpt-3.5-turbo']) if not specified)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 6 tool updatesv0.1.1
    • First observedchat
    • First observedcodereview
    • First observedcompare
    • First observeddebate
    • First observedmodels
    • First observedversion

TDQS

A3.7/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

With 6 tools, the server covers its intended multi-model AI interaction scope concisely without being bloated or insufficient.

Completeness5/5

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

ActivityMaintained
ResponsivenessWithin a week

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

Related MCP Servers

Latest Blog Posts

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