Fossick Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Fossick 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"> <img src="assets/logo.png" alt="Fossick" width="220" />
<h3>Prospect across all of GitHub from your AI agent.</h3>
<p><strong>Find libraries, discover gems, search code patterns, and read real production code — across 200M+ repos, PyPI, and npm.</strong></p>
<p> <a href="https://pypi.org/project/fossick-mcp/"><img alt="PyPI" src="https://img.shields.io/pypi/v/fossick-mcp?color=blue&label=pypi"></a> <a href="https://pypi.org/project/fossick-mcp/"><img alt="Downloads" src="https://img.shields.io/pypi/dm/fossick-mcp?color=blue"></a> <a href="https://github.com/Lipdog/fossick-mcp/actions/workflows/test.yml"><img alt="Tests" src="https://img.shields.io/github/actions/workflow/status/Lipdog/fossick-mcp/test.yml?branch=main&label=tests"></a> <a href="https://github.com/Lipdog/fossick-mcp/commits/main"><img alt="Last commit" src="https://img.shields.io/github/last-commit/Lipdog/fossick-mcp?color=blue"></a> <a href="./LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-green"></a> <a href="https://www.python.org/"><img alt="Python 3.11+" src="https://img.shields.io/badge/python-3.11+-blue"></a> <a href="https://modelcontextprotocol.io/"><img alt="MCP Protocol" src="https://img.shields.io/badge/MCP-1.0-orange"></a> </p>
<p> <a href="https://cursor.com/en/install-mcp?name=fossick&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJmb3NzaWNrLW1jcCJdfQ%3D%3D"><img alt="Install in Cursor" src="https://cursor.com/deeplink/mcp-install-dark.svg"></a> <a href="https://insiders.vscode.dev/redirect/mcp/install?name=fossick&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22fossick-mcp%22%5D%7D"><img alt="Install in VS Code" src="https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white"></a> </p> </div>
fossick /ˈfɒsɪk/ _verb_ (Australian/NZ) — to prospect or rummage for gems, especially the small-scale kind of mining where you sift creek beds and old tailings looking for what bigger operators missed.
That's exactly what this tool does — but for code.
Fossick gives your AI agent seven read-only tools to prospect across all of GitHub, PyPI, and npm, covering the full discovery loop end-to-end:
Useful any time you'd benefit from your agent reaching into the world's largest code corpus:
git clone.It does not do code archaeology — git blame, PR history, version diffs. Reach for git and gh for that.
Once Fossick is connected, here's the kind of thing you can ask your agent.
astral-sh/uv — what's in crates/?"___init__.py from pydantic/pydantic."_Stream class defined in anthropics/anthropic-sdk-python?"_modelcontextprotocol/python-sdk and when did it ship?"_structlog and asyncio?"_tokio::select! being used with timeout cancellation."_uv."_requests library still maintained?"_httpx vs aiohttp — last release dates, recent activity."_msgspec? Show me real usage in production codebases."_polars PyPI package and check its last release."_Prerequisite: uv — install withcurl -LsSf https://astral.sh/uv/install.sh | sh. Thenuvxwill download and run Fossick on demand. No clone needed.
Three install scopes. Pick the one that matches how you want Fossick to be available — globally, shared with your team, or just for you in one project. The scope flag controls where the config gets written (Claude Code MCP scopes).
#### Global (recommended for personal use)
Available in every project on your machine. Stored in ~/.claude.json, private to your user account.
claude mcp add fossick --scope user uvx fossick-mcp#### Team-shared (committed to git)
Stored in .mcp.json at the project root, checked into version control. Anyone who clones the repo gets the same MCP server. Use this when the whole team should have Fossick.
claude mcp add fossick --scope project uvx fossick-mcp#### This project only (default)
Local scope is the default. Only enabled in the current project, only for you. Stored in ~/.claude.json under this project's path — not committed, not shared with collaborators.
claude mcp add fossick uvx fossick-mcp#### Manual install
If you'd rather skip the CLI, write the config yourself. The JSON shape is the same regardless of scope — only the file changes:
~/.claude.json for user / local scope.mcp.json (project root) for project scope{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}<details> <summary><b>Cursor</b></summary>
Or add manually to ~/.cursor/mcp.json or .cursor/mcp.json:
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}</details>
<details> <summary><b>VS Code</b></summary>
Or via CLI:
code --add-mcp '{"name":"fossick","command":"uvx","args":["fossick-mcp"]}'</details>
<details> <summary><b>Claude Desktop</b></summary>
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}Restart Claude Desktop after saving.
</details>
<details> <summary><b>Windsurf</b></summary>
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}</details>
<details> <summary><b>Cline</b></summary>
Edit cline_mcp_settings.json via the Cline extension's MCP settings panel:
{
"mcpServers": {
"fossick": {
"type": "stdio",
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}</details>
<details> <summary><b>Codex</b></summary>
codex mcp add fossick -- uvx fossick-mcpOr edit ~/.codex/config.toml:
[mcp_servers.fossick]
command = "uvx"
args = ["fossick-mcp"]</details>
<details> <summary><b>From source (development)</b></summary>
git clone https://github.com/Lipdog/fossick-mcp.git
cd fossick-mcp
uv syncThen point your MCP config at the local clone:
{
"mcpServers": {
"fossick": {
"command": "uv",
"args": ["run", "--directory", "/path/to/fossick-mcp", "fossick-mcp"]
}
}
}</details>
Seven read-only tools, organized by their role in the discovery workflow.
| Tool | What it does |
|---|---|
| `search_repos` | Discover repositories by topic, stars, language, recency, or trending. Pass multiple query phrasings in one call for better recall. |
| `search_packages` | Direct lookup on PyPI or npm by package name. Returns version, description, links, and GitHub repo URL. |
| Tool | What it does |
|---|---|
| `repo_tree` | Browse a repo's file layout with depth and glob filtering. |
| `get_file` | Read any file at any branch, tag, or commit. |
| `find_symbol` | Goto-definition via real AST queries — find where a class, function, or type is actually declared, not just substring-matched. |
| `list_tags` | View tags and recent releases. The fastest "is this still maintained?" check. |
| Tool | What it does |
|---|---|
| `search_code` | Full-text search across every public file on GitHub. Supports repo:, language:, path:, boolean operators, and regex. Find real-world usage patterns, config examples, or anything else in the world's largest code corpus. |
All tools are read-only, idempotent, and safe to auto-approve. Every response ends with hint-chained next steps so the agent knows what to do next.
search_repos accepts a list of phrasings in one call and applies composite relevance ranking that prioritizes literal match over raw popularity — surfaces the 500-star gem that beats the 50,000-star incumbent.<details> <summary><b>Do I need a GitHub token?</b></summary>
Yes — without one you'll hit GitHub's 60-requests-per-hour unauthenticated limit almost immediately. The easiest path is to install the GitHub CLI and run gh auth login once. Fossick picks up your token automatically. No need to pass anything in the MCP config.
</details>
<details> <summary><b>Why <code>uvx</code> instead of <code>pip install</code>?</b></summary>
uvx runs Fossick in a transient, isolated environment without polluting your global Python. It downloads on first use, caches for subsequent runs, and updates effortlessly. You also don't need to manage a virtualenv or worry about Python version conflicts. If you'd rather use pip, pip install fossick-mcp works — just point your MCP client at the installed fossick-mcp binary.
</details>
<details> <summary><b>Does Fossick use my GitHub API quota?</b></summary>
Yes. Every search, file fetch, and tag list counts against your token's rate limits. Fossick splits requests across two buckets — Search API (30/min) and Core API (5,000/hr) — and pauses automatically when either is exhausted. For most discovery sessions you'll never hit the limits.
</details>
<details> <summary><b>Will it work with MCP client X?</b></summary>
If your client supports the standard MCP stdio transport, yes. The standard uvx fossick-mcp config works in Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Cline, Codex, and most others. See the Installation section for client-specific snippets.
</details>
<details> <summary><b>Does Fossick search private repos?</b></summary>
Only those your GitHub token can access. The token's permissions are the only constraint — Fossick doesn't have its own ACL layer. If your token can read a private repo, Fossick can search it; if not, it can't.
</details>
<details> <summary><b>Why doesn't it do <code>git blame</code> / PR history / version diffs?</b></summary>
Deliberate scope decision. Code archaeology (who changed what, why, when) is a different shape of problem and is well-served by git and the gh CLI. Fossick stays focused on the discovery workflow — finding and evaluating, not investigating.
</details>
<details> <summary><b>How fresh is the data?</b></summary>
Live from GitHub on every request. Fossick caches results briefly to avoid hammering the API on repeated identical calls, with longer TTLs for content pinned to a specific commit SHA. Anything past the TTL is a fresh fetch.
</details>
Fossick resolves a GitHub token automatically:
GH_TOKEN, GITHUB_TOKEN, or GITHUB_PERSONAL_ACCESS_TOKEN env varsgh auth token from the GitHub CLI — no config needed if you're already logged inTo pass a token explicitly:
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"],
"env": { "GITHUB_TOKEN": "ghp_your_token_here" }
}
}
}A token only needs public repo read access (no scopes selected is fine).
Fossick tracks both GitHub API buckets and pauses automatically when either is exhausted.
| Bucket | Limit | Tools |
|---|---|---|
| Search API | 30 req/min | search_repos, search_code, find_symbol |
| Core API | 5,000 req/hr | get_file, repo_tree, list_tags |
| External | No GitHub limit | search_packages (hits PyPI/npm directly) |
Retries use exponential backoff on rate-limited and transient errors. Results are cached briefly to avoid redundant API calls, with longer TTLs for content pinned to a specific commit SHA.
git clone https://github.com/Lipdog/fossick-mcp.git
cd fossick-mcp
uv syncLaunch the MCP server on stdio (for manual testing or local MCP-client config):
uv run fossick-mcpUnit and registration tests — no network, runs in seconds:
uv run pytestLive integration tests — hits real GitHub against pinned modelcontextprotocol/[email protected]:
uv run pytest -m liveuv buildProduces dist/fossick_mcp-<version>.tar.gz and the corresponding wheel.
See CLAUDE.md for the full architecture tour, key patterns, and the recipe for adding new tools.
<a href="https://star-history.com/#Lipdog/fossick-mcp&Date"> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Lipdog/fossick-mcp&type=Date" width="600" /> </a>
MIT — fossick away.
<!-- mcp-name: io.github.Lipdog/fossick -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.