mcp-github-cli
@michaelneale
a MCP server for github using the GH cli under the covers
Overview
What is mcp-github-cli?
mcp-github-cli is an MCP server that provides focused GraphQL and REST API tools for interacting with GitHub. It leverages GitHub’s APIs to offer a streamlined set of powerful tools for retrieving rich data and performing common operations.
How to use mcp-github-cli?
Run with uvx mcp-github-cli from the command line. Prerequisites are installing the GitHub CLI (gh) and authenticating via gh auth login. Can be used with Goose or Claude. For a test run, execute uv run python main.py --test from the source directory.
Key features of mcp-github-cli
- Get detailed authenticated user information via
gh_get_me - Execute GraphQL queries for repos, users, PRs, and issues
- Run custom GraphQL queries with
gh_custom_graphql - Search repositories using the REST API
- Create issues and pull requests via REST endpoints
- List branches, commits, and repository contents
Use cases of mcp-github-cli
- Retrieve the authenticated user’s GitHub profile
- Get comprehensive repository information with a single GraphQL request
- Search for repositories by language, stars, or other criteria
- Create issues and pull requests programmatically from an MCP client
- List branches and commits for a given repository
FAQ from mcp-github-cli
What are the prerequisites?
Install the GitHub CLI (gh) via a package manager (e.g., brew install gh on macOS) and authenticate with gh auth login.
Can I use this server with Claude or Goose?
Yes, it can be used in Goose or Claude as an MCP server. Run it with uvx mcp-github-cli.
How do I test the server functionality?
Run uv run python main.py --test from the source directory. This verifies authentication, user info retrieval, GraphQL queries, REST searches, and other tools.
How do I publish an updated version?
Update the version in pyproject.toml, clean previous builds (rm -rf dist/*), build the package with python -m build, and upload to PyPI using twine.
What tools are available for custom queries?
You can execute custom GraphQL queries with gh_custom_graphql(query, variables) and custom REST API requests with gh_rest_api(endpoint, method, data, query_params).