A token-disciplined developer MCP hub with a tiny always-loaded surface and deferred internal capabilities.
TokenHub has 6 tools with visible schemas and descriptions, but quality is inconsistent. Tool names lack clear action verbs (discover_capabilities, run_workflow are vague). Descriptions exist but are brief (10-50 chars for most). The run_workflow tool is a massive catch-all with 20+ parameters, violating single-responsibility principle. Parameter descriptions are minimal or missing context. No output schemas documented. Error handling is absent from tool definitions. Security concerns: API keys exposed as parameters (apiKey in run_workflow, retrieve_context). No pagination guidance despite tools returning lists. Overall, definitions are skeletal, sufficient to invoke but insufficient for LLM reasoning.
Capture and store state text as a resource
Discover available capabilities in the registry by query
Estimate token cost and ROI for an operation
Read a resource by URI with optional snippet, range, or full mode
Retrieve context from various sources (files, git, web, github, search, sqlite, postgres, docs, sentry, browser)
Execute a named workflow with specified parameters and budget constraints
run_workflow is a god tool with 20+ parameters covering 6 unrelated workflows (validate, filesystem_action, git_action, answer_from_web, resolve_request, project_scan). Violates single-responsibility principle. LLM cannot reason about which parameters apply to which workflow.
API keys and tokens exposed as tool parameters (apiKey in run_workflow and retrieve_context, token in retrieve_context). Credentials will be logged in traces and prompt history. Must use server-side secret injection.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., discover_capabilities returns results but structure is undocumented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Tool descriptions are too brief (10-50 chars). Baseline is 194 chars. Descriptions lack WHEN to use, WHAT it returns, and prerequisites. E.g., 'Discover available capabilities in the registry by query' does not explain when to call it vs other tools.
Parameter descriptions are minimal or missing context. E.g., 'limit' in discover_capabilities lacks min/max bounds. 'mode' in read_resource lacks explanation of snippet vs range vs full behavior. 'returnMode' in retrieve_context is undocumented.