github-repo-scout-mcp
Read-only access to GitHub's search and REST APIs for discovering and evaluating repositories. Supports repository search by topics, language, stars, recency and license (with the resulting query shown), topic lookup, issue/PR search, and code search. Also fetches repo details, file trees and contents, issues and pull requests, computes an activity/maintainer health score, compares repos side by side, finds repos with overlapping topics, and runs security checks (package advisories, dependency vulnerability audits of manifest files, and supply-chain risk signals such as OpenSSF Scorecard results).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@github-repo-scout-mcp Is pallets/flask still maintained? Check its repo health"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
github-repo-scout-mcp
A read-only MCP server for finding and judging GitHub repositories from your AI assistant. It works with no setup and no token.
Ask things like:
"Find Java + Spring Boot banking projects with recent activity"
"Is
some-org/some-libstill maintained?""Compare these three state-management libraries"
"Show me repos similar to
modelcontextprotocol/python-sdk"
Why
GitHub search can combine several topics in one query (topic:java topic:spring-boot topic:banking), along with language, stars, last push date and license. Few people know this, and you need the exact topic names for it to work. This server:
turns plain filters into the right search syntax and shows you the final query
finds the exact topic names for a concept (
search_topics)scores whether a repo is alive and well run (
get_repo_health)compares repos side by side and finds similar ones
returns short, readable results instead of GitHub's raw JSON, which carries about 40 URL fields per repo
It never writes to GitHub. Every tool is marked read-only.
Related MCP server: GitBridge
Install
Claude Code
claude mcp add github-repo-scout -- npx -y github-repo-scout-mcpWith a token (optional, see below):
claude mcp add github-repo-scout -e GITHUB_TOKEN=ghp_yourtoken -- npx -y github-repo-scout-mcpClaude Desktop, Cursor and other MCP clients
Add this to your client's MCP config (for Claude Desktop, claude_desktop_config.json; for Cursor, .cursor/mcp.json):
{
"mcpServers": {
"github-repo-scout": {
"command": "npx",
"args": ["-y", "github-repo-scout-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_yourtoken"
}
}
}
}Leave out the env block to run without a token.
Token (optional)
Without a token everything except search_code works, within GitHub's limits for anonymous use. If you set GITHUB_TOKEN (or GITHUB_PAT), it is sent with every request.
No token | With token | |
Regular requests | 60 per hour | 5,000 per hour |
Searches | 10 per minute | 30 per minute |
| not available (GitHub requires a token) | 10 per minute |
The token needs no permissions. All this server does is read, so the token only raises your limits. Create one at github.com/settings/tokens in either of two ways:
Fine-grained token: choose "Public repositories (read-only)" and add no permissions.
Classic token: select no scopes.
If you want it to read your private repositories too, give it read access to them.
Tools
Search
Tool | What it does | Key inputs |
| Search repos by any mix of filters. |
|
| Find the exact topic names for a concept, e.g. "banking" gives |
|
| Search issues or PRs everywhere or in one repo, e.g. by an error message |
|
| Search source code (needs a token) |
|
Each search_repositories result shows stars, forks, open issues + PRs, language, license, last push, archived/fork flags, description, topics and URL.
For attributes without a named input, add GitHub qualifiers to query: org:NAME, user:NAME, forks:>=N, size:>=N (KB), topics:>=N, good-first-issues:>=N, help-wanted-issues:>=N, template:true, fork:true, mirror:false, in:readme, or date ranges like created:2025-01-01..2025-06-30.
Repository details
Tool | What it does |
| Stars, forks, language breakdown, license, topics, dates, latest release and the start of the README |
| The folder structure as an indented tree, with depth and subfolder controls |
| Read one file (e.g. |
| Issues in a repo, without pull requests mixed in |
| Pull requests in a repo |
| One PR's status, size, description and changed files |
Evaluation
Tool | What it does |
| A 0-100 score with a breakdown (see below) and warnings |
| 2-5 repos side by side, optionally with health scores |
| Repos that share the most topics with a given repo, ranked by overlap and stars |
Security
Ask "is this repo safe to use?" and the assistant calls these together.
Tool | What it does | Key inputs |
| Known vulnerabilities and malware reports for one package: severity, CVE, affected and fixed versions, and the chance of exploitation (EPSS) |
|
| Checks every dependency a repo declares for known vulnerabilities and malware, without cloning it. Reads |
|
| Warning signs behind real supply chain attacks such as xz-utils and event-stream: one-person projects, a newcomer suddenly taking over, a dormant package suddenly releasing again, unprotected branches, no security policy, unsigned releases, plus the OpenSSF Scorecard result |
|
Limits to know:
Ranges are checked at their lowest version. For
^4.17.0the audit checks 4.17.0. A hit means the range allows a vulnerable version; your lockfile may already install a fixed one.Only direct dependencies are checked, not the packages they pull in.
No findings does not mean safe. These tools report known advisories and public signals about how a project is run. They cannot detect malicious code nobody has reported yet.
security_supply_chain_risksends the repository name (never your token) to the public OpenSSF Scorecard API. It skips this for private repositories and GitHub Enterprise Server.
How the health score works
get_repo_health uses about 5 requests and adds up five parts:
Part | Points | Full points when |
Activity | 30 | last push within 30 days |
Recent commits | 15 | 50+ commits on the default branch in 90 days |
Releases | 15 | a release within 180 days |
Contributors | 20 | 20+ contributors and no one person making half the commits |
Community files | 20 | license, README, CONTRIBUTING, code of conduct, issue and PR templates |
80+ is "Healthy", 60-79 "Moderate", 40-59 "Weak", below 40 "Poor". Archived repos are capped at 20. The score shows whether a project is alive and well run. It does not judge code quality.
Other settings
Variable | Purpose |
| Optional token, sent on every request |
| API base URL for GitHub Enterprise Server, e.g. |
| Return built-in sample data with no network calls, for trying the server or testing |
Results are cached in memory for 5 minutes to save your rate limit.
Development
npm install
npm test # builds, then runs unit tests and end-to-end MCP tests in mock mode
npm run smoke # calls each tool against the real GitHub API (about 20 requests)Requires Node.js 22.23.4, 24.22.1 or 26.12.1 or newer. These releases (October 2026) stop trusting the compromised eMudhra certificates. Older Node versions could let someone intercept your traffic to GitHub, including your token. Node 18 and 20 are end-of-life and will not get the fix. On an older version the server still runs but prints a warning at startup.
Support
If this server saves you time, you can sponsor its development on GitHub. Bug reports and feature requests are welcome in issues.
License
MIT
Available Tools
16 toolscompare_repositoriesCompare repositoriesARead-only
Compare 2-5 repositories side by side: stars, forks, language, license, activity and topics. Set include_health to add health scores (about 5 extra API requests per repo).
Inputs: repos (required), include_health.
find_similar_repositoriesFind similar repositoriesARead-only
Find repositories similar to a given one, using its topics (and optionally its language). Results are ranked by how many topics they share, then by stars. Each result has the same fields as search_repositories (stars, forks, open issues + PRs, language, license, last push, flags, description, topics, URL) plus the list of shared topics. Uses up to 3 searches.
Inputs: repo (required), owner (required), limit, min_stars, +1 more.
get_file_contentsGet file contentsARead-only
Read one file from a repository (e.g. 'pom.xml', 'package.json', 'src/main.go'). If the path is a folder, lists its contents instead.
Inputs: path (required), repo (required), owner (required), ref, +1 more.
get_pull_requestGet pull requestARead-only
Details for one pull request: status, branches, size, description and the list of changed files.
Inputs: repo (required), owner (required), number (required), include_files, +1 more.
get_repo_healthGet repository healthARead-only
Score (0-100) for whether a repository is alive and well maintained, with a transparent breakdown: recent pushes, commits in the last 90 days, releases, contributor count and concentration (bus factor), and community files (license, CONTRIBUTING, templates). Uses about 5 API requests.
Inputs: repo (required), owner (required).
get_repositoryGet repositoryARead-only
Details for one repository: stars, forks, language breakdown, license, topics, activity dates, latest release and the start of the README.
Inputs: repo (required), owner (required), include_readme, readme_max_chars.
get_repo_treeGet repository file treeARead-only
The folder and file structure of a repository, as an indented tree. Use path to focus on a subfolder and max_depth to control detail.
Inputs: repo (required), owner (required), ref, path, +2 more.
list_issuesList issuesARead-only
List issues in a repository (pull requests are excluded). Filter by state and labels.
Inputs: repo (required), owner (required), sort, limit, +4 more.
list_pull_requestsList pull requestsCRead-only
List pull requests in a repository. Filter by state and target branch.
Inputs: repo (required), owner (required), base, sort, +4 more.
search_codeSearch codeARead-only
Search source code in public repositories (GitHub requires a token for this endpoint, so it only works when GITHUB_TOKEN or GITHUB_PAT is set). Returns matching files with a short snippet.
Inputs: query (required), path, repo, limit, +5 more.
search_issues_and_prsSearch issues and pull requestsARead-only
Search issues or pull requests across all public repositories, or within one repo. Useful for finding how others hit and solved a problem (e.g. an error message), or for good-first-issue hunting.
Inputs: repo, sort, type, limit, +6 more.
search_repositoriesSearch repositoriesARead-only
Search public GitHub repositories (GET /search/repositories) by any combination of keywords, topics, language, stars, activity dates and license. Matching: 'query' keywords match the repo name, description and topics (not the README unless you add in:readme). 'topics' is stricter: each listed topic must be an exact tag on the repo, and all of them must be present (AND). If you are unsure of exact topic names, call search_topics first. Archived repos are excluded unless include_archived is true; forks are excluded by GitHub by default. Each result includes: full_name (owner/repo), stars, forks, open issues + PRs (GitHub counts both together), primary language, license (SPDX id), last push date, ARCHIVED/fork flags, description, topics and URL. The response also shows the exact GitHub query used and the total match count. Other GitHub repo attributes can be filtered by adding qualifiers to 'query' (see its description), e.g. forks, size, owner, template status, help-wanted issue count.
Inputs: sort, limit, order, query, +8 more.
search_topicsSearch topicsARead-only
Find the exact GitHub topic names for a concept, e.g. 'banking' -> fintech, core-banking, payments. Use the returned names in search_repositories. Featured topics are highlighted by GitHub; curated topics have extra descriptions.
Inputs: query (required), limit, offset, curated_only, +1 more.
security_advisoriesSecurity advisories for a packageARead-only
Known vulnerabilities (CVEs) and malware reports for one package from the GitHub Advisory Database: severity, affected and fixed versions, and EPSS exploit likelihood. Pass version to see only advisories that affect it. Part of the security toolkit: for a repository, also use security_audit_dependencies and security_supply_chain_risk. Uses 2 API requests.
Inputs: package (required), ecosystem (required), limit, version, +1 more.
security_audit_dependenciesAudit a repository's dependenciesARead-only
Checks every dependency a repository declares against the GitHub Advisory Database for known vulnerabilities and malware, without cloning it. Finds manifests at the repository root automatically (package.json, requirements.txt, pyproject.toml, go.mod, Cargo.toml, pom.xml, composer.json), or pass path. Part of the security toolkit: also call security_supply_chain_risk for how the project is run, and security_advisories for details on one package. Uses about 2 API requests per manifest plus 2 per ecosystem.
Inputs: repo (required), owner (required), ref, path, +1 more.
security_supply_chain_riskSupply chain risk of a repositoryARead-only
Is this project safe to depend on? Checks the warning signs behind real supply chain attacks (xz-utils, event-stream): bus factor, a newcomer suddenly taking over, dormant-then-burst releases, branch protection, commit and release signing, security policy, private vulnerability reporting, Dependabot or Renovate, published advisories, and the OpenSSF Scorecard result. Part of the security toolkit: also call security_audit_dependencies for known vulnerabilities in its dependencies. Uses about 12 GitHub API requests, plus one call to the public OpenSSF Scorecard API with the repository name.
Inputs: repo (required), owner (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Most tools target clearly distinct resources or actions, and the descriptions clarify boundaries well. Minor overlap exists between list_issues and search_issues_and_prs, and between get_repo_tree and folder-listing behavior in get_file_contents, but these are not likely to cause serious misselection.
All names use snake_case and most follow a verb_noun pattern such as get_repository, search_repositories, list_issues, and compare_repositories. Small inconsistencies appear in abbreviation (repo vs repository) and noun-first security_* tools, but the convention is still predictable.
With 16 tools, the server is slightly above the typical well-scoped range but still reasonable given its broad remit of repository discovery, inspection, comparison, and security checks. Each tool has a plausible role and the set does not feel bloated.
The surface covers the core read-only scouting workflow very well: search, repo details, health, files, issues, PRs, comparisons, similarity, and security checks. A few minor gaps remain, such as explicit release listing or detailed issue retrieval, but agents can work around them using existing search and file tools.
Maintenance
Related MCP Connectors
Evaluates any GitHub repository for license risk, maintenance velocity, stars/forks, and supply-c.
Evaluates any GitHub repository for license risk, maintenance velocity, stars/forks, and security.
GitHub repo search, stats, language breakdown and comparison as agent tools.
Operate GitHub from your AI assistant: repos, PRs, issues, Actions. Previews and read-only mode.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze GitHub repository structures and read file contents with features like directory traversal, file type analysis, syntax highlighting, and code pattern detection. Supports both public and private repositories through GitHub API integration.8 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze GitHub repositories, including fetching repository details, searching, and retrieving README content.443 npm2ISC
- AlicenseNot gradedqualityDmaintenanceEnables Claude to analyze GitHub repositories with tools for health scoring, contributor analysis, issue tracking, code search, and more.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform GitHub analytics and management tasks, including repository analysis, PR summarization, issue triage, release notes generation, and contributor statistics.48 npmMIT