An MCP server wrapping the GitHub CLI (`gh`) for project management tasks.
Server has 17 tools with complete input schemas and descriptions. Naming follows verb_noun convention (create_issue, list_issues, etc.). Descriptions are present but brief (avg ~50 chars, below the 194-char baseline). Parameters have types and descriptions, but lack enums for constrained values (e.g., 'state' accepts 'open|closed|all' but not declared as enum). Output schemas are not documented. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels (WRITE, DESTRUCTIVE, READ_ONLY). Missing pagination details for list_* tools.
Add an item (issue or PR) to a GitHub project.
Archive or unarchive a project item.
Check out a pull request branch locally.
Close a GitHub issue.
Close a GitHub pull request.
Add a comment to a GitHub issue.
Add a comment to a pull request.
No output schemas documented. LLMs cannot infer what fields are returned or plan downstream tool calls. E.g., create_issue returns what? issue_id, issue_url, issue_number?
Constrained parameters lack enum declarations. 'state' accepts 'open|closed|all' but is a free-form string, inviting hallucinated values. 'data_type' in create_project_field should be enum, not string.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. LLMs cannot distinguish safe reads from destructive writes without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Create a GitHub issue.
Create a custom field in a GitHub project.
Create a GitHub pull request.
Delete a field from a GitHub project.
Delete an item from a GitHub project.
Edit a project item's field value.
Get details of a specific GitHub issue by number.
List GitHub issues with optional filtering.
List fields in a GitHub project.
List pull requests in a repository.
Descriptions are too brief (avg ~50 chars vs 194-char baseline). Missing context on WHEN to use each tool and what it returns. E.g., 'Create a GitHub issue' does not explain prerequisites or output.
list_* tools lack pagination details. No mention of limit defaults, max values, or how to fetch next page. Large result sets will blow context window.