A Model Context Protocol server that provides GitHub API integration with SSE (Server-Sent Events) and stdio transport support
This GitHub MCP server provides 9 tools with explicit schemas and descriptions in Go/mcp-go. All tools have descriptions (in Japanese) and registered schemas via mcp.NewTool(). However, there are systematic gaps: (1) descriptions are terse and lack actionable context for LLM selection; (2) no output schemas are documented anywhere in the source; (3) array parameter 'files' in push_files lacks item-type specification; (4) no error handling guidance visible; (5) no mention of pagination limits for search_repositories; (6) parameters lack format/constraint details (e.g., branch names, file paths); (7) descriptions are in Japanese, reducing clarity for non-Japanese-speaking LLM operators. The tool naming is consistently strong (verb_noun pattern, e.g., 'search_repositories', 'create_pull_request'). Schemas are present but incomplete, every tool has required/non-required flags, but no numeric bounds, enums, or item schemas for arrays. The 'files' array in push_files is a critical gap: LLMs cannot infer the structure of array items without documentation.
GitHubリポジトリにファイルを作成または更新します
GitHubリポジトリに新しいPull Requestを作成します
Pull Requestにレビューを作成します
新しいGitHubリポジトリを作成します
GitHubリポジトリをフォークします
GitHubリポジトリからファイルの内容を取得します
GitHubリポジトリからPull Requestの詳細を取得します
No output schemas documented. LLMs cannot infer what fields each tool returns, forcing them to guess and breaking downstream tool chaining. E.g., create_repository should return repo_id, but this is not documented.
push_files tool has an 'files' array parameter with no item-type specification. LLMs cannot understand the structure of each file object (is it {path, content}? {operation, path, content}?).
Descriptions are uniformly terse (30 - 50 chars) and in Japanese, limiting utility for non-Japanese operators. Baseline is 194 chars per description. Current descriptions lack WHEN to use the tool, dependencies (e.g., 'Call search_repositories first if you don't have owner/repo'), and output guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
複数のファイルを一度にGitHubリポジトリにプッシュします
GitHub リポジトリを検索します
No pagination limits documented for search_repositories. Free-form 'page' and 'per_page' parameters without bounds allow LLMs to request thousands of results, exploding context. Baseline tools cap result sets at 20 - 50 and document the limit.
No error handling guidance. Error responses are not documented, LLMs cannot infer whether a failure is retryable, user-fixable, or fatal. Per pattern, errors should include 'What went wrong?' and 'What should I do next?'
create_repository and fork_repository lack confirmation/dry-run for destructive state changes. Per pattern, irreversible operations should support a confirmation step to prevent accidental repo creation or forking to the wrong account.
Parameter descriptions lack format/constraint details. E.g., 'branch' parameter has no regex, length limit, or valid-character guidance. 'message' parameter (commit message) lacks length guidance. LLMs cannot validate input without explicit constraints.
create_pull_request_review 'event' parameter is a free-form string with no enum. Description hints '(APPROVE, REQUEST_CHANGES, COMMENT)' but this is informal guidance, not a formal constraint. LLMs may hallucinate values like 'PENDING_REVIEW' or 'APPROVED'.