A Model Context Protocol (MCP) server implementation for GitHub integration
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (get_user, create_repo, push_to_repo), which is good. However, descriptions are minimal (10-40 chars), parameter descriptions lack detail about constraints and formats, and output schemas are not documented. Error handling returns structured responses but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk differences between tools.
Create a new GitHub repository
Get GitHub user information
Push content to a GitHub repository
Descriptions are too short (10-40 chars) to guide LLM tool selection. Rubric baseline is 194 chars average; these lack context about when to use each tool and what it returns.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields (e.g., repo_url, repo_id from create_repo) without knowing response structure.
Missing tool annotations. create_repo and push_to_repo are destructive (WRITE risk) but lack destructiveHint annotation. get_user is read-only but lacks readOnlyHint. Agents cannot distinguish safe from risky calls.
Parameter descriptions lack format/constraint details. 'repo_name' has no length limits, character restrictions, or naming rules. 'file_path' does not specify if it must be relative or absolute. LLMs will guess and pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Error responses lack recovery guidance. When GitHub API returns an error, the tool returns the raw message but does not suggest next steps (e.g., 'Try search_users() if username is unknown').