What GitHub (read-only) does
GitHub (read-only) provides agent access to selected GitHub data through the Model Context Protocol. It is intended for questions about repositories, issues, pull requests, and commits, while keeping the available operations non-mutating. The implementation is written in Python and uses the MCP SDK 2.x.
The server belongs in the 🔄 Version Control category. It is a fit for assistants that need to inspect project activity, retrieve repository metadata, find issues, review pull requests, or examine recent commits without granting write access.
How it works
An MCP client sends tool discovery and tool-call requests to the process over JSON-RPC on stdio. The server validates the supplied arguments, calls the GitHub REST API over HTTPS, and returns compact JSON with exact totals for list operations. A fine-grained, read-only GitHub token remains inside the server process rather than being exposed to the model.
The client includes tool descriptions designed to distinguish overlapping requests and explain argument constraints. In the project’s benchmark, these descriptions are evaluated for tool choice and argument selection using seeded repositories, a fake GitHub API, and local or hosted language-model backends. The benchmark is separate from the server’s basic data-access function.
Setup and configuration
Run the project as a Python MCP server using Python 3.10 through 3.13 and the MCP SDK 2.x. Connect it to an MCP client that supports stdio, such as Claude Desktop. A GitHub token with fine-grained read-only permissions is required for access to GitHub data. The README does not specify a client installation command or a required token environment-variable name.
For CI and offline evaluation, the project can direct requests through GITHUB_API_URL to a fake GitHub implementation populated by the benchmark’s seed data. That setting is described for evaluation rather than as the normal production endpoint.
Tools and capabilities
The GitHub (read-only) MCP server registers six tools:
list_repositories lists repositories.
get_repository retrieves information about a specified repository.
list_open_issues lists open issues.
search_issues searches issues.
list_pull_requests lists pull requests.
get_recent_commits retrieves recent commits.
Inputs are schema-validated. List-oriented arguments include documented limits, and the implementation supports pagination, exact totals, retries with backoff and jitter, and handling for primary and secondary rate limits. ETag caching allows unchanged responses to return through HTTP 304 responses without consuming another rate-limit request.
Limitations and notes
This is a read-only interface: the documented tool set does not create, update, merge, or close GitHub resources. The available tools also do not cover every possible GitHub query. The project specifically notes unsupported requests involving merged pull requests, sorting by stars, and closed issues through the open-issues tool.
The GitHub (read-only) MCP server includes an evaluation harness, test suite, CI configuration, description versions, and a results dashboard. Its reported benchmark scores measure whether a model selects the expected tool and arguments for the seeded questions; they should not be treated as complete coverage of GitHub behavior or as a guarantee for every model and prompt.