codesearch 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).
Metadata
Release files for skdev-codesearch-mcp 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| skdev_codesearch_mcp-1.0.1.tar.gz | 100.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| skdev_codesearch_mcp-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 214.9 kB
Release files / skdev_codesearch_mcp-1.0.1.tar.gz
| Download URL | skdev_codesearch_mcp-1.0.1.tar.gz |
|---|---|
| Size | 100.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5bd1904ba08b0ce6a0fcaf2d848b3ebe41651fd20af26011b30e3cc1c4c7336b
|
|
BLAKE2b-256 checksum How to use checksums |
58ddd7a1e3cb36403f31a667f39a66e5e1129f8be9e7307bf6ca86c850f15f31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / skdev_codesearch_mcp-1.0.1-py3-none-any.whl
| Download URL | skdev_codesearch_mcp-1.0.1-py3-none-any.whl |
|---|---|
| Size | 114.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1a4aa169f99d18404650241f8889cefc0f2d264b937b3ec634b4bbea739a6bb
|
|
BLAKE2b-256 checksum How to use checksums |
dd293e52e5dea41b398055b697ffa66fe2b3fe2958b4f9b520e018d81a439c92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Security for skdev-codesearch-mcp 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.