All of open source at your agent's fingertips.
A remote MCP server over the entire Code Genome corpus, growing to encompass all the world's provably used open-source code. Your agent navigates and reads it all as if every project were fully resolved in an IDE it could explore. Try any tool below, then connect your agent in one line.
Connect your agent
Which agent are you using?
Run in your terminal
claude mcp add --scope user --transport http codegenome https://api.codegenomeproject.org/mcpOr add to .mcp.json in your project root
{
"mcpServers": {
"codegenome": {
"type": "http",
"url": "https://api.codegenomeproject.org/mcp"
}
}
}Endpoint: https://api.codegenomeproject.org/mcp. Clients run the OAuth flow on first call — no token or header to paste.
The MCP tools
The exact tools your agent gets, with the exact descriptions it reads — pick one, then run it against the public corpus and read exactly what comes back to your agent. The find_* and usage_examples tools resolve through the corpus’s type tables, so they catch what a grep or a docs pipe can’t.
Search code
search(query, package?, language?, limit?, after?, require_complete?, context?, output_mode?)Search the source code of open-source packages published to Maven Central, npm, PyPI and NuGet, across the whole Code Genome corpus or within one package. Queries match text, regular expressions and code shapes, and also resolved types: call: and ref: find real calls and uses, never lookalike names in comments or strings.
For common lookups the dedicated tools are simpler: find_methods for the calls of a method, find_types for the uses of a type, find_implementations for subtypes and usage_examples for typical calls. Use search_sql to count, group or join results, and fetch_file to read more of a file.
Query syntax:
- Words must all appear; combine terms with OR, NOT and parentheses. "an exact phrase", /a regex/, case:no to ignore case.
- file:src/main filters by path and lang:java by language; select:file returns files without their lines.
- call:java.util.List.add finds calls, ref:java.util.List uses of a type, sym:Name declared names. implements:, extends:, annotated:, returns: and throws: find declarations.
- dependency:guava or dependency:com.google.guava:guava:29.x finds code that uses a dependency.
- struct:"catch (:[type] :[e]) { }" finds a code shape, where :[name] matches balanced text.
Results group files under package lines and number each line, marking a match with :. Pages hold limit files; pass nextCursor as after for the next. The first lines say how much of the scope the corpus holds and why a page may be incomplete. More syntax and examples: resource codegenome://search/query-guide.
One package version to search, by its coordinate: `org.slf4j:slf4j-api:2.0.17` for Maven, `npm:@nestjs/core@10.3.0`, `requests==2.31.0` for PyPI or `Newtonsoft.Json/13.0.1` for NuGet. Leave out the version to search every version of the package. Omit to search the whole corpus.
Only files in these languages.
Lines to show before and after each match. 0 shows matching lines alone.
Return an error instead of a page that is not the whole answer: when the corpus does not yet hold all of the scope, more pages remain, the query raised warnings, or a file reached the per-file match limit.