Skip to main content
4 compared

Code search & indexing MCP servers compared

Code-indexing and semantic-search MCP servers that give Claude codebase context, compared on trust, setup, and approach.

Open in the interactive comparison tool
FieldSerena MCP Server for Claude

Serena is an open-source coding-agent toolkit by Oraios that gives Claude semantic, symbol-level code tools backed by language servers, so it can find, read, and edit code precisely instead of pasting whole files.

Open dossier
Code Index MCP Server

Local code indexing MCP server that lets AI assistants search repositories, build symbol indexes, inspect file summaries, monitor changes, and navigate multi-language codebases.

Open dossier
CodeGraphContext MCP Server

MCP server and CLI toolkit that indexes local code into a graph database so Claude can query functions, call chains, dependencies, and repository structure.

Open dossier
ChunkHound MCP Server

Local-first codebase intelligence MCP server that indexes repositories with tree-sitter, stores searchable chunks in DuckDB, and gives Claude semantic search, regex search, daemon status, and deep code research tools.

Open dossier
Trust
Install riskReview firstReview firstReview firstReview first
Notes Safety Privacy Safety Privacy Safety Privacy Safety Privacy
Categorymcpmcpmcpmcp
Sourcesource-backedsource-backedsource-backedsource-backed
AuthorOraiosjohnhuang316CodeGraphContextChunkHound
Added2026-06-032026-06-062026-06-052026-06-06
Platforms
Claude CodeClaude Desktop
Claude CodeClaude Desktop
Claude CodeClaude Desktop
Claude CodeClaude Desktop
Source repo
Safety notesSerena can read and modify files in the project you point it at, including applying symbol-level code edits, so run it on code you can review and version-control. Depending on configuration it can run language servers and execute project commands; only enable it on trusted projects and review its actions. Operate it against a version-controlled working tree so any automated edits can be inspected and reverted through normal diff review.Code Index MCP reads repository files, builds shallow and deep indexes, exposes file summaries, and can return source snippets through search and file resources. Point `--project-path` at one approved repository; avoid broad parent directories, home directories, generated dependency trees, or secret-heavy paths. Deep indexing and watcher refreshes can consume CPU, memory, disk IO, and temp storage on large codebases. The server can create and clear index/cache settings and temporary directories used for stored index data. Search results, file summaries, and symbol bodies can surface credentials, private code, customer data, internal URLs, or proprietary implementation details if they exist in the repository.CodeGraphContext indexes repository contents and can expose code structure, symbols, dependencies, comments, filenames, and relationships to Claude. Live file watching can keep graph data updated as files change, so verify the watched tree before enabling it on private workspaces. External graph databases can retain indexed source metadata after the MCP session ends. Generated graph context may include prompt-injection text from comments, documentation, fixtures, tests, or vendored files. Review database credentials, ignored paths, and repository scope before connecting the server to an MCP client.ChunkHound reads source files, Markdown, text, PDFs, and supported config files under the target directory and stores indexed chunks in a local database. Realtime indexing and daemon mode can continue watching project files after the initial MCP connection. Code research and web search tools require embedding, reranking, and LLM configuration and may invoke local CLIs or external model APIs depending on settings. Exclude generated files, vendored dependencies, secrets, large artifacts, and unrelated repositories before indexing broad workspace roots. Review MCP client configuration carefully when using an absolute project path in a global Claude Desktop config.
Privacy notesProject source code, file paths, and symbol information are read into the model context so Serena can reason about and edit the codebase. Avoid pointing it at directories that contain secrets or private data you do not want surfaced to the model.Tool calls may expose file paths, filenames, source code snippets, imports, classes, methods, functions, symbols, search matches, complexity summaries, and project settings. Index data and temp directories can persist derived repository structure or symbol metadata outside the source tree. File watcher status, exclude patterns, and settings can reveal local project layout and development conventions. If an MCP client forwards tool results to a model provider, repository contents and search snippets may leave the local machine. Exclude secrets, generated artifacts, vendored dependencies, build output, and private data before indexing.Source code, file paths, symbol names, comments, dependency names, call graphs, class hierarchies, search terms, prompts, graph queries, and tool outputs may be visible to the MCP client and model provider. Indexing proprietary repositories can reveal architecture, product plans, credentials accidentally committed to code, internal package names, or security-sensitive paths. If using a remote graph backend, review its authentication, retention, backups, logging, and access controls before indexing private code. Remove or ignore secrets, customer data, generated dumps, logs, and vendor directories before building code graphs for model access.Indexed chunks, file paths, symbols, comments, Markdown, PDFs, configuration values, database files, daemon state, and search results can reveal proprietary source code and internal architecture. Embedding, reranking, LLM, and web search providers may receive code-derived queries or snippets if configured. Local ChunkHound database files, logs, daemon state, and MCP transcripts may retain code-derived context after the session ends. Avoid sharing ChunkHound databases, config files with API keys, verbose logs, research outputs, and screenshots from private repositories.
Prerequisites
  • The uv toolchain installed (provides uvx; install from https://docs.astral.sh/uv)
  • Claude Code or Claude Desktop with MCP support
  • A local project or codebase you want Serena to index and operate on
  • Internet access on first run so uvx can fetch Serena from its Git repository
  • Python 3.10 or newer.
  • uv or another Python package runner that can install `code-index-mcp`.
  • An approved repository path that the MCP client is allowed to inspect.
  • Optional native search tools such as ripgrep, ugrep, ag, or grep for faster search backends.
  • Python 3.10 or newer available for the CodeGraphContext package.
  • A local repository you are allowed to index and share with an MCP client.
  • Optional graph database backend reviewed if you use Neo4j, FalkorDB, KuzuDB, LadybugDB, or another supported backend.
  • Optional SCIP indexers configured if you need more precise language-specific call and inheritance data.
  • Python 3.10 or newer and the `uv` package manager.
  • A local repository or workspace you are authorized to index.
  • ChunkHound JSON config reviewed for database path, excludes, embeddings, and LLM provider settings.
  • Optional embedding provider credentials for semantic search, or regex-only usage when no embedding key is configured.
Install
claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context ide-assistant
uvx code-index-mcp --project-path ABSOLUTE_PATH_TO_REPOSITORY
pip install codegraphcontext
uv tool install chunkhound
Config
{
  "mcpServers": {
    "serena": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/oraios/serena",
        "serena",
        "start-mcp-server",
        "--context",
        "ide-assistant"
      ],
      "type": "stdio"
    }
  }
}
Manual-only setup:
uvx code-index-mcp --project-path ABSOLUTE_PATH_TO_REPOSITORY
{
  "mcpServers": {
    "codegraphcontext": {
      "command": "codegraphcontext",
      "args": ["mcp", "start"],
      "env": {
        "NEO4J_URI": "YOUR_GRAPH_DATABASE_URI",
        "NEO4J_USER": "YOUR_GRAPH_DATABASE_USER",
        "NEO4J_PASSWORD": "YOUR_GRAPH_DATABASE_PASSWORD"
      }
    }
  }
}
{
  "mcpServers": {
    "chunkhound": {
      "command": "chunkhound",
      "args": ["mcp", "/path/to/approved/project"]
    }
  }
}
Citations
ClaimUnclaimedUnclaimedUnclaimedUnclaimed
More comparisons, weekly

A short, calm digest of reviewed Claude resources. Unsubscribe any time.