OAuth-discoverable Bearer-auth GitHub MCP server for ChatGPT, Notion, agents, and cloud deployment.
Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. Tool names follow verb_noun convention (get_file, commit_files, merge_pull_request), which is good. However, descriptions are minimal (10-50 chars for most tools), parameter descriptions are sparse or missing, and output schemas are not documented. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Security concerns: commit_files and merge_pull_request are high-risk write operations with minimal validation guidance in descriptions.
Commit files to a GitHub repository
Compare and verify a pull request
Compare two Git references
Read a file from a GitHub repository
Get a verification plan for GitHub operations
Merge a pull request on GitHub
Read the operating guide for GitHub MCP operations
Destructive operations (commit_files, merge_pull_request) lack tool annotations and confirmation patterns. No readOnlyHint/destructiveHint metadata. No dry-run or confirmation step documented.
Output schemas not documented. LLMs cannot infer what fields are returned by tools, forcing guesswork on downstream tool chaining. E.g., get_file returns what structure? Does it include file metadata, encoding, size?
Parameter descriptions are minimal or missing. 'ref' in get_file says 'Git reference (branch, tag, or commit SHA)' but does not specify format, required length, or validation rules. LLMs cannot validate input before calling.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
Error handling lacks recovery guidance. No indication of which errors are retryable, user-fixable, or fatal. No suggestions for next steps (e.g., 'If file not found, try list_files() first').
Tool 'compare_and_verify_pr' name contains 'and', signaling multiple responsibilities. Should split into compare_pr and verify_pr for single-concern design.