A lightweight, open-source gateway for managing, routing, and monitoring multiple MCP (Model Context Protocol) servers.
mcp-gateway exposes 7 tools via HTTP REST API. Most tools lack input schemas entirely (health, servers, servers/:id, tools, requests have no visible schema definitions). Descriptions are present but generic and lack LLM-optimization guidance. The tools/call endpoint accepts arguments as free-form objects with no schema validation. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. Error handling is not documented. Tool naming follows REST conventions (health, metrics, servers) rather than action-verb patterns (get_health, list_servers). No parameter descriptions for optional filters. Output schemas are not documented.
Returns gateway health status, version, uptime, and server summary
Returns aggregated metrics for requests, latency, success rates, and top tools/servers. Supports Prometheus text format.
Retrieves recent request metrics and logs
Lists all registered MCP servers with their health status and tool counts
Retrieves details for a specific MCP server including its configuration, health status, and available tools
Discovers all available tools across registered servers, with optional filtering by server ID or tag
Invokes a tool on a registered MCP server with provided arguments
No input schemas visible for 5 of 7 tools (health, servers, servers/:id, tools, requests).
tools/call accepts 'arguments' as free-form object with no schema validation. LLM cannot infer valid argument structure for arbitrary tools.
Tool names use REST resource naming (health, metrics, servers) instead of action-verb patterns (get_health, list_metrics, list_servers). LLMs infer intent from verb-noun naming.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). tools/call is destructive but unmarked; health/metrics/servers/tools/requests are read-only but unmarked.