Skip to main content

MCP server that wraps the GitHub CLI (gh) into a single generic tool

Project description

Github CLI MCP Server

PyPI License Visitors

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 any gh command
  • suggest_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 gh output into structured JSON when possible, instead of raw terminal text
  • Handles timeouts so commands don't hang forever
  • Includes a suggest_gh_commands tool 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 any gh CLI command and get structured output
  • suggest_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gh_cli_mcp_server-0.3.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gh_cli_mcp_server-0.3.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file gh_cli_mcp_server-0.3.0.tar.gz.

File metadata

  • Download URL: gh_cli_mcp_server-0.3.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for gh_cli_mcp_server-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cbd464ab090a1cbba6df8c132fa422c319de4c834176a05abea1d4dc8ee28a3a
MD5 4fda99c05d7d8a236f40c0792ba6c8ca
BLAKE2b-256 57a5455793f2bc7e54ab563e1ba0a9d16b07144ed6d3e675809a9123c4059f6c

See more details on using hashes here.

File details

Details for the file gh_cli_mcp_server-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gh_cli_mcp_server-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e9541c84cc06b253208366fefa145bfa825123a20b97bab829f262341ab7336
MD5 20274c2d8053fc667ae3bad62ca3a844
BLAKE2b-256 eeeced35b7c50681a09ba23debfb73113ff933ddaec31de6851237a8760410cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page