A GitHub MCP server that handles various tools and resources for interacting with GitHub repositories, issues, pull requests, code scanning, and user management.
This server has 29 tools with significant definition gaps. Only 2 tools (get_code_scanning_alert, list_code_scanning_alerts) have visible input schemas with proper type definitions and descriptions. The remaining 27 tools lack visible schema definitions in the provided source, their schemas are inferred but not shown. Tool descriptions vary: get_me has a reasonable description (95 chars), but most others are missing or not visible. Parameter descriptions are sparse. No tool shows output schema documentation. Error handling is present in code (e.g., getMe checks HTTP status) but error messages lack recovery guidance. The server follows basic tool registration patterns but falls short of production-grade definition quality.
Get details of a specific code scanning alert in a GitHub repository.
27 of 29 tools lack visible input schemas. Only get_code_scanning_alert and list_code_scanning_alerts show explicit schema definitions with types and parameter descriptions. The remaining tools are inferred but not documented in the provided source.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | <=2025-11-25 | v2 |
Get details of the authenticated GitHub user. Use this when a request include "me", "my"...
List code scanning alerts in a GitHub repository.
27 tools lack descriptions visible in the source. LLMs cannot determine when or why to select these tools without descriptions. Only get_me, get_code_scanning_alert, and list_code_scanning_alerts have descriptions.
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract required fields without knowing what each tool returns. This violates the response-shaper pattern.
Error handling in getMe checks HTTP status but returns generic error messages without recovery guidance. Errors should tell LLMs what to do next (e.g., 'User not found. Try search_users() with a partial name.').
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. The server marks tools as READ_ONLY or WRITE in metadata but does not use MCP tool annotations to signal this to clients.