C++ implementation of the Model Context Protocol (MCP) server with support for tools, resources, and prompts
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. get_time has a single undescribed parameter (timezone). list_repos has two parameters with minimal descriptions ('Results per page, default 10, max 100' lacks format/range details). Neither tool documents return structure or error handling. Descriptions are present but generic (10-50 chars). No tool annotations (readOnlyHint, idempotentHint). No pagination guidance despite list_repos returning potentially large result sets. Parameter descriptions do not explain constraints or expected formats in actionable detail.
Returns the current date and time
List GitHub repositories for a user or the authenticated user
Parameter descriptions lack actionable constraints. 'per_page' says 'default 10, max 100' but does not specify minimum, format, or whether it accepts strings or integers. LLMs cannot infer valid ranges from vague descriptions.
No output schema documented for either tool. LLMs cannot plan downstream calls or extract required fields. list_repos should document returned fields (repo_name, url, owner, etc.) and pagination structure.
list_repos lacks pagination guidance. No mention of result limits, total count, or next_cursor. Returning unbounded GitHub repo lists risks context window exhaustion.
No error handling guidance. Tools do not document what happens on invalid input (bad timezone, invalid owner, auth failure). LLMs receive raw errors with no recovery path.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
GitHub token is injected via environment variable (GITHUB_TOKEN), which is correct, but no tool description mentions authentication requirements or permission scopes. LLMs cannot reason about what the tool can access.