Skip to main content
Glama
munch-group
by munch-group
README.md
# GitHub CLI MCP Server

An MCP (Model Context Protocol) server that wraps the GitHub CLI (`gh`) tool, providing comprehensive access to GitHub functionality through a standardized interface.

## Features

This server exposes the following GitHub CLI functionality:

### Repository Management
- `gh_repo_list` - List repositories for a user or organization
- `gh_repo_view` - View information about a repository
- `gh_repo_create` - Create a new repository

### Pull Requests
- `gh_pr_list` - List pull requests in a repository
- `gh_pr_view` - View a pull request
- `gh_pr_create` - Create a pull request
- `gh_pr_merge` - Merge a pull request
- `gh_pr_checkout` - Check out a pull request locally

### Issues
- `gh_issue_list` - List issues in a repository
- `gh_issue_view` - View an issue
- `gh_issue_create` - Create an issue
- `gh_issue_close` - Close an issue

### GitHub Actions
- `gh_workflow_list` - List workflows in a repository
- `gh_workflow_view` - View details about a workflow
- `gh_run_list` - List recent workflow runs
- `gh_run_view` - View details about a workflow run

### Releases
- `gh_release_list` - List releases in a repository
- `gh_release_view` - View information about a release
- `gh_release_create` - Create a new release

### Search
- `gh_search_repos` - Search for repositories
- `gh_search_issues` - Search for issues and pull requests

### Gists
- `gh_gist_list` - List your gists
- `gh_gist_create` - Create a new gist

### Other
- `gh_api` - Make authenticated GitHub API requests
- `gh_auth_status` - View authentication status
- `gh_status` - Print information about issues, PRs, and notifications

## Prerequisites

- Python 3.10 or higher
- GitHub CLI (`gh`) installed and authenticated
  - Install: https://cli.github.com/
  - Authenticate: `gh auth login`

## Installation

### From GitHub

```bash
git clone https://github.com/munch-group/gh-mcp.git
cd gh-mcp
pip install -e .
```

### Prerequisites

- Python 3.10 or higher
- GitHub CLI (`gh`) installed and authenticated
  - Install: https://cli.github.com/
  - Authenticate: `gh auth login`

Verify GitHub CLI is authenticated:
```bash
gh auth status
```

## Usage

### With Claude Desktop

```bash
# After installing with pip
claude mcp add gh gh-mcp-server

# Or run directly
claude mcp add gh python /path/to/gh-mcp/server.py
```

Or add manually to your Claude Desktop configuration:

```json
{
  "mcpServers": {
    "gh": {
      "command": "python",
      "args": ["/path/to/gh-mcp/server.py"]
    }
  }
}
```

### Standalone

Run the server directly:
```bash
python server.py
```

The server communicates via stdin/stdout using the MCP protocol.

## Examples

Once configured, you can use the tools through your MCP client. For example, with Claude Code:

- "List all open pull requests in my repository"
- "Create a new issue titled 'Bug in login page'"
- "Show me the status of workflow run #123"
- "Search for Python repositories with more than 1000 stars"
- "View release information for version v1.0.0"

## Tool Parameters

Most tools accept optional parameters for filtering and customization. See the tool descriptions in the code for full parameter details.

Common parameters include:
- `repository`: Specify repository in `OWNER/REPO` format (defaults to current repo)
- `limit`: Maximum number of items to return
- `state`: Filter by state (open, closed, all, etc.)
- `web`: Open result in web browser instead of returning data

## Error Handling

The server handles errors gracefully and returns informative error messages:
- Command timeouts (60 seconds)
- Invalid parameters
- gh CLI errors
- Authentication issues

## Security

This server executes `gh` commands with the permissions of the authenticated GitHub CLI user. Ensure you trust any client using this server, as it can perform actions on your behalf such as:
- Creating/modifying repositories
- Creating/closing issues and pull requests
- Triggering workflows
- Creating releases

## License

MIT