CodeSeek MCP
A Rust MCP server and CLI with a call graph and hybrid semantic code search for Claude Code and Codex
- 759 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Fragments of your code go to an external embeddings API, and the token sits in the plain file `~/.codeseek/config.json`
- `install` and `install-hooks` edit agent configs and Git hooks, and installation downloads a binary from GitHub Releases
Install
- Works in
Manual install
npm install -g codeseekThe first-run wizard `codeseek` configures the embeddings model and downloads the platform binary.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Fragments of your code go to an external embeddings API, and the token sits in the plain file `~/.codeseek/config.json`
- `install` and `install-hooks` edit agent configs and Git hooks, and installation downloads a binary from GitHub Releases
This is third-party code. Review the repository files before installing.
What it does
CodeSeek indexes a project and tells an agent where a symbol is defined, who calls it and what it calls. `codeseek init` parses sources with Tree-sitter, pulls out functions, classes and methods for seven languages (Rust, Python, JavaScript, TypeScript, Go, C and C++, Java) and builds a call graph. Code chunks are turned into vectors by an external embedding model, and only files whose MD5 hash changed are recomputed. Search blends three sources: dense vector search over LanceDB, sparse BM25 from Tantivy, and graph search. Results are fused with RRF, and a Qwen3-Reranker-4B reranker scores query and code pairs. If the models are unavailable, CodeSeek falls back to graph-based symbol name search and works without a network API. `codeseek install` registers the server in Claude Code and Codex. The agent gets `codeseek_search`, `codeseek_callers`, `codeseek_callees`, `codeseek_callgraph` and `codeseek_status` tools. The same queries run from the terminal, and the `--json` flag gives machine-readable output.
Who it is for. For developers who use Claude Code or Codex in a large Rust, Python, JavaScript, TypeScript, Go, C, C++ or Java repository and want the agent to find code by meaning and see call chains.
Good fit when
- You need to know which functions call `process_data` and what breaks if its signature changes
- You search by a question such as how embedding works, without knowing the function name
- The agent burns tokens reading files and needs exact definition and call sites instead
- The index should refresh on every commit: `codeseek install-hooks` adds Git hooks on `post-commit` and `post-merge`
- You connect one index to both Claude Code and Codex CLI through a shared config in the home folder
Not a fit when
- The project uses a language outside the seven: CodeSeek does not parse PHP, Ruby, C# or Kotlin
- Code must not be sent to an external embeddings API and you have no local model
- The repository is small and plain text search is enough for the agent
- You work on Windows: prebuilt binaries target macOS and x64 Linux
Example request
Show who calls apply_rerank and what it calls itself, two levels deep.MCP
- Transport
- stdio
- Authentication
- API key
Limitations
Prebuilt binaries ship for macOS on arm64 and x64 and for Linux on x64, and everything else must be built from source with `./build.sh --release` and protoc. Semantic search needs an external embeddings model with an OpenAI-compatible API: the sample config uses Qwen3-Embedding-4B on SiliconFlow, and the reranker also calls an external API.
By default `codeseek search` is tuned for symbol names, and in the natural-language example files come back with line number 0. The index lives in `~/.codeseek/<project hash>/`, and the project has no daemon or HTTP server, so several machines cannot share one index. The repository was last updated on 2 August 2026.
How to disable. Run `codeseek uninstall` to drop the MCP registration from Claude Code and Codex. `codeseek uninit` deletes the current project's index, and the Git hooks must be removed by hand in `.git/hooks`. The CLI itself is removed with `npm uninstall -g codeseek`.
FAQ
How do I connect CodeSeek to Claude Code?
Install the CLI with `npm install -g codeseek`, run `codeseek init` in the project root, then `codeseek install`. The entry lands in `~/.claude.json` or the project's `.mcp.json`, and after a restart Claude Code lists the `codeseek_*` tools.
Does CodeSeek need an API key?
Yes, vector search and reranking need a token for an OpenAI-compatible embeddings API. The first-run wizard asks for it and the base URL. Without a token, symbol name search and the call graph still work.
Which languages does CodeSeek understand?
Rust, Python, JavaScript, TypeScript, Go, C and C++, and Java: functions, classes and methods, with a call graph built for all seven.
How do I keep the CodeSeek index fresh after edits?
Running `codeseek init` again recomputes only files with a new MD5 hash. To skip the manual step run `codeseek install-hooks`, and the index refreshes after every commit and merge.
How is CodeSeek different from Serena?
CodeSeek builds its own index and call graph with hybrid search, while Serena talks to LSP language servers and gives the agent IDE-level operations such as renaming and editing symbols.
Discussion
No questions or reviews yet.
Related
MCP serversA local semantic code index: the agent searches by meaning, then follows hits into definitions, callers and dependency paths
A local MCP server and CLI for agents: semantic code search, call graphs and change-impact analysis
CodeGraph (Rust)
codegraph-rust
A Rust code graph for agents: four MCP tools show what an edit will touch, how the architecture fits together and where the fragile spots are
An MCP server that indexes a local repository with tree-sitter and gives the agent code search, file lookup and a structure summary of a file
An MCP server and CLI for code research: search and understand your project and all of GitHub with fewer tokens
Octocode
octocode
Structural and semantic code search with a knowledge graph in Rust, with an MCP mode for agents. Embeddings need keys, so code goes to the provider
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| CodeSeek (this card) | no | API key | 759 | |
| Serena | no | not required | 31,116 | works through LSP language servers and edits code at the symbol level |
| Claude Context | yes | API key | 12,670 | keeps the vector index in Milvus or Zilliz, without a call graph |
README in short
The project is presented as a code analysis CLI that integrates with Claude Code: fast terminal commands and the same features as MCP tools. It installs through npm with a first-run wizard and an automatic download of the platform binary. Model configuration lives in one file shared by all projects.