MCP server exposing Agent Reach doctor/status checks for platform availability across 16+ content channels (Twitter, YouTube, GitHub, Reddit, Bilibili, etc.)
This MCP server exposes a single tool, get_status, with minimal definition quality. The tool has a generic empty schema (no parameters), a very brief description (71 chars), and no output schema documentation. The tool merely wraps AgentReach's internal doctor_report() call. Error handling is present but basic (generic TextContent wrapping). No security considerations are evident (though the tool is read-only). The server demonstrates understanding of MCP fundamentals but falls short of production quality across multiple dimensions. The tool is explicitly registered (not inferred), so it is not artificially capped.
Get Agent Reach status: which channels are installed and active.
Empty input schema with no parameters documented. The tool declares inputSchema as {"type":"object","properties":{}} but provides no guidance on what the tool actually does or what information it returns.
No output schema documented. Callers cannot know what fields to expect from doctor_report(), forcing them to parse unstructured JSON or TextContent. LLMs cannot plan downstream usage without knowing the response structure.
Description is too brief (71 chars, below the 100-char baseline minimum for clarity). 'Get Agent Reach status: which channels are installed and active.' does not explain WHEN to use this tool, what context it provides, or how its output guides downstream decisions.
Error handling returns generic TextContent wrapping. The except block catches all exceptions and wraps them in a single TextContent(type='text', text=f'Error: ...'). LLMs receive no actionable guidance on error classification (retryable vs fatal), recovery steps, or what caused the failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
Tool name 'get_status' is generic and vague. Does it return system status, API status, channel connectivity, or installation state? A more specific name like 'get_channel_status' or 'get_installation_status' would reduce ambiguity and help LLMs select this tool intentionally.
No schema validation or input sanitization visible. Although the tool accepts no parameters, the call_tool handler does not validate that arguments is an empty dict, nor does it document that extra parameters are silently ignored.