Code Index MCP
Local code search, file discovery and symbol summaries for a repository on your machine
Local code-signature index for a repository, served to coding assistants as on-demand MCP tools
By Manoj Mallick (individual) JavaScript Local · stdio Developer tools
59 popularity score ★ 646 ↓ 884/wk
Opens the app, which asks before it adds the server.
claude mcp add sigmap -- npx -y sigmap --mcp{
"mcpServers": {
"sigmap": {
"command": "npx",
"args": [
"-y",
"sigmap",
"--mcp"
]
}
}
}{
"mcpServers": {
"sigmap": {
"command": "npx",
"args": [
"-y",
"sigmap",
"--mcp"
]
}
}
}{
"servers": {
"sigmap": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"sigmap",
"--mcp"
]
}
}
}[mcp_servers.sigmap]
command = "npx"
args = ["-y", "sigmap", "--mcp"]gemini mcp add --scope user sigmap npx -- -y sigmap --mcpOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
git clone https://github.com/manojmallick/sigmap.gitclaude mcp add sigmap -- node '<ABSOLUTE_PATH_TO_CLONE>/gen-context.js' --mcp{
"mcpServers": {
"sigmap": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/gen-context.js",
"--mcp"
]
}
}
}{
"mcpServers": {
"sigmap": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/gen-context.js",
"--mcp"
]
}
}
}{
"servers": {
"sigmap": {
"type": "stdio",
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/gen-context.js",
"--mcp"
]
}
}
}[mcp_servers.sigmap]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/gen-context.js", "--mcp"]gemini mcp add --scope user sigmap node -- '<ABSOLUTE_PATH_TO_CLONE>/gen-context.js' --mcpSigMap is a command-line tool that scans a repository and writes a compact map of its function, class and method signatures, with line anchors, for AI coding assistants. Started with `--mcp`, it becomes a stdio MCP server that answers questions about that map on demand instead of pasting the whole codebase into the conversation.
The tools rank files for a task, search signatures, fetch an exact line range, show which files and functions are affected when a file or symbol changes, summarise uncommitted changes with their blast radius, and check a code suggestion against symbols that really exist in the repo and in installed libraries. Other tools compress long logs or stack traces, recall a project decision log, report how many tokens SigMap has served in the session, and let the assistant tell the index about files it has just created or deleted.
Since the `mcp.tools` key arrived in the project config, you can trim what a client sees. Leave it out and all 22 tools are listed. Set it to `"core"` and you get seven (`query_context`, `read_context`, `get_callee_signatures`, `get_lines`, `get_impact`, `get_method_impact`, `verify_suggestion`), or give an array of tool names. A tool the profile hides is refused if called, and a value it cannot parse falls back to all tools rather than failing (src/mcp/profile.js, src/mcp/server.js at v8.82.0). There is also a 23rd tool, `log_session_usage`, which no profile includes: it appears only when `session.mcpCapture` is on.
Everything runs on your machine with no embeddings, vector database or LLM calls, and the package declares no runtime dependencies. The npm package also installs `gen-context` and `gen-project-map` programs.
| Runtime | Node.js 18+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| Also |
|
A standalone binary for macOS, Linux x64 or Windows x64 replaces Node.js. Run `npx sigmap` in the repository once so the context files the tools read exist. `get_map` needs `gen-project-map` to have been run. `create_checkpoint` and `get_diff_context` use git when the folder is a git repository.
Serves the project in the directory it is started in, not a path given per call. `get_lines` refuses paths outside the project root. `query_context` returns 10 files by default, at most 25 with `topK`; `read_memory` returns 10 notes by default, at most 50 with `limit` (src/mcp/handlers.js). Ruby, R, Lua, Elixir, C/C++ and config formats are listed without line anchors, as the README notes. `read_context` keeps serving the old context file until it is regenerated. The docs' sample config runs `node /absolute/path/to/your/project/gen-context.js --mcp`, which assumes a copy of the script in the project; with the npm package use `npx -y sigmap --mcp`.
Developers using Claude Code, Cursor, Codex CLI, OpenCode or another MCP client on a mid-sized or large repository who want the assistant to look up signatures, line ranges and change impact instead of reading whole files, offline and with no API keys. The `core` profile suits clients where tool definitions eat into a small context. It is less useful for repos mostly in languages it indexes without line anchors, for search by meaning rather than names (it ranks by keywords and symbols, not embeddings), or for anyone who wants the server to edit code: it reads the project and writes only its own index files.
19 only read, 4 change things. A ? marks an optional parameter.
read_contextmodule?: stringsearch_signaturesquery: stringget_maptype: enumcreate_checkpointnote?: stringget_routingexplain_filepath: stringlist_modulesquery_contextquery: stringtopK?: numberget_method_impactsymbol: stringdirection?: enumdepth?: numberget_impactfile: stringdepth?: numberget_linesfile: stringstart: numberend: numberread_memorylimit?: numberget_callee_signaturessymbols: arraysigmap_notify_file_created changespath: stringcontent?: stringsigmap_notify_symbol_added changessignature: stringfile: stringline?: numbersigmap_notify_file_deleted changespath: stringget_diff_contextbase?: stringstaged?: booleandepth?: numberget_architecture_overviewverify_suggestioncode: stringsqueeze_outputcontent: stringget_budgetsession?: stringbudgetTokens?: numberquery_knowledge_maplibrary?: stringfile?: stringenv?: stringlog_session_usage changesid?: stringmodel?: stringusage?: object