Code Search MCP server for efficient codebase navigation with semantic search, chunk extraction, and workspace indexing
CodeSearch MCP has 5 tools with complete schema definitions and basic descriptions, but suffers from significant gaps in parameter documentation, output schema specification, error handling guidance, and missing tool annotations. Naming is adequate but descriptions are generic. The server follows a basic MCP structure but lacks the depth required for production-grade agent tooling. Most parameters lack descriptions, and output schemas are undocumented. Error responses are minimal and provide no recovery guidance.
Find code chunks semantically similar to a given chunk
Get the actual code you need to examine
Get the codebase's indexing status
Index all pending files in the workspace
Find relevant code using semantic search
Output schemas completely undocumented. All 5 tools return text responses with no documented structure. LLMs cannot infer what fields to extract or how to chain results to subsequent tools. Critical for the agent's ability to compose tools and interpret results.
Parameter descriptions missing or insufficient. 'id' param in find_similar_chunks lacks description. 'file_types' in semantic_search has minimal description and no guidance on valid values (src, docs, tests). No parameter type hints (min/max for arrays, length constraints, formats). Agents cannot understand what values are valid.
Error handling provides no recovery guidance. Functions return raw errors like 'Search failed: %v' with no actionable guidance. Per pattern:recovery-guide, errors must tell the LLM what to do next (retry, try a different search strategy, check index status, etc.).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). index_workspace modifies state (WRITE risk), but tool definition carries no annotation. Agents cannot determine retry safety or scope constraints without explicit hints.
semantic_search and get_chunk_code descriptions lack depth. 'Find relevant code using semantic search' and 'Get the actual code you need to examine' are 40-50 chars, below the 50-200 char baseline for production tools. No guidance on when to use semantic_search vs find_similar_chunks, what output looks like, or how to interpret chunk IDs in results.
index_workspace runs asynchronously (go s.analyzer.IndexWorkspace(ctx)) but returns immediately with 'Indexing in progress...' No status tracking, no way to wait for completion, no error reporting if indexing fails. Agents cannot know when the index is ready or if background work succeeded.
No pagination or result limits documented. semantic_search and find_similar_chunks may return many results; no limit parameter visible in schema. Per pattern:paginated-result, tools returning lists must support pagination and document max results. The inline constant maxResults=30 is not exposed or documented to the LLM.