Streamable HTTP gateway with auto-discovery, per-tenant RBAC, OAuth PKCE, rate limits, circuit breakers, audit, and token-saving lean tool schemas. Forwards W3C traceparent across upstreams.
mcp-hub is a gateway/proxy server, not a traditional MCP tool provider. Its 5 tools are meta-operations (initialize, ping, tools/list, tools/describe, tools/call) that manage upstream MCP servers rather than domain-specific functionality. Tool descriptions are present but minimal (10-50 chars). Input schemas exist for tools/describe and tools/call but lack parameter descriptions. The tools/call schema includes 'requestState' (UUID for idempotency) which is good, but overall parameter documentation is sparse. No output schemas are documented. Error handling is not visible in the provided code. The server itself is well-engineered (stateless HTTP, health checks, audit, RBAC), but the tool definitions fall short of production-grade agent tool standards.
Initialize the MCP connection and retrieve protocol version and server capabilities
Ping the server to verify connectivity
Execute a tool with the given arguments and return the result
Get the full schema for a specific tool by name
List all available tools with lean schemas (skeleton view) and metadata about token savings
Parameter descriptions missing. tools/describe has 'name' param with description, but tools/call's 'arguments' and 'requestState' params lack descriptions explaining what values are valid or how they are used.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields without knowing what initialize, ping, tools/list, and tools/describe return.
Tool descriptions are too brief (10-50 chars). Rubric baseline is 194 chars average; descriptions under 20 chars score 0-20. initialize, ping, tools/list lack context for LLM selection.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No error handling guidance visible. If tools/call fails (e.g., upstream server unreachable, invalid tool name), the response should guide the LLM on recovery (retry, check tool name, etc.).