@rakeshroushan/reposcout
v0.1.1
Published
LLM-driven GitHub repo discovery and ranking, exposed as an MCP server
Maintainers
Readme
reposcout
LLM-driven GitHub repo discovery and ranking, exposed as a Model Context Protocol (MCP) server.
When an AI coding agent needs "the best open-source library for X", it usually falls back on stale training-data recall. reposcout gives the agent a fresh, evidence-backed view of the GitHub ecosystem: it searches by intent, pulls READMEs and metadata, computes deterministic popularity / maintenance / completeness signals, and combines them with the agent's own relevance judgment into a ranked, explainable shortlist.
It ships as a stdio MCP server with three composable tools, plus a companion Claude Code skill that orchestrates them.
How it works
Discovery is split into three tools so the deterministic math stays server-side and the judgment stays with the LLM driving the loop:
| Tool | What it does |
|------|--------------|
| repo_search | Runs several GitHub search queries built from the objective, unions and dedupes them, and returns compact records with computed popularity_score and maintenance_score. |
| repo_enrich | For a shortlist, fetches the cleaned + truncated README plus completeness signals (license, homepage, description, topic count, README size). Results are cached locally. |
| repo_rank | Combines four sub-scores — relevance, popularity, maintenance, completeness — into a weighted ranking. The agent supplies relevance + completeness; reposcout owns popularity + maintenance and the final math. |
Scoring is deterministic: log-scaled popularity (star/fork caps), exponential-decay maintenance (180-day half-life) with an open-issues penalty. Default weights are relevance 0.4 / popularity 0.2 / maintenance 0.2 / completeness 0.2 (normalized, overridable per call). Archived repos are excluded by default.
Requirements
- Node.js >= 22 (uses the built-in
node:sqlite). - A GitHub token. reposcout reads
GITHUB_TOKENorGH_TOKEN; if neither is set it falls back togh auth token. So if yourghCLI is logged in (gh auth login), no extra setup is needed.
Install
reposcout runs as a local stdio MCP server — point any MCP client at it.
Claude Code
claude mcp add reposcout -- npx -y @rakeshroushan/reposcoutClaude Desktop / Cursor / other MCP clients
Add to the client's MCP config (for Claude Desktop, claude_desktop_config.json):
{
"mcpServers": {
"reposcout": {
"command": "npx",
"args": ["-y", "@rakeshroushan/reposcout"],
"env": { "GITHUB_TOKEN": "ghp_..." }
}
}
}Omit env to use your gh CLI login instead.
From source
git clone https://github.com/Rakesh1002/reposcout
cd reposcout
pnpm install
pnpm buildThen point the client at the built server:
{
"mcpServers": {
"reposcout": {
"command": "node",
"args": ["/absolute/path/to/reposcout/dist/server.js"]
}
}
}Using it
Once connected, state an objective in plain language:
Find the best TypeScript library to generate OpenAPI types from Zod schemas — min 100 stars, actively maintained.
The agent expands that into complementary GitHub queries, calls repo_search, triages a shortlist, calls repo_enrich, scores relevance + completeness from the READMEs, and calls repo_rank to return a ranked shortlist with one-line reasoning per repo. The companion reposcout Claude Code skill encodes that pipeline so you never touch raw JSON.
Development
pnpm dev # run the server from source (tsx)
pnpm test # node --test over tests/*.test.ts
pnpm typecheck # tsc --noEmit
pnpm lint # biome check
pnpm build # tsc -> dist/The cache lives at ~/.reposcout/cache.sqlite (24h TTL).
License
MIT — see LICENSE.
