Skip to main content
Glama

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-lib still 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-mcp

With a token (optional, see below):

claude mcp add github-repo-scout -e GITHUB_TOKEN=ghp_yourtoken -- npx -y github-repo-scout-mcp

Claude 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

search_code

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

Tool

What it does

Key inputs

search_repositories

Search repos by any mix of filters. query keywords match name, description and topics; topics must all be exact tags on the repo. Archived repos are excluded by default.

topics[], query, language, min_stars, pushed_after, created_after, license, include_archived, sort, limit, offset

search_topics

Find the exact topic names for a concept, e.g. "banking" gives banking, open-banking, fintech

query, featured_only, curated_only

search_issues_and_prs

Search issues or PRs everywhere or in one repo, e.g. by an error message

query, type, state, repo, labels[], language

search_code

Search source code (needs a token)

query, repo, owner, language, path, filename, extension

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

get_repository

Stars, forks, language breakdown, license, topics, dates, latest release and the start of the README

get_repo_tree

The folder structure as an indented tree, with depth and subfolder controls

get_file_contents

Read one file (e.g. pom.xml, package.json), or list a folder

list_issues

Issues in a repo, without pull requests mixed in

list_pull_requests

Pull requests in a repo

get_pull_request

One PR's status, size, description and changed files

Evaluation

Tool

What it does

get_repo_health

A 0-100 score with a breakdown (see below) and warnings

compare_repositories

2-5 repos side by side, optionally with health scores

find_similar_repositories

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

security_advisories

Known vulnerabilities and malware reports for one package: severity, CVE, affected and fixed versions, and the chance of exploitation (EPSS)

ecosystem, package, version

security_audit_dependencies

Checks every dependency a repo declares for known vulnerabilities and malware, without cloning it. Reads package.json, requirements.txt, pyproject.toml, go.mod, Cargo.toml, pom.xml and composer.json

owner, repo, path, include_dev

security_supply_chain_risk

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

owner, repo

Limits to know:

  • Ranges are checked at their lowest version. For ^4.17.0 the 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_risk sends 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

GITHUB_TOKEN or GITHUB_PAT

Optional token, sent on every request

GITHUB_API_URL

API base URL for GitHub Enterprise Server, e.g. https://github.example.com/api/v3

MOCK=true

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 tools
compare_repositoriesCompare repositoriesA
Read-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 repositoriesA
Read-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 contentsA
Read-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 requestA
Read-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 healthA
Read-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 repositoryA
Read-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 treeA
Read-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 issuesA
Read-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 requestsC
Read-only

List pull requests in a repository. Filter by state and target branch.

Inputs: repo (required), owner (required), base, sort, +4 more.

search_codeSearch codeA
Read-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 requestsA
Read-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 repositoriesA
Read-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 topicsA
Read-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 packageA
Read-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 dependenciesA
Read-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 repositoryA
Read-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

    A3.6/5.0

    Scored across 16 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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 npm
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to perform GitHub analytics and management tasks, including repository analysis, PR summarization, issue triage, release notes generation, and contributor statistics.
      48 npm
      MIT