GitHub MCP Server
README.md
# GitHub MCP Server
[](https://www.npmjs.com/package/@bountyclaw/mcp-github-server)
[](https://opensource.org/licenses/MIT)
A Model Context Protocol (MCP) server for GitHub operations. This server enables AI assistants to interact with GitHub repositories through a standardized interface.
## Features
- 🔍 **List & View Pull Requests** - Browse PRs with filtering options
- 📋 **List & View Issues** - Access issues with labels, assignees, and comments
- 📊 **Repository Info** - Get repository statistics and metadata
- 🔎 **Code Search** - Search code across GitHub repositories
## Installation
```bash
npm install -g @bountyclaw/mcp-github-server
```
## Configuration
Set your GitHub token as an environment variable:
```bash
export GITHUB_TOKEN=your_github_token_here
```
Or pass it when creating the client programmatically.
## Usage with Claude Code
Add to your Claude Code MCP settings:
```json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@bountyclaw/mcp-github-server"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}
```
## Available Tools
### 1. `github_pr_list`
List pull requests for a repository.
**Input:**
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `state` (enum, optional): Filter by state (`open`, `closed`, `all`)
- `head` (string, optional): Filter by head branch
- `base` (string, optional): Filter by base branch
- `sort` (enum, optional): Sort field
- `direction` (enum, optional): Sort direction
- `per_page` (number, optional): Results per page (max 100)
- `page` (number, optional): Page number
### 2. `github_pr_view`
View details of a specific pull request.
**Input:**
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `pull_number` (number, required): PR number
- `include_diff` (boolean, optional): Include diff content
### 3. `github_issue_list`
List issues for a repository.
**Input:**
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `state` (enum, optional): Filter by state
- `labels` (string, optional): Comma-separated label names
- `assignee` (string, optional): Filter by assignee
- `creator` (string, optional): Filter by creator
- `sort` (enum, optional): Sort field
- `direction` (enum, optional): Sort direction
- `per_page` (number, optional): Results per page
- `page` (number, optional): Page number
### 4. `github_issue_view`
View details of a specific issue.
**Input:**
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `issue_number` (number, required): Issue number
- `include_comments` (boolean, optional): Include comments
### 5. `github_repo_info`
Get repository information and statistics.
**Input:**
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
### 6. `github_search_code`
Search code across GitHub.
**Input:**
- `query` (string, required): Search query (GitHub code search syntax)
- `sort` (enum, optional): Sort field (`indexed`, `best-match`)
- `order` (enum, optional): Sort order
- `per_page` (number, optional): Results per page
- `page` (number, optional): Page number
## Example Queries
```
"List open PRs in facebook/react"
"Show me issue #123 in microsoft/vscode"
"Get info about the kubernetes/kubernetes repo"
"Search for 'useEffect' in TypeScript files"
```
## Development
```bash
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Lint
npm run lint
# Format
npm run format
```
## Testing
The project includes comprehensive unit tests with 90%+ coverage:
- GitHub API client tests
- Tool handler tests for all 6 tools
- Error handling tests
- Input validation tests
```bash
npm test
```
## License
MIT License - see [LICENSE](LICENSE) file for details.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
---
Built with 🦞 by BountyClaw
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues