Local semantic code search MCP server for Claude Code
This server provides 5 well-intentioned semantic code search tools with clear verb-noun naming (index_project, search, list_indexed_projects, get_symbol_graph, get_file_chunk). However, it has significant gaps in schema completeness, parameter documentation, and output schema clarity. All tools have descriptions (194-char average baseline met), but parameter descriptions are minimal or missing, and return types are not documented. The server assumes ChromaDB and tree-sitter knowledge from readers. Input schemas are partially present but lack detailed type information for some parameters (e.g., 'limit' has no min/max constraints, 'query' has no format guidance). No error handling patterns are visible in the provided code excerpt, no recovery guidance, no categorization of error types, no actionable error messages.
Get the raw content and metadata of a specific code chunk by ID.
Get the symbol dependency graph for a file. Shows function/class definitions and their relationships.
Index a project directory for semantic search. Creates embeddings for all code files and stores them in a ChromaDB collection. Supports incremental re-indexing with change detection.
List all currently indexed projects and their metadata.
Search indexed code using hybrid BM25 + semantic search. Returns ranked results with context lines and symbol information.
Output schemas undocumented. The code provides tool definitions but does not declare what fields each tool returns. LLMs cannot plan downstream calls or extract context without knowing the response shape.
Parameter descriptions are minimal or missing. 'query' (search) lacks guidance on format, is it natural language, regex, or code syntax? 'limit' (search) has no min/max constraints. 'file_path' (get_symbol_graph) lacks clarity on relative vs absolute paths.
No error handling guidance. The code snippet does not show error response patterns, recovery guides, or error categorization (retryable vs fatal). Agents will not know whether to retry on failure or ask the user.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No pagination support on list_indexed_projects. If a user indexes many projects, returning all at once will bloat responses. Should support limit and offset/cursor.
Parameter 'force' (index_project) defaults to false implicitly but is optional. No guidance on when to set true, when should an agent force re-indexing?
list_indexed_projects takes no parameters but offers no discovery output structure. Response should include project_path, index_status, last_indexed_at, file_count for downstream planning.