Skip to main content
Glama

OpenRouter MCP Server

An unofficial, production-ready Model Context Protocol (MCP) server that acts as an intelligent, agentic gateway to OpenRouter's 200+ AI models. Built for advanced multi-repo development workflows.

Now fully modularized and config-driven for maximum flexibility.


๐Ÿ—๏ธ Architecture

The server follows a Domain-Specific Modular Architecture:

  • Server Core: Lightweight orchestrator in src/index.ts.

  • Domain Orchestrator: Namespace capability loader in src/domains/index.ts (Gateway, Intelligence, Diagnostics).

  • Domain Tool Modules: Specialized toolsets in src/tools/ (Chat, Models, Context, Code, etc.).

  • Native MCP Primitives: Standard MCP Resources (src/resources/) and Prompts (src/prompts/).

  • Shared Helpers: Centralized infrastructure in src/helpers/ (Rate limiting, Pricing, Embeddings, Firewall).


Related MCP server: Multi-LLM Gateway MCP

โš™๏ธ Configuration & Profiles

Tool Toggling

You can enable or disable any tool without changing code via tools.config.json in the root directory.

Profiles

Profiles allow you to quickly switch between different toolsets for different workflows.

  • Antigravity Profile: Optimized for use with the Antigravity agent, disabling redundant internal tools.

  • Usage: Pass the --profile argument to the server.

CLI Arguments

Argument

Description

Example

--profile

Load a specific JSON profile from the profiles/ directory

--profile antigravity


Installation & Setup

1. Install & Build

npm install
npm run build

2. Configure API Key

Create .env in the project root:

OPENROUTER_API_KEY=sk-or-...

The server also checks ~/.config/openrouter-mcp/.env as a user-level override. Set OPENROUTER_MCP_ENV_PATH to point to an alternative location if needed.

In Docker, inject the variable directly via -e OPENROUTER_API_KEY=... or compose environment: โ€” no .env file required inside the container.

3. Register with your MCP Client

In your mcp_config.json:

{
  "mcpServers": {
    "openrouter": {
      "command": "node",
      "args": ["/absolute/path/to/openrouter-mcp/build/index.js", "--profile", "antigravity"]
    }
  }
}

Security & Cost Control

CAUTION

NOTICE TO USERS: Defense-in-Depth Budgeting

The Universal MCP for OpenRouter provides powerful application-level budget controls (via the set_budget tool) and automatic circuit breakers. However, you should treat these tools as just one line of defense specifically tailored for application development and dynamic agentic workflows.

You must ALWAYS implement infrastructure-level limits directly through OpenRouter.

If your IDE crashes, an agent enters an infinite loop that bypasses the MCP, or your API key is somehow exposed, the MCP's circuit breakers cannot protect you. To ensure true financial safety, follow these OpenRouter best practices:

  1. Use Unique Keys: Generate a unique OpenRouter API key specifically for this MCP server. Do not reuse a master key.

  2. Set Hard Key Limits: In your OpenRouter Dashboard (Settings -> Keys), apply a strict USD spending limit to this specific key.

  3. Set Reset Frequencies: Configure the key to reset daily or weekly rather than leaving it uncapped.

  4. Base Account Limits: Ensure your base OpenRouter account has a global maximum spending limit configured.

Use OpenRouter's native limits to protect your wallet, and use the Universal MCP's budget tools to manage your agent's behavior.

๐Ÿ›ก๏ธ Secret Redaction & Prompt Injection Firewall

The server includes a built-in, local Security Firewall in src/helpers/rate-guard.ts (sanitizeInputPrompt) that automatically intercepts prompts and embeddings payloads to:

  • Redact API Keys & Credentials:

    • OpenRouter API keys (sk-or-v1-...)

    • OpenAI API keys (sk-proj-...)

    • Anthropic API keys (sk-ant-api...)

    • GitHub Personal Access Tokens (ghp_... and github_pat_...)

    • AWS Access Key IDs (AKIA...)

    • Google Cloud / OAuth Tokens (ya29....)

    • Multi-line SSH & PEM private key blocks (-----BEGIN ... KEY-----)

  • Sanitize Prompt Injection Delimiters: Strips or replaces context poisoning markers (<|im_start|>system, [SYSTEM_INSTRUCTION_OVERRIDE]) to prevent external prompt injection exploits.

This prevents accidental exposure of credentials to external network suppliers and protects against context poisoning. If you explicitly need to transmit raw credentials for testing or key rotation workflows, set DISABLE_REDACTION=true.


Usage Guide

Basic & Smart Chat Completions

# Direct Model completions (custom or auto)
chat_completion(prompt: "Explain how JWT refresh tokens work", model: "anthropic/claude-sonnet-4.6")

# Thin preset completion (smart, cheap, fast, coder, creative)
chat_with_preset(preset: "fast", prompt: "Summarize this in 3 bullets: ...")

# Intelligent dynamic routing (evaluates budget constraints and circuit breakers)
chat_routed(prompt: "Write a high-performance HTTP gateway", strictness: "quality")

# Parallel Multi-Model Consensus Peer Review (polls up to 5 models concurrently)
chat_ensemble(
  models: ["deepseek/deepseek-chat", "anthropic/claude-sonnet-4.6", "google/gemini-3.1-pro-preview"],
  prompt: "Auditing constant-time cryptographic checks for timing attacks"
)

Budget Safety (set this first)

set_budget(max_dollars: 5.00, warn_at_percent: 75)
get_budget_status()

The budget cap is enforced before each API call fires. Configuration survives server restarts (rate_config.json). Circuit breakers open automatically after failures, parsing HTTP Retry-After response headers (on 429 rate limits) or applying adaptive exponential backoff (5s โž” 10s โž” 20s โž” 40s โž” 60s max) so healthy models recover as soon as rate limits clear.

Semantic Code Search (incremental background watch indexing)

# Step 1 โ€” index the project (spins up background watchers with automatic build/cache directory pruning)
index_project(project_path: "/path/to/repo", project_name: "my-api")

# Step 2 โ€” embed code chunks (uses MD5 checks to execute cost-free incremental reindexing)
reindex_project(project_name: "my-api")

# Step 3 โ€” semantic search
semantic_code_search(query: "where do we handle auth token expiry")

Semantic Memory

# Pin an architectural decision
pin_context(
  text: "We use JWT with 15-min access tokens and 7-day refresh tokens.",
  tag: "decision",
  project: "auth-service"
)

# Retrieve relevant context later
retrieve_context(query: "how does authentication work", top_k: 3)

Deep Transitive Auditing & Diagnostics

# Parse lockfiles in sub-milliseconds and trace co-existing semver conflicts
dependency_graph(transitive: true, check_conflicts: true)

# Trace targeted deep dependency paths leading to a specific package
dependency_graph(transitive: true, focus_package: "lodash", max_depth: 5)

# Multi-service log correlation and cascading fault root-cause analysis
correlate_errors(logs: [
  { system_name: "API Gateway", content: "ERROR: Connection timeout after 30s" },
  { system_name: "Database Server", content: "WARN: Connection pool exhausted (100/100)" }
])

๐ŸŒ Native MCP Resources (openrouter://...)

Passive read-only state endpoints exposed directly as standard MCP Resources:

  • openrouter://models โ€” Cached model catalog, context limits, and token pricing rates.

  • openrouter://budget/status โ€” Real-time spend metrics, budget caps, and circuit breaker status.

  • openrouter://account/balance โ€” Credit balance and API key details.

  • openrouter://memory/all โ€” Pinned semantic context notes and workspace memory.

๐Ÿ“ Native MCP Prompts (list_prompts / get_prompt)

Structured system prompt templates discoverable via the MCP prompts capability:

  • cost-aware-orchestration โ€” Teaches agents budget-safe model selection and credit checks.

  • multi-model-consensus โ€” Configures parallel peer review workflows.

  • autonomous-budget-safety โ€” Financial circuit breaker policy for autonomous loops.

  • distributed-diagnostics โ€” Multi-service log correlation and trace isolation.

  • workspace-memory-pinning โ€” Workspace memory and architectural decision pinning.


๐Ÿ“‹ Agent System Prompt Addendums

To help your agentic coding assistants (like Claude Code, OpenClaw, or Hermes) make the best use of this MCP server, we have provided structured system prompt templates in the templates/system-prompt-addendums/ directory:

  1. Cost-Aware & Budget-Safe Orchestration: Teaches the agent to route simple queries to cheap models and complex queries to premium models while tracking spending.

  2. Image & Vision Analysis Fallback: Guides text-based or terminal-based clients on how to use our vision_analyze tool to "see" image assets.

  3. Prompt Optimization & Fallback Routing: Keeps major refactoring tasks cost-efficient and outage-resistant.

  4. Multi-Service Log Correlation: Instructs the agent to isolate log ingestion to debug system failures quietly.

  5. Autonomous Loop Safety Policy: A strict financial circuit breaker for autonomous background execution loops.

  6. Workspace Memory & Long-Term Pinning: Solves conversation amnesia by persistently caching architectural and domain constraints.

  7. High-Throughput Batch Operations: Orchestrates multi-file conversions and template updates with cost-effective models.

  8. CI/CD & Build Pipeline Diagnostics: Automates container crash diagnostics and patch validation to resolve build failures.

  9. Monorepo Dependency & Semver Syncing: Performs pre-commit audits to keep package dependencies fully aligned across microservices.

  10. Enterprise Privacy & Sensitive Data Guardrails: Redacts and mocks credentials or proprietary algorithms to prevent sensitive data leaks.

  11. Multi-Model Peer Review & Consensus: Emulates a double-model consensus flow to audit mission-critical code for exploits and concurrency bugs.

  12. Context Window Garbage Collection: Minimizes token pricing and eliminates hallucinations by periodically purging active context bloat.

  13. OpenClaw CLI Loop-Stall & Log Pruning: Formulates terminal hygiene policies to prevent compilation locks and strip noise from test results.

  14. Structured Planning & JSON Chaining: Instructs Hermes-type JSON function call engines to compress reasoning steps and accelerate tool parallel execution.

  15. Diagnostic Self-Healing & Pre-Flight Integration: Mandates early setup diagnostic checks and reactive troubleshooting to handle budget or runtime failures gracefully.

  16. High-Context Codebase Navigation & Model Slicing: Dynamically estimates file token sizes to query and select the most budget-efficient high-context models.

  17. Real-Time Semantic Context & Background Indexing: Instructs the agent to rely on automatic background filesystem watching and line-shift resilient incremental re-indexing, avoiding manual indexing commands.

  18. Zero-Cost Local Proxy & Resilient Fallback Routing: Teaches the agent to leverage local model endpoints for free routine generations while ensuring transparent remote LLM failover.

Copy and paste these templates directly into your bot's system instructions or configuration environment to get started.


Persistent Files

File

Purpose

context_store.json

Vector store for pin_context and reindex_project embeddings

symbol_index.json

Symbol index from index_project

rate_config.json

Persisted budget cap and warning threshold

pricing_cache.json

Serialized pricing and model catalog cache for zero-network startups


Notes

  • Reasoning models: <think> blocks are automatically extracted and displayed separately.

  • Embedding models: Pinned text uses text-embedding-3-small. Code chunks use text-embedding-3-large.

  • Custom Presets can be modified in src/config.ts.

  • stdout is redirected to stderr to protect the MCP stdio protocol stream.

Maintained by Antigravity ยท Last updated May 21, 2026


โš–๏ธ Trademark Disclaimer

"Universal MCP for OpenRouter" is an independent, community-developed project. It is not affiliated with, endorsed by, or officially connected to OpenRouter, Inc. "OpenRouter" is a trademark of OpenRouter, Inc.

Available Tools

24 tools
chat_completionChat CompletionC

Generate a chat completion using an OpenRouter model

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoThe primary model to use (e.g., 'anthropic/claude-sonnet-4.6'). Defaults to 'openrouter/auto'.openrouter/auto
modelsNoAn optional list of fallback models to try in order if the primary model fails.
promptYesThe prompt to send to the model
max_tokensNoMaximum tokens to generate
temperatureNoSampling temperature (0-2)
system_promptNoOptional system prompt

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose behavioral traits such as fallback model handling or response format. The schema includes a 'models' fallback array, but the description makes no mention of this behavior, relying solely on the vague openWorldHint annotation.

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?

The description is a single, front-loaded sentence that efficiently states the tool's core function. Every word earns its place.

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?

The description is minimal and does not cover return values or usage context. With no output schema and many sibling tools, the agent lacks sufficient context to confidently invoke this tool over similar ones.

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 coverage is 100%, so all parameters are documented. The description adds no additional parameter meaning beyond the schema, warranting the baseline score.

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 the tool generates a chat completion using an OpenRouter model, which is a specific verb+resource. However, it does not differentiate from sibling tools like chat_ensemble or chat_routed, which also generate completions.

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. There is no mention of exclusions or alternative tools, leaving the agent without direction among the several chat-related sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chat_ensembleMulti-Model ConsensusA

Generate a consensus completion by querying multiple distinct models in parallel and synthesizing their responses using a synthesizer model.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelsYesThe list of models to query in parallel (maximum 5, e.g., ['deepseek/deepseek-chat', 'anthropic/claude-sonnet-4.6'])
promptYesThe main prompt to send to all models
max_tokensNoMaximum tokens to generate for candidate outputs
temperatureNoSampling temperature (0-2)
system_promptNoOptional system prompt for candidate models
synthesizer_modelNoThe model used to merge and optimize outputs (e.g., 'google/gemini-3.1-pro-preview')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide only openWorldHint: true, which is vague. The description adds behavioral detail (parallel querying, synthesizing) but does not disclose potential costs, latency, rate limits, or failure handling for individual model calls. It goes beyond annotations but still lacks deeper transparency for a multi-call tool.

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?

The description is a single, tightly written sentence that conveys the core functionality without any redundancy or filler. Every word contributes to understanding the tool's purpose and mechanism.

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 tool's moderate complexity (6 parameters, no output schema), the description adequately explains what it does and how, and the schema covers parameter details. However, it lacks explicit guidance on when to use this tool over sibling options and does not describe possible return format or error scenarios, so it is not fully complete.

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?

The input schema has 100% description coverage for all six parameters, so the schema fully documents parameter semantics. The description offers no additional parameter-level insight, warranting the baseline score of 3 per the rubric.

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's function: "Generate a consensus completion by querying multiple distinct models in parallel and synthesizing their responses using a synthesizer model." It specifies a concrete verb (generate), a resource (consensus completion), and the method (parallel multi-model querying), which distinguishes it from siblings like chat_completion or chat_routed.

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 its use case (multi-model consensus) but does not explicitly state when to use it versus alternatives such as chat_completion or chat_routed. No exclusions or alternative recommendations are provided, leaving the agent to infer the appropriate context from the tool's name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chat_routedIntelligent Routed ChatA

Execute a chat completion with intelligent, automatic cost-aware model routing based on prompt size, required context length, and task attributes.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe main prompt to run
max_tokensNoMaximum tokens to generate
strictnessNoRouting prioritization strategy. 'cost' prefers the absolute cheapest; 'quality' weights model performance tiers.cost
temperatureNoSampling temperature (0-2)
system_promptNoOptional system prompt
task_categoryNoThe general category of the task
require_visionNoWhether the model must support image/vision inputs
max_usd_price_per_1m_promptNoStrict maximum cost in USD per 1M prompt tokens (e.g., 2.50)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only openWorldHint annotation, the description adds some context about routing behavior but does not disclose potential side effects, failure modes (e.g., no model fitting budget), latency, or external calls. It does not contradict the annotation.

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?

The description is a single, well-structured sentence that front-loads the core purpose and key differentiator. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters and no output schema, so the description should clarify return behavior and edge cases. It explains the routing intent but lacks details on response format, failure conditions, or how strictness and price limits interact.

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?

The input schema has 100% parameter coverage, so the description does not need to explain individual parameters. It adds high-level context (routing based on prompt size etc.) that maps to parameters but does not go beyond the schema's own descriptions.

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 executes a chat completion with a distinguishing feature: intelligent, automatic cost-aware model routing based on prompt size, context length, and task attributes. This differentiates it from sibling tools like chat_completion or recommend_model.

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 usage for cost-aware routing needs, but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. The context is implicit, not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chat_with_presetChat with PresetB

Generate a chat completion using a predefined model preset (smart, cheap, creative, fast, coder)

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYesThe preset to use
promptYesThe prompt to send
system_promptNoOptional system prompt

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only restates the tool's purpose without adding behavioral details such as response format, rate limits, or non-determinism. The openWorldHint annotation exists but is not elaborated in the description, and no additional transparency is provided.

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?

The description is a single, concise sentence that front-loads the action and lists the presets efficiently, with no unnecessary words.

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?

For a tool with many siblings and no output schema, the description lacks usage context, differentiation from alternatives, and expected response information, leaving the agent under-informed for proper selection and invocation.

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?

The schema already provides full descriptions for all three parameters, including an enum for preset. The description merely lists the preset values, adding no additional semantic context beyond what the schema already contains.

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 'Generate a chat completion using a predefined model preset' with a specific verb and resource, and lists the preset options (smart, cheap, creative, fast, coder), differentiating it from sibling chat tools that do not mention presets.

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 when to use (when a preset is desired) but provides no explicit guidance on when to choose this tool over alternatives like chat_completion or chat_ensemble. No exclusions or alternative references are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_contextClear Context MemoryA
Destructive

Delete entries from semantic memory by tag or project

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag
projectNoFilter by project
confirm_wipe_allNoWipe entire memory

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the destructiveHint annotation by stating 'Delete entries'. However, it does not disclose important behavioral details beyond the annotation, such as the existence and implications of the confirm_wipe_all parameter, which can wipe the entire memory. Since annotations already declare destructiveness, this is not a contradiction, but the description adds only limited context about the deletion scope.

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?

The description is a single concise sentence that is front-loaded with the action and resource, and it efficiently communicates the core functionality without any redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a destructive operation with three optional parameters, including a flag that can wipe all memory. The description doesn't mention the wipe-all behavior or the risk of permanent deletion, making the tool's full scope incomplete. While annotations provide a destructive hint, the description should have addressed the confirm_wipe_all parameter to fully inform the agent.

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?

The schema has 100% coverage for all three parameters, each with descriptions. The description mentions 'tag or project' which aligns with two parameters, but it doesn't add extra semantic meaning beyond what the schema already provides. The confirm_wipe_all parameter is not mentioned in the description, so the description doesn't fully compensate for potential ambiguity.

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 uses a specific verb 'Delete' and identifies the resource 'entries from semantic memory' with explicit filtering criteria ('by tag or project'). This clearly distinguishes it from sibling tools like 'pin_context' and 'retrieve_context', which handle adding and retrieving context, not deleting.

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 usage for deleting memory entries filtered by tag or project, but it doesn't provide explicit guidance on when to choose this tool over alternatives, nor does it mention exclusions or prerequisites. It's clear enough for the basic operation but lacks direct comparative context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

correlate_errorsCorrelate Multi-System ErrorsA

Analyze log snippets from multiple systems to find root causes and correlations

ParametersJSON Schema
NameRequiredDescriptionDefault
logsYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose any behavioral traits beyond what the openWorldHint annotation suggests. It does not state whether the tool performs side effects, requires specific log formats, or returns a structured report. With a single minimal annotation, the description carries the burden for behavioral transparency, but it only says 'Analyze' and does not clarify read-only nature, output, or limitations.

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?

The description is a single sentence with 12 words. It is concise, front-loaded with the core purpose, and every word contributes meaning. There is no redundancy or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter, no output schema), so the description adequately conveys the essential purpose. However, it does not state what the tool returns (e.g., a correlation report, a list of root causes) or mention any edge cases or prerequisites. This is adequate for basic selection but leaves some context missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter 'logs' with array-of-objects structure, but no property descriptions (schema coverage 0%). The description merely says 'log snippets from multiple systems', which does not explain that each object must have 'system_name' and 'content' fields or how they should be formatted. The description does not compensate for the missing schema details.

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 uses a specific verb ('Analyze'), a clear resource ('log snippets from multiple systems'), and an explicit purpose ('find root causes and correlations'). It is distinct from all sibling tools, none of which perform multi-system error analysis. This clearly states what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for analyzing logs from multiple systems to diagnose issues. It provides clear context, but does not explicitly state when not to use it or mention alternative tools. Since no sibling tool offers similar functionality, exclusions are less critical, but still lacking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dependency_graphDependency Graph AnalysisA
Read-only

Analyze shared dependencies and semver conflicts across multiple projects

ParametersJSON Schema
NameRequiredDescriptionDefault
reposNoOptional list of project names to analyze
max_depthNoMaximum depth for output path tracing (default: 5)
transitiveNoEnable deep transitive dependency parsing of lockfiles
include_devNoInclude devDependencies in the analysis
focus_packageNoTrace all deep dependency paths leading to this specific package
check_conflictsNoWhether to run semver conflict detection

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description aligns with a read-only analysis operation. However, it adds no further behavioral details such as output format, performance characteristics, or whether lockfiles must be present, so it does not exceed what annotations provide.

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, straightforward sentence that gets to the point immediately. No filler or redundant phrasing, and the key action and target are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, no output schema), the description is quite sparse and does not explain the output structure or what an 'analysis' returns. While the schema covers parameters, the overall user experience could benefit from a sentence about result format.

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 all six parameters are well-documented in the schema itself. The tool-level description adds no parameter semantics beyond the schema, justifying the baseline score of 3.

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 uses a specific verb ('Analyze') and identifies the resource ('shared dependencies and semver conflicts') across multiple projects, clearly distinguishing it from chat, model, and search tools. The wording is precise and actionable, leaving no ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when dependency analysis across projects is needed, but does not explicitly state when not to use it or name alternatives. Since no sibling tool overlaps with this function, the context is clear but exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

filter_modelsFilter ModelsA
Read-onlyIdempotent

Filter and search available OpenRouter models based on requirements (e.g. cost, context window, vision)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of models to return (default: 10, max: 50)
queryNoFuzzy search term matching model ID or name (e.g., 'claude', 'gemini')
supports_visionNoFilter for models supporting image/vision inputs
min_context_lengthNoMinimum context length in tokens
max_price_per_1m_promptNoMaximum prompt price in USD per 1,000,000 tokens

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe, non-mutating operation. The description adds that it searches 'available' models, implying a live view, but does not disclose other behavioral traits such as return format, pagination, or any API-specific quirks. Since annotations cover the safety profile, a 3 is appropriate.

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?

The description is a single, front-loaded sentence: 'Filter and search available OpenRouter models based on requirements (e.g. cost, context window, vision)'. Every word contributes to conveying purpose, and the examples make it concrete without verbosity.

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?

For a read-only filter tool with 5 optional parameters and no output schema, the description is sufficient to understand core behavior, especially since annotations confirm safety and the schema fully documents parameters. However, the return format (e.g., which fields are included) is not mentioned, which could be useful. It is nearly complete for a straightforward filtered-list 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 description coverage is 100%, with each parameter well-described (e.g., 'limit' has default and max, 'query' includes example). The description adds examples like cost, context window, and vision, which map to parameters, but the schema already provides exhaustive meaning. Baseline 3 is justified because the description neither adds nor detracts from the schema.

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 'Filter and search available OpenRouter models based on requirements (e.g. cost, context window, vision)' clearly states a specific verb ('filter and search') and resource ('OpenRouter models') with a concrete scope (requirements like cost, context, vision). This distinguishes it from sibling tools such as list_models (which likely returns all models) and recommend_model (which suggests a single model).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the user has specific filtering criteria, but it does not explicitly mention when not to use this tool or directly reference alternatives like list_models. It provides clear context for when to use it (e.g., 'based on requirements') but lacks explicit exclusions or named alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceGet Credit BalanceA
Read-only

Check your OpenRouter credit balance

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clearly states a read-only action, consistent with the readOnlyHint annotation. It adds the context that the operation is specifically about credit balance, which is useful. Since the tool is trivial and non-destructive, no further behavioral disclosure is necessary.

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?

The description is a single, concise sentence that directly conveys the purpose. There is no wasted verbiage, and it is front-loaded with the action and resource.

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 the tool's simplicity (no parameters, read-only, no nested objects, no output schema), the description provides sufficient information. The agent can understand what the tool does and infer the return value (a balance amount). The readOnlyHint annotation covers safety, making the description complete for this trivial use case.

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 the description does not need to explain parameter semantics. The baseline for no parameters is 4, and there is nothing to add beyond the schema which is already empty and fully covered.

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 uses a clear verb 'Check' with a specific resource 'OpenRouter credit balance', which makes the tool's purpose immediately understandable. It does not explicitly differentiate itself from sibling tools like get_key_info or get_budget_status, but the resource name is distinct enough to avoid major confusion.

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 usage context is implied: use when you need to check the credit balance. However, the description does not provide explicit guidance on when to use this tool versus alternatives such as get_budget_status or get_key_info, nor does it state any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_budget_statusGet Budget StatusA
Read-onlyIdempotent

Check the current session spending and budget status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description is not burdened with safety disclosure. The term 'current session' adds useful scoping context beyond the annotations, but it does not describe return format or what 'budget status' encompasses. Thus, it adds some value but remains limited.

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?

The description is a single sentence that directly states the tool's purpose with no filler or redundant information. It is concise and well-structured.

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 tool's simplicity (no parameters, no output schema), the description is mostly complete. However, with sibling tools like get_balance and get_session_usage, a bit more detail on what 'budget status' includes would enhance clarity. Still, it is adequate for a simple status-checking tool.

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 the baseline for this dimension is 4. The description does not need to explain parameters, and the schema is empty, so there is no gap to compensate.

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 the tool checks 'current session spending and budget status', identifying a specific verb and resource. However, it does not explicitly distinguish this from closely related sibling tools like get_session_usage or get_balance, which also deal with usage and spending.

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?

There is no guidance on when to use this tool versus alternatives such as get_balance or get_session_usage. The description merely states the function, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_key_infoGet API Key InfoA
Read-only

Get information about the current API key (limits, usage, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint: true, which aligns with the description's 'Get information'. The description adds context about the resource (current API key) but does not disclose additional behavioral traits such as return format, whether the key itself is exposed, or authentication requirements.

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?

The description is a single, concise sentence that front-loads the action ('Get information') and resource ('current API key'). Every word earns its place, with no filler.

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?

For a zero-parameter, read-only informational tool, the description provides a reasonable summary. However, the trailing 'etc.' leaves some ambiguity about exactly what information is returned, and it could more explicitly disambiguate from related usage/budget tools.

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 input schema has zero parameters, so there are no parameter semantics to add. The description is not responsible for documenting parameters that do not exist, and the baseline for 0 params is 4.

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's function: retrieving information about the current API key, including limits and usage. It specifies the resource ('current API key') and scope, distinguishing it from sibling tools like get_balance or get_session_usage.

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 such as get_balance, get_session_usage, or get_budget_status. It does not mention exclusions or context for selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_session_usageGet Session UsageA
Read-only

Get the total token usage and estimated cost for the current session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares a read-only operation, and the description adds the session scope and cost estimate. However, it does not disclose return format, units, or whether the value resets or accumulates.

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, front-loaded sentence that immediately conveys the tool's function. No redundant or filler content.

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?

For a zero-parameter, read-only tool with no output schema, the description is adequately complete. It names the two outputs (usage and cost) and the scope (current session), leaving little ambiguity for such a simple operation.

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 there are no parameter semantics to explain. The description covers the tool's purpose sufficiently, and the baseline for zero parameters is 4.

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 a specific verb ('Get') and resource ('total token usage and estimated cost') scoped to the current session. This distinguishes it from sibling tools like get_balance and get_budget_status, which operate at account/budget level.

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. It does not mention exclusions or direct users to sibling tools for related functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

index_projectIndex Project SymbolsB
Destructive

Scan a project directory to index symbols (functions, classes, variables) for cross-project awareness

ParametersJSON Schema
NameRequiredDescriptionDefault
project_nameYesName to identify this project
project_pathYesAbsolute path (or ~/ path) to the project directory to index

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation destructiveHint already signals mutation, and the description adds context that indexing symbols is the point, implying some index state is created. However, it doesn't disclose what destructive effects may occur, permissions needed, or response behavior, leaving the annotation to carry much of the burden.

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?

The description is a single, front-loaded sentence with no filler. Every phrase contributes meaning, especially the parenthetical list of symbol types.

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?

With a destructiveHint annotation and no output schema, the description is too thin to be complete. It lacks when-to-use guidance, side effects, output description, and relationship to sibling tools. The schema covers parameters but not usage context.

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 both parameters are already documented in the input schema. The description's mention of 'symbols (functions, classes, variables)' adds purpose-level context but does not clarify parameter semantics beyond what the schema provides.

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 uses a specific verb ('scan') and resource ('project directory to index symbols'), and names the symbol types (functions, classes, variables). It is clear but does not explicitly distinguish itself from sibling reindex_project, so it falls just short of a 5.

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 given on when to use this tool versus alternatives like reindex_project, search_symbols, or semantic_code_search. The description implies usage but doesn't state exclusions or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsList Available ModelsB
Read-onlyIdempotent

List available models on OpenRouter

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, but the description adds no behavioral context beyond the platform name. It does not mention output format, pagination, ordering, or any other side effects, making the description minimally informative beyond the structured data.

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?

The description is one short, front-loaded sentence: 'List available models on OpenRouter' with no redundancy or unnecessary detail. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a trivial no-parameter list tool, the description is barely adequate. It does not specify the return format (e.g., list of model IDs, names, metadata) and leaves ambiguity about whether it lists all models or a filtered subset. However, given the simplicity, the gap is not severe.

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 input schema has zero parameters, so the baseline of 4 applies. No parameter descriptions are needed, and the description appropriately does not attempt to elaborate on nonexistent parameters.

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 the action (list) and resource (available models) with the platform (OpenRouter). It does not explicitly differentiate from sibling tools like filter_models or recommend_model, though the verb and scope are clear.

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?

The description provides no guidance on when to use this tool versus alternatives such as filter_models or recommend_model. It does not mention whether this returns all models, any prerequisites, or when to prefer another tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

optimize_promptOptimize PromptB

Refine and optimize a draft prompt using best practices for LLMs

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe draft prompt you want to optimize
target_modelNoThe model you intend to use this prompt with (e.g., 'anthropic/claude-sonnet-4.6')

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only the openWorldHint annotation (which doesn't clarify behavior), the description carries the burden of explaining what happens. It does not disclose that the tool returns the optimized prompt, nor any dependencies like the need for a target model. The behavior is under-specified; for instance, it's unclear whether the input prompt is modified in place or a new prompt is returned.

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 a single sentence, front-loaded with the action, and contains no fluff. It is concise, though it could be more informative without becoming verbose. It earns a strong score for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only two documented parameters and no output schema, so the description needs to cover the return value and usage context. It does not state that the output is the optimized prompt, nor does it explain how 'target_model' influences the optimization. It's adequate for a simple tool but leaves gaps.

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%: both 'prompt' and 'target_model' have descriptive text in the schema. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.

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 the tool refines/optimizes a draft prompt using LLM best practices. The verb 'refine' and resource 'draft prompt' are specific and distinguish this from sibling tools like chat_completion. It doesn't detail what 'optimize' entails, but the core purpose is unambiguous.

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 using the tool when you have a draft prompt to improve, but offers no explicit when-to-use or when-not-to-use guidance. No alternatives are suggested, and there are no exclusions. The context is clear enough for a simple tool, but the guidance remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pin_contextPin Context MemoryB
Destructive

Store text with optional tags and project association for semantic retrieval

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional category tag (default: 'general')
textYesThe content to remember
projectNoOptional project identifier

TDQS

B3.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says 'store text,' which implies a non-destructive create operation, but the annotations declare destructiveHint: true. No behavioral detail (e.g., overwriting existing entries, irreversible changes) is provided to reconcile this contradiction, leaving the agent with conflicting signals.

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?

The description is a single, front-loaded sentence with no filler. Every word contributes to conveying the tool's purpose and key options, making it appropriately concise.

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?

For a simple 3-param tool, the description covers core details but fails to address the destructiveHint annotation, leaving a critical behavioral gap. Without an output schema, the description should clarify what happens on execution (e.g., overwrite behavior), which it does not. The contradiction further reduces completeness.

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%, and the description adds no meaning beyond the schema by simply echoing 'optional tags and project association.' The description aligns with the schema but does not enrich parameter understanding, meeting the baseline for high coverage.

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 uses a specific verb ('store') and resource ('text') and clearly states the purpose ('for semantic retrieval'). It distinguishes this from sibling tools like 'retrieve_context' and 'clear_context' by indicating a write operation.

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 purpose statement implies usage for saving text that should be semantically retrievable later, but there is no explicit guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The 'for semantic retrieval' clause provides only implicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_modelRecommend Model PresetA

Analyze a task and recommend the best model preset (smart, cheap, creative, fast, coder)

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe task or prompt you want to analyze

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide openWorldHint, so the description is the main source. It discloses the analysis and recommendation behavior but does not explain how 'best' is determined or what the exact return value looks like.

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, front-loaded sentence with no filler. Every word contributes to defining purpose and scope.

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 simple one-parameter schema and lack of output schema, the description adequately covers the tool's purpose. It omits explicit return format, but the recommendation outcome is clearly implied.

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 coverage is 100% with the 'task' parameter clearly described. The description adds minimal extra meaning beyond restating that it is a task/prompt, so it neither compensates nor contradicts.

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 states a specific action (analyze a task) and outcome (recommend the best model preset), and enumerates preset types (smart, cheap, creative, fast, coder). This clearly distinguishes it from siblings like chat_completion or list_models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys clear context: use when you need a preset recommendation for a task. However, it does not explicitly exclude alternatives or mention when not to use it, so it stops short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reindex_projectReindex Project EmbeddingsB
Destructive

Perform deep semantic indexing of a project (code chunking + embeddings) for code search

ParametersJSON Schema
NameRequiredDescriptionDefault
max_chunksNoMaximum number of chunks to embed (default: 1000)
project_nameYesThe name of the project to reindex

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already signals destructive behavior via 'destructiveHint: true', so the description is not required to restate that. It adds the process detail of 'code chunking + embeddings', which is useful, but it does not disclose what gets overwritten, potential costs, or side effects beyond what the annotation implies.

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?

The description is a single, focused sentence that front-loads the key action ('Perform deep semantic indexing') and includes essential details ('code chunking + embeddings', 'for code search'). Every word contributes to understanding, with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (reindexing, potentially destructive), the description is adequate but lacks guidance on when to use it, what to expect after execution, or any prerequisites. The annotations and schema cover some gaps, but the absence of usage context and output information makes it minimally complete.

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?

The schema description coverage is 100%, and both parameters ('project_name' and 'max_chunks') are clearly documented. The description does not add any further meaning to the parameters, so it meets the baseline without exceeding it.

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 the tool performs 'deep semantic indexing' with details on what it involves ('code chunking + embeddings') and the target ('a project'), making the purpose clear. However, it does not explicitly differentiate from the sibling tool 'index_project' beyond the name 'reindex', so it falls short of a 5.

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?

The description provides no guidance on when to use this tool versus alternatives like 'index_project' or 'semantic_code_search'. There is no mention of scenarios, prerequisites, or exclusions, leaving the agent without clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_contextRetrieve Context MemoryB
Read-only

Search for semantically similar information in memory

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag
queryYesThe concept or question to search for
top_kNoNumber of matches to return (default: 5)
projectNoFilter by project

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is known. The description adds the 'semantically similar' aspect, indicating embedding-based search, but does not disclose return format, potential limitations, or how it handles edge cases like empty results.

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?

The description is a single, concise sentence that is front-loaded and contains no filler. Every word contributes to the meaning, making it highly efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain return values, which it does not. It also omits context on how tag/project filters interact and what happens with no matches. However, for a straightforward search tool, the description is minimally adequate.

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%, with each parameter clearly described (e.g., query, tag, project, top_k). The tool description adds no additional parameter semantics, so it meets the baseline of 3 without enhancing the schema information.

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 uses the verb 'Search' with a specific resource ('semantically similar information in memory'), clearly stating what the tool does. It subtly distinguishes itself from sibling tools like semantic_code_search by scoping to 'memory', though it could be more explicit about exclusions.

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?

The description provides no guidance on when to use this tool over alternatives such as semantic_code_search, pin_context, or clear_context. It lacks any 'when to use' or 'when not to use' information, leaving the agent to infer usage context solely from the tool's name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_symbolsSearch SymbolsA
Read-only

Search for symbols across all indexed projects

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSymbol name or partial name to search for

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals a safe read operation, lowering the bar for additional disclosure. The description adds the useful scoping detail that searches span all indexed projects, but it does not mention search behavior like case sensitivity, result limitations, or whether indexing is required. This is acceptable but not rich.

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?

The description is a single, front-loaded sentence with no wasted words. It immediately conveys the core action and scope, making it easy to parse quickly.

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?

For a simple read-only search tool with one parameter and a clear scope, the description is nearly complete. It lacks explicit mention of return format or pagination, but the absence of an output schema and the tool's simplicity mean these are not critical gaps. Sibling differentiation would improve completeness, but the current text covers the essentials.

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 coverage is 100% with the only parameter 'query' having a clear description ('Symbol name or partial name to search for'). The tool description itself adds no additional parameter meaning, so the baseline of 3 applies.

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's function with a specific verb ('Search') and resource ('symbols'), and scopes it to 'all indexed projects', which distinguishes it from sibling tools like semantic_code_search that imply a different search modality.

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?

The description provides no explicit guidance on when to use this tool versus alternatives. Sibling tools such as semantic_code_search suggest related capabilities, but the description does not mention any exclusions or prerequisites, leaving usage context entirely to the reader.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_budgetSet Budget LimitA
Destructive

Set a session-wide spending limit (in USD) and warning threshold

ParametersJSON Schema
NameRequiredDescriptionDefault
max_dollarsNoThe maximum amount to spend this session
warn_at_percentNoPercentage of budget used before issuing warnings

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, indicating a state-changing operation. The description adds the 'session-wide' scope but does not disclose whether the budget overrides existing settings, whether repeated calls reset usage, or what the effective behavior is. This meets a basic level but lacks deeper behavioral context.

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?

The description is a single, well-formed sentence that front-loads the action and includes both key parameters without unnecessary words. It earns its place and is immediately scannable.

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?

For a simple setter with two optional parameters (indicated by required: 0), the description covers the primary inputs and scope. It does not explain return values or repeat-call behavior, but given the annotations and schema, it is adequately complete for an agent to invoke the tool correctly.

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?

Schema coverage is 100% with each parameter described, but the description adds value by specifying the currency unit 'in USD' for max_dollars and consolidating both parameters as a 'warning threshold'. This goes slightly beyond the schema descriptions, which omit currency and only hint at the warning aspect.

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 uses a specific verb 'Set' and clearly identifies the resource: 'a session-wide spending limit (in USD) and warning threshold'. It effectively distinguishes from sibling read tools like get_budget_status and get_session_usage, serving as the write counterpart.

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 usage when the user needs to establish a budget for a session, but it does not explicitly state when to use it relative to alternatives or provide exclusions. The sibling list suggests a companion read tool, but the description alone offers no explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_setupVerify Server SetupA
Read-onlyIdempotent

Perform diagnostic checks on OpenRouter credentials, files, and server environment

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint and idempotentHint annotations already declaring a safe, non-mutating profile, the description adds useful context by specifying what is checked (credentials, files, environment). It does not disclose return format, but the annotation coverage lowers the burden, and no contradiction exists.

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?

The description is a single, front-loaded sentence that immediately states the action and targets. Every word contributes meaning, with no redundancy or filler.

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?

For a zero-parameter, read-only, idempotent tool, the description adequately covers the scope. However, it does not mention what the tool returns or how results are presented, which is a minor gap given the lack of an output schema.

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, and schema coverage is 100% (vacuously). Per the baseline rule for 0 params, a score of 4 is appropriate. The description adds context about the tool's scope but no parameter-level semantics are needed.

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 uses the specific verb 'Perform diagnostic checks' and names the exact resources (OpenRouter credentials, files, server environment), making its scope unambiguous. This clearly differentiates it from sibling tools that handle chat, models, or usage.

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 does not explicitly state when to use this tool or mention alternatives. However, the unique diagnostic scope implies it is for verifying setup before other operations, but this remains implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vision_analyzeAnalyze ImageB

Analyze an image (local file or URL) using a vision-capable model

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoThe vision model to use (defaults to google/gemini-3.1-flash-lite)google/gemini-3.1-flash-lite
promptNoWhat to look for or analyze in the imageDescribe this image in detail.
image_urlNoURL of the image to analyze
image_pathNoLocal path to the image file (e.g., /path/to/screenshot.png or ~/screenshot.png)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds little factual behavioral context over the annotations. The openWorldHint annotation is vague, and the description doesn't disclose whether images are sent externally, potential costs, or required permissions. It also doesn't explain the default model behavior or return format.

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?

The description is a single sentence that efficiently states the core purpose without redundancy. It front-loads the key information and earns its place.

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?

The description lacks critical context: it doesn't state that at least one image source (URL or path) is required, nor does it describe the expected output. With no output schema, the description should compensate, but it leaves the agent uncertain about invocation requirements.

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?

The schema provides 100% coverage of the four parameters with clear descriptions. The description doesn't add additional parameter semantics, but the baseline is appropriate given the high schema coverage.

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 specifies the action ('Analyze'), the resource ('image'), and the input methods ('local file or URL'), distinguishing it from sibling text-based chat tools like chat_completion.

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, nor any exclusions or prerequisites beyond the basic purpose. The description implies use for image analysis but doesn't address when not to use or what to do with text.

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. 24 tool updatesv1.2.0
    • First observedchat_completion
    • First observedchat_ensemble
    • First observedchat_routed
    • First observedchat_with_preset
    • First observedclear_context
    • First observedcorrelate_errors
    • First observeddependency_graph
    • First observedfilter_models
    • First observedget_balance
    • First observedget_budget_status
    • First observedget_key_info
    • First observedget_session_usage
    • First observedindex_project
    • First observedlist_models
    • First observedoptimize_prompt
    • First observedpin_context
    • First observedrecommend_model
    • First observedreindex_project
    • First observedretrieve_context
    • First observedsearch_symbols
    • First observedsemantic_code_search
    • First observedset_budget
    • First observedverify_setup
    • First observedvision_analyze

TDQS

B3.4/5.0
Disambiguation3/5

Several tools have overlapping chat generation purposes (chat_completion, chat_with_preset, chat_ensemble, chat_routed) but descriptions distinguish them by mode. Code search tools (search_symbols vs semantic_code_search) and indexing tools (index_project vs reindex_project) are also similar, though their intents are clear enough.

Naming Consistency4/5

Most tools follow a verb_noun snake_case pattern (list_models, get_balance, pin_context). Minor deviations like chat_with_preset (preposition) and chat_routed (past participle) are understandable but break the strict pattern.

Tool Count3/5

At 24 tools, the server is on the heavy side. It bundles unrelated domains (OpenRouter chat, code indexing, memory, error correlation) into one surface, which feels over-scoped for a single MCP server.

Completeness4/5

Core OpenRouter operations (chat, models, budget, usage) are well covered. The supplementary features (indexing, memory) have CRUD-style operations, though delete for indexing and some model detail endpoints are missing. Overall, most workflows can be completed.

Maintenance

ActivitySlowing
ResponsivenessNo issues

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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A sophisticated MCP server providing advanced memory capabilities with RAG, hallucination detection, and enterprise-grade AI infrastructure for intelligent agent ecosystems.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that functions as an intelligent gateway for multiple LLM backends including OpenAI, Claude, and Ollama. It supports automatic provider fallback, streaming responses via Server-Sent Events, and real-time monitoring for robust AI integration.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that enables agents to dynamically switch between multiple AI models (OpenAI, Anthropic, Google, etc.) with unified protocol-driven configuration and capability discovery.
    Apache 2.0

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/villagertim/universal-mcp-for-openrouter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server