MCP server providing tools to interact with GitHub repositories, issues, pull requests, and commits
Significant gaps across naming, descriptions, and schemas. Tool names lack consistent verb prefixes (query_database vs get_user_repos). Descriptions are present but generic (10-50 chars for most tools, well below the 194-char baseline). Parameter descriptions exist but are minimal. Output schemas are not documented, tools return unstructured strings or JSON without declaring expected fields. No error handling guidance. Security concern: query_database accepts arbitrary SQL with optional params, creating SQL injection risk. No input validation or recovery guidance.
Create a comment on an issue or pull request.
Create an issue in the specified repository. Requires repo scope for private repos.
Create a pull request. head should be the branch name in the fork or repo (e.g. feature-branch).
Create a new repository for the authenticated user. Requires GITHUB_TOKEN with repo scope.
Get content of a specific file from a repository.
Get pull requests for a repository. State can be 'open', 'closed', or 'all'.
query_database tool accepts arbitrary SQL with optional params, critical SQL injection vulnerability. No input sanitization, parameterization validation, or query type restrictions visible.
Output schemas not documented. Tools return unstructured strings (e.g., 'Error: 404 - ...') or raw JSON without declaring expected fields, field types, or pagination. LLMs cannot plan downstream calls or extract data reliably.
Descriptions are too short (10-55 chars vs 194-char baseline). Most lack context on WHEN to use the tool, prerequisites, or what the LLM should expect. E.g., 'Fetch public repositories for a GitHub user' omits that it only returns names, not full repo details.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Get all branches for a GitHub repository.
Fetch recent commits for a GitHub repository.
Get contributors for a GitHub repository.
Get detailed information about a GitHub repository.
Fetch open issues for a GitHub repository.
Fetch public repositories for a GitHub user.
Execute SQL query.
Search GitHub repositories. Sort can be 'stars', 'forks', 'updated', 'created'. Order can be 'asc' or 'desc'.
No error handling guidance. Tools return raw HTTP status codes and response text (e.g., 'Error: 404 - ...') without telling the LLM what to do next. Should classify errors as retryable, user-fixable, or fatal and suggest recovery steps.
No pagination support. Tools like get_user_repos, get_repo_commits, search_repositories return unbounded results without limit, offset, or next_cursor parameters. Large result sets will exhaust context windows.