GitHub MCP Server
# GitHub MCP Server
A Model Context Protocol (MCP) server for GitHub operations. This server provides tools for listing PRs, getting commit details, and comparing changes - useful for understanding what changed in a build or investigating test failures.
## Installation
```bash
npm install -g @bugzy-ai/github-mcp-server
```
Or use with npx:
```bash
npx @bugzy-ai/github-mcp-server
```
## Configuration
Set the `GITHUB_TOKEN` environment variable with a token that has `repo` scope:
```bash
export GITHUB_TOKEN=ghp_your_token_here
```
## Available Tools
### github_list_prs
List pull requests in a repository with optional filters.
**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `state` (optional): Filter by state - "open", "closed", or "all" (default: "all")
- `base` (optional): Filter by base branch
- `sort` (optional): Sort by "created", "updated", "popularity", or "long-running"
- `direction` (optional): Sort direction - "asc" or "desc"
- `per_page` (optional): Results per page (max 100)
- `page` (optional): Page number
### github_get_pr
Get detailed information about a specific pull request.
**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `pull_number` (required): Pull request number
### github_list_commits
List commits on a branch with optional date range filters.
**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `sha` (optional): Branch name, tag, or commit SHA
- `since` (optional): Only commits after this date (ISO 8601)
- `until` (optional): Only commits before this date (ISO 8601)
- `per_page` (optional): Results per page (max 100)
- `page` (optional): Page number
### github_get_commit
Get detailed information about a specific commit.
**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `ref` (required): Commit SHA, branch name, or tag name
### github_compare_commits
Compare two commits, branches, or tags.
**Parameters:**
- `owner` (required): Repository owner
- `repo` (required): Repository name
- `base` (required): Base ref (branch, tag, or SHA)
- `head` (required): Head ref (branch, tag, or SHA)
- `per_page` (optional): Results per page (max 100)
- `page` (optional): Page number
## MCP Configuration
Add to your `.mcp.json`:
```json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@bugzy-ai/github-mcp-server"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
```
## License
Apache-2.0
TDQS
Scored across 5 tools
Each tool targets a clearly distinct resource and action: listing PRs, getting PR details, listing commits, getting commit details, and comparing refs. Even list_commits vs compare_commits are distinguishable by purpose, one showing branch history and the other showing changes between two refs.
All tool names follow the consistent pattern github_<verb>_<noun>, using snake_case throughout. The verbs list/get/compare are predictable and match the operation each tool performs.
Five tools is a well-scoped set for a focused GitHub read-only server covering PRs and commits. Each tool has a clear purpose and none feel redundant or unnecessary.
The set provides solid read-only coverage for exploring pull requests, commits, and diffs. Minor gaps exist, such as no direct branch listing or repository-level search, but these can be worked around using compare_commits and the included PR/commit detail endpoints.