repo-recommender
Provides tools for searching GitHub issues and repositories, retrieving repository context and issue activity, and recording recommendations to help curate relevant open-source contribution opportunities.
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., "@repo-recommenderwhat should I look at this week?"
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 Recommender (MCP)
A local MCP server that helps Claude recommend specific GitHub issues and repos worth contributing to, based on your stack and interests rather than a generic trending list. It runs on your machine and plugs into Claude Desktop.
Ask Claude "what should I look at this week?" and it searches GitHub with these tools, reads the results, and picks a shortlist, each with a one-line reason it fits you. Claude does the ranking itself in the conversation; the server supplies the data.
What it does
Tool | What it does |
| Finds open issues by label, language, and keyword, across all of GitHub or limited to your seed repos. Skips issues you've already been recommended. |
| Discovers active repos by GitHub topic and/or keyword, for niche domains where issue search is noisy. Runs one query per topic, drops archived repos, forks and stale repos, and ranks by a blend of recency and stars. |
| Returns a repo's description, topics, stars, language, README excerpt, and last commit date. |
| Estimates whether a maintainer will respond: time to first maintainer comment, days since the last one, and the repo's open vs closed issue counts. |
| Logs an issue as recommended so it doesn't come back in later searches. |
| Updates your saved profile (stack, interests, goals) when your priorities change. |
Your profile and recommendation history are stored in a local DuckDB file (state.duckdb). The profile starts from the blurb in your config.yaml and is then updated through Claude via update_interests. It is also exposed to Claude as the profile://interests resource.
Related MCP server: ship-it-mcp
Setup
1. Clone and install
git clone https://github.com/infinitevoid1793/repo-recommender-mcp.git
cd repo-recommender-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt2. Create a GitHub token (read-only, dedicated to this tool)
On GitHub: Settings → Developer settings → Personal access tokens → Fine-grained tokens
Generate a new token and name it something identifiable (e.g.
repo-recommender-mcp)Set an expiration (90 days is a reasonable default; renew when it lapses)
Under Repository access, choose Public repositories (read-only)
Under Permissions, grant read-only access to Issues and Metadata only
Generate and copy the token immediately; GitHub shows it once
3. Configure
cp config.example.yaml config.yaml
cp .env.example .envconfig.yaml: your seed repos (optional) and an initial profile blurb (stack, interests, goals)..env: your token, asGITHUB_TOKEN=....
Both files are gitignored and never committed.
4. Point Claude Desktop at it
Open Claude Desktop's config (Settings → Developer → Edit Config) and add an entry under mcpServers:
{
"mcpServers": {
"repo-recommender": {
"command": "/absolute/path/to/repo-recommender-mcp/.venv/bin/python",
"args": ["/absolute/path/to/repo-recommender-mcp/server.py"]
}
}
}Use absolute paths for both. The token isn't needed here; the server loads it from .env. To print your paths:
echo "$(pwd)/.venv/bin/python" "$(pwd)/server.py"5. Restart Claude Desktop
Quit and reopen the app fully, then check the tools icon in the chat input. You should see six tools: search_issues, search_repos, get_repo_context, get_issue_activity, record_recommendation, update_interests.
Using it
In a new chat, ask something like "what should I look at this week?" For a niche domain, Claude can call search_repos first to find active repos by topic, then search_issues scoped to them. It uses get_repo_context and get_issue_activity on promising candidates and scores fit against your saved profile. Ask it to call record_recommendation on what it surfaces so those issues don't return, and tell it your priorities have changed to have it call update_interests.
Notes
GitHub's search endpoint is rate-limited (about 30 requests per minute, even with a token), so this isn't built for high-frequency polling.
search_repospauses between its per-topic queries for this reason.Delete
state.duckdbto start fresh; it is recreated and reseeded fromconfig.yamlon the next run.Changes to
config.yaml,.env, or the code take effect after restarting Claude Desktop.Version history is in
CHANGELOG.md.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Finds real, maintained open-source repos that fit your project. MCP grounding for coding agents.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP — built for coding agents.
The open-source talent graph for humans and AI agents. Find developers.
Related MCP Servers
- FlicenseAqualityDmaintenanceConnects Claude to GitHub, enabling listing repositories, browsing open pull requests, and inspecting PR diffs for code review.4-
- FlicenseNot gradedqualityDmaintenanceEnables to interact with GitHub repositories directly from Claude, supporting actions like viewing repos, checking status, committing and pushing changes, and managing pull requests.-
- FlicenseAqualityDmaintenanceEnables Claude to access and manage GitHub repositories dynamically at runtime, including private repos, with tools for browsing files, searching code, and viewing commits, pull requests, and issues.111-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to analyze GitHub repositories with tools for health scoring, contributor analysis, issue tracking, code search, and more.MIT