Lazy-loading MCP gateway — exposes a lightweight tool registry, loads full schemas and spins up backend servers on demand
mcp-gate defines 3 meta-tools with clear names (gate_list_tools, gate_get_schema, gate_call_tool) and reasonable descriptions (100-150 chars each). All tools have input schemas with type definitions and required fields. However, parameter descriptions are minimal or absent: 'filter' in gate_list_tools lacks a description; 'arguments' in gate_call_tool has only a generic description. Output schemas are not documented, callers cannot predict the structure of responses. Error handling exists but lacks recovery guidance (e.g., 'Tool not found' should suggest calling gate_list_tools). No tool annotations (readOnlyHint, destructiveHint) despite clear risk profiles (gate_call_tool is WRITE). The server acts as a gateway/proxy, so tool definitions are meta-level rather than domain-specific, which limits applicability of standard patterns.
Execute a tool on its backend MCP server. The backend server will be started automatically if not already running, and will shut down after being idle.
Get the full parameter schema for a specific tool. Call this before calling gate_call_tool so you know the exact parameters required.
List all available tools across all backend MCP servers. Returns tool names, which server they belong to, and a brief description. Use this first to discover what tools are available.
Output schemas not documented. Callers cannot predict response structure (e.g., gate_list_tools returns grouped text; gate_get_schema returns JSON string; gate_call_tool returns tool result). LLMs need documented return types to plan downstream calls.
Parameter descriptions incomplete. 'filter' in gate_list_tools has no description. 'arguments' in gate_call_tool is generic ('The arguments to pass...') without explaining structure or constraints. LLMs cannot infer parameter meaning from names alone.
Missing tool annotations. gate_call_tool is marked WRITE (destructive) but has no destructiveHint annotation. gate_list_tools and gate_get_schema are READ_ONLY but lack readOnlyHint. Annotations help LLMs reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Error messages lack recovery guidance. 'Tool not found' should suggest 'Try gate_list_tools to see available tools.' Current errors tell LLMs what went wrong but not what to do next.
No pagination or result limits documented. gate_list_tools can return hundreds of tools in a single response. Large unstructured text responses waste tokens and degrade LLM reasoning. Should cap results and offer filtering.