MCP server that wraps the GitHub CLI (gh) into a single generic tool
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gh_cli_mcp_server-0.2.0.tar.gz.
File metadata
- Download URL: gh_cli_mcp_server-0.2.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cf188aa348eb982fff4033c2c5aab29779da54afcd29106f994c77b2bbc8eda
|
|
| MD5 |
005ebd4f964869db1c6cfcdd7a4d51bb
|
|
| BLAKE2b-256 |
b0b39423d5f35d0f3559d34d0cf927349e6e02ebe4be51581f073693bc33820b
|
File details
Details for the file gh_cli_mcp_server-0.2.0-py3-none-any.whl.
File metadata
- Download URL: gh_cli_mcp_server-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbf80cdebe8466ae878a366b6dee8ad3d4b475c63cb899dd7bd8e52ef2b2e605
|
|
| MD5 |
f6778347926448ec67ac1bb26635220a
|
|
| BLAKE2b-256 |
16af7a01831067913df8f874162f3522178d6dfc9d43e52c1eb0a8d089d6df4d
|