Opencollab Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Opencollab Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center">
Find your next open source contribution from your AI chat.
6 focused tools. Works with Claude Desktop, Cursor, VS Code, or any MCP-compatible client.
</div>
You ask your AI assistant something like:
"My GitHub is `@octocat`. Find me a good first issue I can actually pick up — make sure nobody's already working on it."
OpenCollab gives the AI 6 tools that read the GitHub API. The AI uses them to:
That's the whole loop: find → evaluate → verify → plan. OpenCollab does not generate text. Your AI client does the thinking; OpenCollab just gives it clean, real-time GitHub data.
v0.6.0 — relaunched lean. Previous versions exposed 22 tools. Most went unused, and big tool lists hurt LLM routing. This release ships the 6 that earn their keep. The full 22-tool version is preserved on the v1-full branch.Go to github.com/settings/tokens → Generate new token (classic) → tick public_repo → copy the token (it starts with ghp_).
<details open> <summary><b>Claude Desktop</b> (recommended)</summary>
Open your config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonPaste this (replace your_token_here with the token from Step 1):
{
"mcpServers": {
"opencollab": {
"command": "uvx",
"args": ["opencollab-mcp"],
"env": {
"GITHUB_TOKEN": "your_token_here"
}
}
}
}Restart Claude Desktop. You're done.
Requiresuv(brew install uvon macOS,pipx install uvelsewhere).uvxwill pullopencollab-mcpfrom PyPI on first launch.
</details>
<details> <summary><b>Cursor / VS Code</b></summary>
Same JSON as above, but in your client's MCP config file (.cursor/mcp.json for Cursor).
</details>
<details> <summary><b>Plain pip (no uv)</b></summary>
pip install opencollab-mcpThen in your client config, change command to the binary that pip put on your PATH:
{
"mcpServers": {
"opencollab": {
"command": "opencollab-mcp",
"env": {
"GITHUB_TOKEN": "your_token_here"
}
}
}
}Note: if you switch Python versions or virtualenvs, the opencollab-mcp binary may disappear and you'll need to pip install again. uvx avoids this.
</details>
<details> <summary><b>Docker (for remote / streamable-HTTP setups)</b></summary>
docker build -t opencollab-mcp .
docker run -e GITHUB_TOKEN=ghp_xxx -p 8000:8000 opencollab-mcpThe container runs as a non-root user with TRANSPORT=streamable-http on port 8000.
</details>
Open your AI client and ask:
"My GitHub username is `<your-username>`. Find me a good first issue I can pick up."
If the AI runs opencollab_match_me and comes back with a list, you're set.
These are real things the AI can answer once OpenCollab is connected:
The AI picks which tools to call based on what you ask.
<details open> <summary><b>Discovery</b> — find issues to work on</summary>
| Tool | What it does |
|---|---|
opencollab_match_me | Reads your GitHub profile, detects your top language, returns 10 matching good-first-issues — all in one call. |
opencollab_find_issues | Up to 15 recent good-first-issues for a given language. |
</details>
<details open> <summary><b>Evaluation</b> — score a repo before you invest time</summary>
| Tool | What it does |
|---|---|
opencollab_repo_health | 0–100 contributor-friendliness score: activity, PR merge rate, community files, forks. |
opencollab_impact_estimator | Impact tier (LOW → MASSIVE) based on stars + reach, plus a draft resume line. |
</details>
<details open> <summary><b>Issue intelligence</b> — verify and plan a specific issue</summary>
| Tool | What it does |
|---|---|
opencollab_check_issue_availability | Is the issue still open? Assigned? Already has a PR? Checks the timeline so you don't waste a weekend. |
opencollab_generate_pr_plan | Bundles the issue body, comments, CONTRIBUTING.md, and repo layout for the AI to plan a fix. |
</details>
You ask Claude → Claude picks tools → OpenCollab hits GitHub API → JSON back to Claude → Claude answers in plain EnglishA few design choices worth knowing:
match_me, repo_health, generate_pr_plan) fan out their GitHub requests with asyncio.gather, so they're noticeably faster than sequential.extra="forbid". Catches stray fields from LLM-generated tool calls before any logic runs.OpenCollab needs a GitHub token for two reasons:
/timeline, etc.) may not work without it.Scopes needed: just public_repo. OpenCollab never writes anything — it's all reads.
git clone https://github.com/prakhar1605/Opencollab-mcp.git
cd Opencollab-mcp
pip install -e ".[dev]"
export GITHUB_TOKEN="ghp_xxx"
# Run the server (stdio mode, for piping into MCP clients)
python -m opencollab_mcp
# Run the test suite
pytest -v
# Lint
ruff check src tests
# Inspect interactively in the MCP Inspector
npx @modelcontextprotocol/inspector python -m opencollab_mcpsrc/opencollab_mcp/
├── server.py # entry point, transport selection (stdio / streamable-http)
├── github_client.py # cached httpx wrapper, friendly error mapping
├── helpers.py # date math, base64 decode, issue-number parser
├── models.py # Pydantic input models
├── constants.py # scoring thresholds & magic numbers
└── tools/
├── discovery.py # 2 tools — finding issues
├── evaluation.py # 2 tools — scoring a repo
└── issues.py # 2 tools — verifying & planning an issue
tests/ # pytest suiteIssues and PRs are welcome. The codebase is small (~1000 lines) and intentionally easy to read. Every scoring threshold lives in constants.py so tuning is a one-line change. New tools follow the same pattern: a function in tools/<category>.py, a Pydantic input model in models.py, and a test in tests/test_tools.py.
The main branch is protected — please open a PR rather than pushing directly. CI runs on Python 3.10, 3.11, and 3.12.
Already shipped (v0.6.0):
pip install opencollab-mcp / uvx opencollab-mcp)mainOpen ideas:
first_pr_generator — chain match_me + check_issue_availability + generate_pr_plan into one prompttrack_my_prs — list your open PRs with staleness nudgesskill_gap — compare your skills to a repo's tech stack and tell you what to learnIf any of these sound interesting, open an issue — that's the fastest path in.
Earlier versions shipped 22. In practice:
The full 22-tool catalogue still lives on the v1-full branch if you want it.
issue_complexity's code-block scoring, and pointed out that main had no branch protection (which has since been fixed).MIT — built by Prakhar Pandey, IIT Guwahati.
If OpenCollab helps you land your first PR, a ⭐ on the repo would mean a lot.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.