AI-powered open source contribution matchmaker โ finds perfect 'good first issues' matched to YOUR skills
Project description
๐ OpenCollab MCP
Land your first open source PR this weekend.
Stop scrolling GitHub. Let AI find you a mergeable issue in 30 seconds โ matched to your actual skills, in a repo that's actually alive.
Works with Claude Desktop ยท Cursor ยท VS Code ยท any MCP client
The problem
You want to contribute to open source. So you:
- Scroll through hundreds of GitHub repos ๐ฉ
- Find a "good first issue" โ already taken ๐ค
- Spend an hour understanding a dead repo ๐
- Discover someone already opened a PR ๐ญ
- Give up, go back to tutorials ๐บ
This loop is broken. OpenCollab fixes it in one sentence to your AI assistant.
The fix
"Find me a good first issue I can contribute to this weekend."
Claude calls OpenCollab โ scans your GitHub profile โ picks your strongest language โ finds beginner-friendly issues in active repos with no existing PR โ hands you the issue + full context to draft the fix.
One sentence. A real mergeable issue.
๐ฆ Install in 60 seconds
1. Get a free GitHub token
github.com/settings/tokens โ Generate new token (classic) โ check public_repo โ copy.
2. Add to your AI tool
๐ฅ๏ธ Claude Desktop (recommended)
Edit your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add this:
{
"mcpServers": {
"opencollab": {
"command": "uvx",
"args": ["opencollab-mcp"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}
Restart Claude Desktop. Done.
โก Cursor / VS Code
Add to .cursor/mcp.json or your VS Code MCP config:
{
"mcpServers": {
"opencollab": {
"command": "uvx",
"args": ["opencollab-mcp"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}
๐ Install with pip
pip install opencollab-mcp
Then in your MCP config:
{
"mcpServers": {
"opencollab": {
"command": "opencollab-mcp",
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}
๐ณ Docker (remote / streamable-http)
docker build -t opencollab-mcp .
docker run -e GITHUB_TOKEN=ghp_xxx -p 8000:8000 opencollab-mcp
The container defaults to TRANSPORT=streamable-http on port 8000 and runs as a non-root user.
๐ฌ See it in action
The killer demo โ 3 prompts to go from zero to a drafted PR
1๏ธโฃ Analyze me
"My GitHub username is
prakhar1605. Am I ready to contribute to open source?"Readiness: 72/100. You know 4 languages, 15 public repos, haven't opened PRs yet. Tips: start with a docs fix, try a repo you already use.
2๏ธโฃ Find me a mergeable issue
"Find me a Python good-first-issue I can finish in 1โ2 hours. Make sure nobody's working on it."
Returns 5 issues ยท filters out ones with assignees or linked PRs ยท sorts by "quickness score" (short body, few comments, easy label).
3๏ธโฃ Plan the PR
"Plan a PR for issue #456 in
owner/repo."Pulls the issue body, comments, CONTRIBUTING.md, the repo's directory structure, and the default branch โ hands Claude everything needed to draft the actual code.
That's the whole loop: Analyze โ Find โ Plan โ Ship.
More things you can just say
| You sayโฆ | What happens |
|---|---|
| "Is issue #123 in facebook/react still available?" | โ No assignees, no open PRs. 3 comments, 12 days old. Go for it. |
| "Compare langchain vs llama_index for contributing." | Side-by-side: stars, PR merge rate, activity. Recommends winner. |
| "Is tensorflow/tensorflow alive?" | 847 commits in last 30 days. Growing +23%. Safe to invest time. |
| "How complex is issue #5432 in pytorch?" | 7/10 ยท Advanced. 12 comments, architecture label. Skip unless you know the codebase. |
| "Find Python repos with GSoC or Hacktoberfest." | Mentored repos sorted by mentor signals. |
| "What dependencies does fastapi use?" | Reads pyproject.toml โ starlette, pydantic, uvicorn. |
| "What's the impact of contributing to react?" | ๐ฏ MASSIVE ยท 230k+ stars ยท Resume line: "Contributed to a project used by millions of devs." |
๐ ๏ธ All 22 tools
๐ Discovery & Matching (6)
| Tool | Does |
|---|---|
opencollab_match_me |
All-in-one โ profile analysis + matched issues |
opencollab_find_issues |
Good-first-issues for any language |
opencollab_trending_repos |
Trending repos seeking contributors |
opencollab_similar_repos |
Find repos like one you already like |
opencollab_find_mentor_repos |
GSoC ยท Hacktoberfest ยท Outreachy repos |
opencollab_weekend_issues |
1โ2 hour issues โ docs, typos, tests |
๐ Evaluation & Scoring (7)
| Tool | Does |
|---|---|
opencollab_repo_health |
Health score 0โ100 |
opencollab_contribution_readiness |
Setup difficulty (Dockerfile, CI, docs) |
opencollab_impact_estimator |
Impact tier + resume line |
opencollab_repo_activity_pulse |
30-day momentum โ growing? dying? |
opencollab_compare_repos |
Two repos side-by-side + winner |
opencollab_repo_languages |
Language % breakdown |
opencollab_dependency_check |
Tech stack โ what libs the project uses |
๐ค Profile & Readiness (3)
| Tool | Does |
|---|---|
opencollab_analyze_profile |
Deep profile analysis |
opencollab_first_timer_score |
Open source readiness 0โ100 + tips |
opencollab_contributor_leaderboard |
Top contributors of any repo |
๐ฏ Issue Intelligence (6)
| Tool | Does |
|---|---|
opencollab_check_issue_availability |
Is this issue still free? |
opencollab_issue_complexity |
Difficulty 1โ10 |
opencollab_stale_issue_finder |
Old unclaimed issues โ hidden wins |
opencollab_label_explorer |
All labels + beginner-friendly ones |
opencollab_recent_prs |
Recently merged PRs โ what gets accepted |
opencollab_generate_pr_plan |
Full context for PR planning |
โก Why it's different
You ask Claude โ Claude calls OpenCollab tools โ Tools hit GitHub's free API โ Data flows back โ Claude reasons over it โ You get a real, specific answer
OpenCollab is a data bridge, not an AI. Your AI assistant does the thinking. That means:
- ๐ Zero AI costs โ pure GitHub API, no paid services
- ๐ No secrets besides a free GitHub token
- ๐ป Runs locally on your machine (STDIO transport) or as a container (streamable-HTTP)
- ๐ Private โ your GitHub data never leaves your computer
- โก Fast โ direct API calls + 5-minute in-memory cache to soften rate-limit pressure
- ๐งช Tested โ pytest suite + CI on every push
๐๏ธ Develop / Contribute
This project is itself a great first contribution target.
git clone https://github.com/prakhar1605/Opencollab-mcp.git
cd Opencollab-mcp
pip install -e ".[dev]"
export GITHUB_TOKEN="your_token_here"
# Run the server
python -m opencollab_mcp
# Run the tests
pytest
# Lint
ruff check src tests
# Or test interactively with the MCP Inspector:
npx @modelcontextprotocol/inspector python -m opencollab_mcp
Project layout
src/opencollab_mcp/
โโโ server.py # entry point, transport selection
โโโ github_client.py # cached HTTP wrapper with friendly errors
โโโ helpers.py # days_ago, truncate, parse_issue_number, โฆ
โโโ models.py # Pydantic input models
โโโ constants.py # all magic numbers / thresholds
โโโ tools/
โโโ discovery.py # 6 matching tools
โโโ evaluation.py # 7 scoring tools
โโโ issues.py # 6 issue-intelligence tools
โโโ profile.py # 3 readiness tools
Check open issues labelled good first issue.
๐บ๏ธ Roadmap
- 22 tools shipped
- Published on PyPI โ
uvx opencollab-mcpworks out of the box - In-memory caching layer (fewer API calls, less rate-limit friction)
- GitHub Actions CI
- Pytest suite with httpx MockTransport
- Streamable-HTTP transport for remote deployment
-
first_pr_generatorโ one-shot "find + plan + draft my first PR" -
track_my_prsโ dashboard of your open PRs with staleness nudges -
skill_gapโ compare your skills vs a target repo's stack
Got an idea? Open an issue โ that's the fastest path in.
๐ License
MIT โ see LICENSE.
Built with โค๏ธ by Prakhar Pandey ยท IIT Guwahati
โญ Star this repo if OpenCollab helps you land a PR. โญ It's the single biggest thing you can do to help other devs discover it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opencollab_mcp-0.5.0.tar.gz.
File metadata
- Download URL: opencollab_mcp-0.5.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0a8a45695068006470bcbedcb43dd4e5317846f6d4925a13de0e40a90a8a734
|
|
| MD5 |
a84afcbe6eaa004188118902d7fc7022
|
|
| BLAKE2b-256 |
4b4cee15ff60e6afa683ef0889de873736129a4e3538ea6881ff61153ac746b4
|
File details
Details for the file opencollab_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: opencollab_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1baa00e387fcecedd25a5616790423f61a8dc7ced719a1486a7b3989a6f68434
|
|
| MD5 |
5241d23628c54f1bdfce0615c0e63306
|
|
| BLAKE2b-256 |
4cf589c2e6fbec751ea07953d1b2e20d3c23befe5a7b99ea222771470d73b1a1
|