
codeintel
by phuongddx
codeintel
<!-- mcp-name: io.github.phuongddx/codeintel -->Local-first code intelligence for coding agents. Precomputed SCIP navigation (go-to-definition, find-references, call hierarchy, document symbols), Zoekt lexical search, cross-repo blast radius, and semantic search — exposed as MCP tools to Claude Code, Cursor, or any MCP client.
Runs as a single stdio process reading local SQLite files. No server, no auth, no network, nothing leaves your machine.
# 1. External indexer binaries (scip, zoekt, per-language indexers)
curl -fsSL https://raw.githubusercontent.com/phuongddx/codeintel/main/setup.sh | sh
# 2. codeintel itself
uv tool install codeintel-mcp
# 3. Index a repo (slug defaults to the directory name)
codeintel index /path/to/your/repo
# 4. Register with Claude Code
claude mcp add codeintel --scope user -- codeintel-server
That's it — ask your agent "find all references to AuthService" and it will
call findReferences instead of grepping.
{
"mcpServers": {
"codeintel": {
"command": "codeintel-server"
}
}
}
If your client can't find codeintel-server on PATH (GUI apps often don't
inherit your shell's), use the absolute path from which codeintel-server.
git clone https://github.com/phuongddx/codeintel && cd codeintel
uv sync
claude mcp add codeintel --scope user -- uv --directory "$(pwd)" run codeintel-server
</details>
MCP tools
| Tool | What it does |
|---|---|
goToDefinition | Resolve a symbol to its defining file and range |
findReferences | Every occurrence of a symbol across the indexed repo |
callHierarchy | Incoming/outgoing calls for a symbol |
documentSymbols | Outline of every symbol defined in one file |
searchCode | Zoekt lexical/regex search, optionally filtered to one repo |
semanticSearch | Natural-language search — vector hits fused with Zoekt via reciprocal rank fusion |
blastRadius | Which other indexed repos depend on a package, up to 2 hops |
getIndexStatus | Published commit, freshness, staleness vs. a working tree |
typeHierarchy | Supertypes/subtypes — currently non-functional, see limitations |
Every nav tool takes repo (the slug from codeintel index) plus a
tool-specific symbol or path. All tools report failure the same way — a
{"error": "..."} payload rather than a transport-level error, so a query bug
never kills the stdio server.
Requirements and limits
Read this before installing — codeintel is deliberately narrow.
-
macOS and Linux only. Windows is not supported.
-
One language per repo. Language is detected by extension plurality across git-tracked files; a polyglot monorepo gets indexed as whichever language has the most files. Multi-language merge is out of scope. Override with
--language. -
Four language families: TypeScript/TSX, Python, Java/Kotlin, Swift. Rust, Go, C/C++, C#, Ruby, and PHP are not supported.
-
Navigation and search only — codeintel never edits code. If you want an agent that can perform semantic renames and refactors, you want Serena; the two are complementary.
-
Indexing is a separate, explicit step. Nothing is live-analyzed. Run
codeintel index(orcodeintel watch) to publish an index before querying. -
Requires external binaries that
setup.shinstalls:Purpose Binary Source SCIP → SQLite conversion scipprebuilt, pinned v0.9.0(minimum — older versions silently drop occurrence ranges)Lexical search zoekt-index·zoekt-webservercross-compiled by our CI — upstream publishes no binaries TypeScript indexing `scip-typesc
Related servers

n8n
by n8n-io
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

@modelcontextprotocol/server-everything
OfficialMCP server that exercises all the features of the MCP protocol

@modelcontextprotocol/server-filesystem
OfficialMCP server for filesystem access