MCP server that sends one identical brief to several LLMs in parallel and returns every answer unmerged, unranked and unsynthesized, so the calling agent can see agreement and disagreement instead of an averaged blur.
Strong tool definitions with excellent descriptions and comprehensive schemas. All 4 tools have clear, LLM-optimized descriptions (100-300 chars) that explain WHAT, WHEN, and WHY. Input schemas are well-structured with proper types, constraints, and parameter descriptions. Tool names follow verb_noun convention (consult, list_models, get_status, get_debug_logs). Error handling is thoughtful with correlationId tracking and recovery guidance. Main gaps: no output schema documentation in code, no explicit idempotency declarations, and missing per-tool risk/permission annotations in the schema itself (though present in metadata).
Send ONE identical brief to several LLMs in parallel and get every answer back verbatim, attributed, unranked and unsynthesized. Use when a decision is consequential or hard to reverse, when you want your own reasoning stress-tested by models that did not see it, or when the user asks for other opinions or approaches. The value is the spread: independent agreement is corroboration, a split is a real open question that a single answer would have hidden from you. This server never merges, ranks or picks a winner.
Query the server's in-memory event log. Useful for debugging tool failures: pass the correlationId from a failed consult to see the exact per-model cause.
Report server version, whether OPENROUTER_API_KEY is configured and accepted, remaining credit, the default panel and the configured limits. Call this first when consult fails with an authentication error. Never returns the key itself.
Browse the live OpenRouter model catalog to pick an exact panel for consult. Supports substring search, a free-only filter and cursor pagination. Model ids change over time, so resolve them here rather than guessing.
Output schemas not documented in code. While consult returns structured result with answeredCount, requestedModels, answers array, etc., this schema is not formally declared in tool registration. LLMs cannot plan downstream operations without knowing response structure.
No explicit idempotency declarations. consult and list_models are read-only and safe to retry, but this is not formally annotated in the schema. Agents cannot distinguish safe retries from potentially duplicative operations.
get_debug_logs pagination cursor is opaque string with no guidance on format or lifecycle. Agents cannot reason about cursor validity or when to stop paginating.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 73 | 2026-07-28+ | v2 |
consult timeout_ms parameter allows up to 600000ms (10 min), but no guidance on when to use longer timeouts or how to handle partial results if some models timeout. Error recovery path unclear.
list_models sort enum includes 'top-weekly', 'newest', 'pricing-low-to-high' but no description of what 'top-weekly' means (top by usage? rating?). Ambiguous enum values reduce LLM confidence.