Skip to main content
Glama
charlesnpx
by charlesnpx

GitHub MCP

A generic, read-only remote MCP connector for querying GitHub repositories selected through a GitHub App installation. It is designed for self-hosting and contains no GitHub, Cloudflare, or MCP-client account identifiers.

The connector uses two authorization layers:

  1. A user authorizes the GitHub App to prove their GitHub identity. Only operator-configured logins may finish connecting.

  2. Tool calls use short-lived GitHub App installation tokens restricted to the requested installed repository.

The GitHub user token is discarded after identity verification. The connector exposes no write tools.

Capabilities

  • Discover repositories selected in GitHub App installations.

  • Search code and retrieve text files or directory listings.

  • Inspect commits, pull requests, diffs, reviews, and comments.

  • Inspect issues and issue comments.

  • Authenticate remote MCP clients using OAuth, PKCE, and Dynamic Client Registration.

Related MCP server: GitHub MCP Server

Local development

Requirements: Node 22 or newer and Yarn 1.22.

yarn install
yarn type-check
yarn lint
yarn test
yarn build

Tests use fake identities and mocked GitHub services. No GitHub App or Cloudflare account is needed for local verification.

To run the Worker against real services, follow the operator setup guide. Do not commit wrangler.jsonc, local secrets, or GitHub App private keys.

MCP tools

Tool

Purpose

list_repositories

List repositories selected in the app's installations.

search_code

Search within one installed repository.

list_directory

List one repository directory at a ref.

get_file

Retrieve a UTF-8 text file, optionally by line range.

list_commits / get_commit

Inspect repository history.

list_pull_requests / get_pull_request

Inspect pull requests, files, reviews, and comments.

get_pull_request_diff

Retrieve a pull request's unified diff.

list_issues / get_issue

Inspect issues and comments.

Results are live GitHub API responses, normalized into bounded JSON with canonical GitHub URLs. Pagination defaults to 20 items and caps at 50. Text and diff output caps at 100,000 characters.

Security model

  • AUTHORIZED_GITHUB_LOGINS is mandatory and fails closed when empty.

  • GitHub App installations determine which repositories exist to the connector.

  • Each repository tool call mints a one-hour token restricted to that repository.

  • Required GitHub App permissions are read-only Metadata, Contents, Issues, and Pull Requests.

  • OAuth codes, user tokens, installation tokens, client secrets, and private keys are never returned or intentionally logged.

This project is intended as a personal or small-team connector, not a hosted multi-tenant service.

License

This project is available under the MIT License.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • GitHub Private MCP Pack — access private repos, org data via OAuth.

  • Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.

  • Read-only GitHub bounty, agent harness, Actions failure, flake, and MCP tool-drift decisions.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/charlesnpx/github-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server