One MCP server. Unlimited accounts. Routes a single MCP endpoint to multiple downstream accounts per provider.
mcp-router defines 6 management tools with clear verb-noun naming (list_*, switch_*, current_*) and consistent descriptions (avg 120 chars). All tools have input schemas with proper JSON Schema structure. Tool annotations (readOnlyHint) are present on read-only tools. However, parameter descriptions are sparse or missing in several tools (e.g., switch_account's 'account' param lacks detail on valid values), and output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible in the code. The tools are well-composed (single responsibility, proper chaining via provider/context names), but lack the depth expected of production-grade tools.
Show which account is active for each provider (or one provider).
Show the active context and its provider mappings.
List every provider and account configured in MCP Router, with labels, availability, and which account is active.
List the configured contexts (named cross-provider account groupings) and which one is active.
Set the active account for one provider. Later tool calls without an explicit account parameter route to it (explicit parameters still override). Omit account to clear.
Activate a context: every provider it covers routes to that context's account until overridden. Clears per-provider switch_account overrides for covered providers. Omit context to return to the default (empty) context.
Output schemas not documented. Tools return text responses (via textResult helper) but LLMs cannot infer structure of list_accounts or list_contexts output. No field definitions for downstream tool chaining.
Parameter descriptions incomplete. switch_account's 'account' param lacks guidance on valid account names or format. switch_context's 'context' param description does not explain what happens when context is omitted (clears to default).
No error handling or recovery guidance. Code shows textResult() helper but no visible error classification, retry hints, or actionable error messages. LLMs cannot self-correct on invalid provider/context names.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
Enum constraints incomplete. switch_account's 'account' param accepts any string; valid account names are not enumerated. This invites hallucinated account names from LLMs.
No confirmation step for destructive operations. switch_context clears per-provider overrides without a dry-run or confirmation. Agents could accidentally reset routing state.