MCP server exposing GitHub activity insights over stdio
Server has 12 tools with explicit Zod schemas and descriptions. Naming follows verb_noun convention (get_*, sync_*). However, parameter descriptions are sparse or missing in many tools. Output schemas are not documented in the visible code. Error handling exists but lacks recovery guidance. Tool definitions are properly registered in src/tools/index.ts with zodToJsonSchema conversion, but the actual tool implementations (only ping.ts visible) show minimal parameter documentation. Average tool description length appears adequate (~100-150 chars inferred), but parameter-level descriptions are underdeveloped. No tool annotations (readOnlyHint/destructiveHint) present despite clear risk classifications.
Output schemas not documented. Tools return JSON via asToolContent() but no schema documentation visible for LLM planning. LLMs cannot predict what fields to expect or chain tools effectively.
Parameter descriptions missing or minimal. Zod schemas exist but tool implementations (src/tools/*.ts) do not show parameter-level descriptions. LLMs cannot infer what each parameter controls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). sync_github_data is WRITE risk but not marked destructive. Agents cannot distinguish safe reads from state-modifying calls.
Error handling returns structured ToolError but lacks recovery guidance. toToolResult() converts errors to JSON but does not suggest next steps (e.g., 'Try search_repos() first').
Pagination not visible in tool definitions. get_all_repos, get_open_items, and similar list tools likely return unbounded results. No limit, offset, or cursor parameters documented.