Github CLI MCP Server
MCP server that wraps the GitHub CLI (gh) into two generic tools — similar to how aws-api-mcp-server wraps the AWS CLI.
Why?
Most GitHub MCP servers expose 25+ individual tools — one per API operation. That's a lot of tools for something the gh CLI already handles in a single binary.
aws-api-mcp-server solved this for AWS by wrapping the entire AWS CLI into one call_aws tool. This project does the same for GitHub — two tools instead of dozens:
call_gh— run anyghcommandsuggest_gh_commands— get help with syntax
No need for a dedicated tool per operation. The gh CLI already covers repos, issues, PRs, workflows, releases, and more. This just gives MCP clients a way to execute those commands directly.
Why not just use gh through a shell tool?
You can — it works. This server just cleans things up:
- Parses
ghoutput into structured JSON when possible, instead of raw terminal text - Handles timeouts so commands don't hang forever
- Includes a
suggest_gh_commandstool for when you're unsure about syntax - Shows up as a dedicated "github" capability instead of generic shell access
Same gh CLI underneath, just a smoother wrapper for MCP clients to work with.
Tools
call_gh— Execute anyghCLI command and get structured outputsuggest_gh_commands— Get command suggestions from a natural language query
Prerequisites
- GitHub CLI installed and authenticated (
gh auth login) - uv (recommended, for running with
uvx)
Installation
pip install gh-cli-mcp-server
Usage with MCP clients
{
"mcpServers": {
"github": {
"command": "uvx",
"args": ["gh-cli-mcp-server"]
}
}
}
Examples
Just ask your MCP client naturally — it'll use call_gh under the hood:
| You say | What runs |
|---|---|
| "List my repos" | gh repo list --limit 30 |
| "Show open issues on my project" | gh issue list --repo owner/repo --state open |
| "Create a PR from this branch to main" | gh pr create --title '...' --body '...' --base main |
| "What workflows does this repo have?" | gh workflow list --repo owner/repo |
| "Show me the last 5 CI runs" | gh run list --repo owner/repo --limit 5 |
| "Who am I logged in as?" | gh auth status |
If the client isn't sure which command to use, it can call suggest_gh_commands with your prompt to get suggestions first.
Metadata
Release files for gh-cli-mcp-server 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gh_cli_mcp_server-0.3.0.tar.gz | 13.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gh_cli_mcp_server-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.9 kB
Release files / gh_cli_mcp_server-0.3.0.tar.gz
| Download URL | gh_cli_mcp_server-0.3.0.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cbd464ab090a1cbba6df8c132fa422c319de4c834176a05abea1d4dc8ee28a3a
|
|
BLAKE2b-256 checksum How to use checksums |
57a5455793f2bc7e54ab563e1ba0a9d16b07144ed6d3e675809a9123c4059f6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / gh_cli_mcp_server-0.3.0-py3-none-any.whl
| Download URL | gh_cli_mcp_server-0.3.0-py3-none-any.whl |
|---|---|
| Size | 15.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e9541c84cc06b253208366fefa145bfa825123a20b97bab829f262341ab7336
|
|
BLAKE2b-256 checksum How to use checksums |
eeeced35b7c50681a09ba23debfb73113ff933ddaec31de6851237a8760410cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for gh-cli-mcp-server 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.