About codesearch
codesearch is an MCP server for developers researching code, packages, documentation, vulnerabilities, and academic papers. Its 17 tools combine package and repository navigation with multi-source search, deduplication, and optional local reranking.
Key features
- 0117 tools for code and research search
- 02Package source navigation for npm, PyPI, and crates
- 03Repository analysis, code search, and architecture Q&A
- 04Package metadata, dependency, and vulnerability checks
- 05Documentation, community, and academic paper search
- 06Deduplication and optional local reranking
Use cases
- 01Explore an unfamiliar GitHub repository
- 02Find symbols or files in a dependency
- 03Review package upgrades and vulnerability advisories
- 04Research technical questions across docs and papers
MCP support
Exposes 17 search and analysis tools to MCP clients over stdio. The tools cover repositories, packages, documentation, community sources, vulnerabilities, and papers.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx skdev-codesearch-mcpGROQ_API_KEYSSecretOptional. Groq keys for synthesis and query rewriting.TAVILY_KEYSSecretOptional. Tavily search lane.NV_KEYSecretOptional. NVIDIA embeddings for ranking.SE_KEYSecretOptional. Stack Exchange key (10k/day instead of 300).S2_KEYSecretOptional. Semantic Scholar key (1 RPS).Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
17Saved tool list · updated 6d ago
This tool takes no parameters.
Details
From the project READMEcodesearch MCP Server
mcp-name: io.github.SK-DEV-AI/codesearch
·
npx skills add SK-DEV-AI/skills
Code, package, docs, and paper search MCP server. Per-package source navigation (npm/PyPI/crates), per-repo intelligence (GitHub URL or owner/repo), Q&A communities, vulnerability data, documentation, and academic papers — with embedding dedup and a local cross-encoder reranker.
Tools (17)
- analyze — Start here for unfamiliar repos: GitHub metadata + code quality + wiki architecture in one call (10–15s).
- search_all — Broad multi-source discovery (Context7, GitHub, DeepWiki, CodeWiki, SO, HN, Libraries.io, npm, DevDocs, Semantic Scholar, Tavily…). For surgical single-source work call the tool below directly.
- code_search — Search code/docs/symbols across indexed dependencies (
target=npm:express). npm/PyPI/crates only — for GitHub repos usesearchcodeoranalyze. - code_files / code_read — List files / read a file in an indexed dependency by package spec.
- searchcode — Per-repo intelligence:
analyze(overview),search(code within the repo),findings(quality issues),file_tree,get_file. Needsrepositoryfor every action. Free, no auth. - wiki — Repo architecture Q&A via DeepWiki + CodeWiki. Single repo (
owner+repo) or up to 10 repos (repos). - search_package — Raw registry queries: versions, dist-tags, deps.dev graphs, advisories (
version='latest'OK). For composite intelligence usepkg. - pkg — Composite package intelligence: metadata, changelog, upgrade review (vulns + changelog + deps diff), file list/read.
- search_libraries — Libraries.io metadata and source rank. Compare dependency candidates, find the repo behind a package.
- vulns — Sonatype Guide + keyless OSV.dev fallback:
scan(needs platform+name+version),detail(needs vuln_id; enriched with NVD CVSS/CWE/references),latest_version/license(need purl). - docs — Docs with smart fallback (Context7 → ReadTheDocs → llms.txt → DevDocs); then
fetch(url)ordevdocs_fetch_contentfor full pages. - so_search — Stack Overflow:
stackexchange(authoritative resolved answers) orsofa(fresher agent content, needsSOFA_KEY). - hn — Hacker News discussion and sentiment (search, stories, items, users).
- papers — Academic papers. Prefer
action=search(S2 → arXiv → OpenAlex → CORE fallback chain);arxiv_searchis single-source and rate-limited. - enrich — Fetch full content for a result list from any search tool, dedup + rerank.
- ping — Connectivity check. Use before expensive calls when uncertain.
Setup
Requires Python 3.14+.
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp run.example run # fill in your API keys (run is gitignored — never commit it)
chmod +x run
Point your MCP client at run (stdio):
{ "codesearch": { "command": "/path/to/codesearch/run" } }
API keys (run)
| Key | Used for | Required? |
|---|---|---|
GITHUB_TOKEN | GitHub API (repo ops, higher rate limits) | Recommended |
CONTEXT7_API_KEY | Context7 docs | Optional |
TAVILY_KEYS | Tavily lane in search_all | Optional |
S2_API_KEY | Semantic Scholar (1 rps dedicated vs shared anonymous pool) | Optional |
SE_API_KEY / SOFA_KEY | Stack Exchange / Stack Overflow for Agents | Optional |
LI_KEY | Libraries.io | Optional |
OSS_TOKEN | Sonatype OSS Index | Optional |
FIRECRAWL_KEYS | Firecrawl fallback | Optional |
NV_KEY | NVIDIA embedding endpoint | Optional |
Install from PyPI
pip install skdev-codesearch-mcp # core install, small
pip install skdev-codesearch-mcp[all] # + browser/OCR/extract extras (multi-GB)
The codesearch-mcp console script speaks MCP over stdio:
{ "codesearch": { "command": "codesearch-mcp" } }
Docker
docker build -t codesearch-mcp .
docker run --rm -i codesearch-mcp
Keys are passed at run time, never baked in: -e GROQ_API_KEYS=....
Heavy extras: docker build --build-arg EXTRAS="[all]" -t codesearch-mcp .
Notes
- Reranker (optional, local): shared with the websearch server — one cross-encoder worker over a Unix socket. Without it, results return unranked; everything still works.
- Caching: per-source file caches with TTLs; repeat queries are cheap.
- Safety: all user-URL fetches are SSRF-validated (private-IP blocking + redirect-hop revalidation).
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.