MCP server for OpenRouter providing text chat and image analysis tools
This OpenRouter MCP server provides 5 tools with well-defined schemas and descriptions. Tools are clearly named with action verbs (mcp_openrouter_*) and each has a substantive description. Most parameters include type definitions and descriptions. However, there are gaps: output schemas are not documented for any tool, error handling guidance is minimal, and some parameter descriptions could be more prescriptive about constraints and LLM guidance. The tool definitions are directly visible in src/tool-handlers.ts with explicit JSON Schema registration, so all tools score above the inferential cap of 50. Naming follows a consistent prefix convention but the 'mcp_' prefix adds length without aiding LLM disambiguation (verb comes later). Parameter annotations are generally good but lack some actionable constraint details (e.g., model names are free-form strings with only examples; aspect_ratio enum is clear). No security issues detected (API key handled via environment, not parameters). Composition is sound, each tool has a single responsibility. This is a solid mid-range community server with clear room for improvement in output documentation and error messaging.
Analyze an image using OpenRouter vision models
Send a message to OpenRouter.ai and get a response
Generate images using OpenRouter image generation models (e.g., Google Gemini). Optionally upload to Cloudinary for permanent storage.
Analyze multiple images at once with a single prompt and receive detailed responses
Search for available models on OpenRouter
Output schemas are not documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing response structure.
Parameter 'model' in mcp_openrouter_chat_completion and mcp_openrouter_generate_image is free-form string with only examples ('google/gemini-2.5-pro-exp-03-25:free') in description. No validation constraints, regex pattern, or guidance on valid formats. LLMs may hallucinate invalid model names.
No error handling guidance or recovery suggestions in tool definitions. If a model is not found, API call fails, or image generation times out, LLMs receive no actionable error context. No fallback strategies documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Tool naming prefix 'mcp_openrouter_' is verbose (14 chars) and adds no semantic value. Verb comes late in the name. Suggest dropping 'mcp_' and using shorter verbs like 'chat', 'generate_image', 'analyze_image', 'search_models'.
search_models tool has optional 'query' parameter with no description of what search executes (model name substring? description keyword? tags?). 'capabilities' filter is object type but not described; only 'vision' property is shown. Undocumented properties and search semantics invite misuse.
mcp_openrouter_analyze_image 'question' parameter is optional (not in required array) but description does not explain what happens if omitted. Will LLM receive a generic analysis, or will the tool fail?
mcp_openrouter_generate_image 'n' parameter defaults to 1 and caps at 4, but description warns 'some models may not support multiple images' without guidance on which ones or how to handle failures. LLM cannot predict compatibility.