GitHub MCP
Pricing
from $0.01 / 1,000 results
GitHub MCP
Search GitHub repositories, discover trending projects, and fetch README files. AI agents can research open-source projects, inspect documentation, and find popular repositories by language or topic.
GitHub Repository Research MCP
Search public GitHub repositories, compare fast-growing projects, and retrieve repository README files directly from an MCP-compatible agent. This Apify Actor runs as a standby Streamable HTTP server and returns focused repository metadata instead of the full GitHub API response.
What you can do
- Find open-source projects by keyword, topic, owner, language, or other GitHub repository-search qualifiers.
- Build shortlists using stars, forks, primary language, topics, and repository URLs.
- Discover recently created repositories ordered by stars, optionally filtered by language.
- Pull raw README Markdown into research, dependency-evaluation, or documentation workflows.
The Actor reads public GitHub data only. It does not create issues, modify repositories, inspect private repositories, clone code, or authenticate to GitHub on your behalf.
Connect from an MCP client
Use the deployed Streamable HTTP endpoint:
https://reverberant-equality--mcp-github.apify.actor/mcp
Authenticate the request at the Apify edge with your Apify API token:
Authorization: Bearer $APIFY_TOKEN
Your client should also accept application/json and text/event-stream. MCP traffic is handled by POST /mcp; direct GET and DELETE requests to /mcp return HTTP 405.
Registered tools
search-github-repos
| Argument | Required | Behavior |
|---|---|---|
query | Yes | String passed to GitHub repository search. GitHub search qualifiers are supported. |
maxResults | No | Number; defaults to 20 and is clamped to 1–100. |
Returns JSON with GitHub's total_count and a repos array. Each repository contains full_name, description (string or null), stars, forks, language (string or null), url, and topics.
get-trending-repos
| Argument | Required | Behavior |
|---|---|---|
since | No | daily, weekly, or monthly; defaults to daily. |
language | No | Language string such as typescript, python, or rust. |
Returns { since, language, repos }, using the same repository fields above. This is not GitHub's website Trending page. The implementation searches recently created repositories and sorts by stars, returning up to 25 results. weekly covers seven days; the current implementation treats both daily and monthly as 30-day creation windows.
get-readme
| Argument | Required | Behavior |
|---|---|---|
repo | Yes | Full public repository name in owner/name form. |
Returns the repository's raw README text as the MCP text content, without JSON wrapping or truncation.
JSON example
Tool arguments:
{"query": "language:rust topic:cli","maxResults": 2}
The MCP result contains one text item. Decoding that item's text produces this shape (values are illustrative):
{"total_count": 42,"repos": [{"full_name": "example-org/example-cli","description": "An example command-line project","stars": 120,"forks": 14,"language": "Rust","url": "https://github.com/example-org/example-cli","topics": ["cli", "rust"]}]}
Pricing
Each tool invocation charges one tool-call event at $0.005 USD. The handler charges before contacting GitHub, so an upstream failure after the handler starts can still consume the event. Invalid MCP arguments rejected before handler execution are not a completed tool invocation. Apify platform usage may be charged separately under your Apify plan.
Upstream source, limits, and error behavior
Data comes from the public GitHub REST API. This Actor does not send a GitHub token. GitHub therefore associates requests with the Actor's outbound IP and currently documents a primary limit of 60 unauthenticated REST requests per hour plus a separate 10 unauthenticated search requests per minute limit. Capacity can be shared across requests leaving the same runtime infrastructure. GitHub may also apply secondary abuse limits.
Repository search returns only the first requested page; there is no follow-up pagination. GitHub search can report incomplete results, but this server does not expose the upstream incomplete_results flag. GitHub also limits search query length and operator count. Private or inaccessible repositories are not returned.
Tool-level upstream failures return MCP content with isError: true and a readable GitHub or network message. A missing repository or missing README produces Repository "owner/name" not found or has no README. Invalid argument types or enum values are MCP schema errors. Unexpected transport failures return a JSON-RPC internal-server error.
Privacy
Search terms and repository names are sent to GitHub and may appear in Actor logs. Responses are returned directly over MCP; this implementation does not write them to an Apify dataset or key-value store. Apify and GitHub still process request metadata according to their own policies. Do not put secrets, tokens, or confidential identifiers in queries.
Run locally
Node.js 20 or newer is required.
npm installnpm run start:dev # http://localhost:3000/mcpnpm testnpm run buildnpm run start:prodapify validate-schema
Set APIFY_CONTAINER_PORT to override port 3000 during local development.