FastAPI-based MCP server gateway that manages multiple MCP servers, lists their tools, and invokes tools across different MCP server instances
This server acts as a gateway/orchestrator for other MCP servers rather than a direct tool provider. Tool definitions are present with schemas and descriptions, but quality is inconsistent. Naming follows verb_noun convention (add-, list-, invoke-) which is good. However, descriptions are generic and lack context about when/why to use each tool. Parameter descriptions exist but are minimal. Critical gaps: no error recovery guidance, no output schema documentation, no pagination support for list operations, and invoke-mcp-tool accepts arbitrary arguments without validation. The server lacks idempotency guarantees and confirmation patterns for destructive operations (add-mcp-server modifies persistent state). Overall, definitions are functional but fall short of production-grade quality.
Add a new MCP server to the list of available servers
Invoke a tool on a specific MCP server
List available MCP servers and their configurations
List available MCP servers and their configurations
List tools available from a specific MCP server
Duplicate tools (list-mcp-servers vs list-mcp-servers-full) create LLM confusion. Both list servers; only difference is verbosity. Should consolidate into one canonical tool with optional detail parameter.
invoke-mcp-tool accepts arbitrary 'arguments' object with no schema, validation, or type hints. LLM cannot know what arguments are valid for a given tool. Requires tool-specific schema introspection or documentation.
No output schema documentation. list-mcp-tools returns 'mcp-tools' array but structure is undocumented. invoke-mcp-tool returns result.model_dump() with no schema guidance. LLM cannot plan downstream operations.
add-mcp-server modifies persistent state (mcp_servers.json) with no confirmation, dry-run, or rollback capability. Agents can accidentally register malicious servers. Missing confirmation-request pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Error messages are generic ('Server not found', 'Failed to get tools list'). No recovery guidance. When invoke-mcp-tool fails, LLM has no actionable next step. Missing recovery-guide pattern.