AI-powered directory indexing with semantic search for MCP servers
Directory Indexer has 6 tools with mixed quality. Naming follows verb-noun convention (index, search, similar_files, get_content, get_chunk, delete_index) which is good. However, descriptions are terse (10-50 chars), parameter descriptions are sparse or missing, and input schemas lack depth. No output schemas are documented. Error handling is not evident from the provided code. The server implements basic semantic search functionality but falls short of production-grade tool definition patterns.
Delete the index for a directory, removing all associated vectors and metadata
Get specific chunk content from an indexed file
Get file content from indexed files
Index directories for semantic search
Search indexed content semantically
Find files similar to a given file
Tool descriptions are too brief (10-50 characters) and lack actionable context. Current descriptions like 'Index directories for semantic search' and 'Get file content from indexed files' do not explain WHEN to call these tools or what they return.
Parameter descriptions are missing or incomplete. The 'chunks' parameter in get_content is described as 'Chunk range (e.g., '2-5')' but lacks validation rules: what happens if the range is invalid? What is the maximum range? What does a chunk represent?
Output schemas are not documented. The code does not show what fields tools return. For example, 'search' likely returns a list of matching files with scores, but there is no visible schema. LLMs need to know what fields to expect so they can plan downstream tool calls.' This blocks composition and makes chaining uncertain.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 45 | <=2025-11-25 | v2 |
| 2026-03-09 | C | 61 | - | v1 |
delete_index is destructive but has no confirmation step or dry-run option. Agents make mistakes, a confirm_before_execute pattern prevents catastrophic errors.' An agent could accidentally delete an entire index without safeguards.
No error handling guidance visible. Indexing is a complex operation that can fail (file not found, encoding errors, permission denied). There is no evidence of error categorization (retryable vs fatal) or recovery hints. A raw error code or stack trace gives the agent nothing to act on.'
Parameter 'workspace' in search and similar_files is described as 'Optional workspace name to search within' but lacks detail. What happens if the workspace doesn't exist? What are valid workspace names? Is this a required field in practice? Ambiguous descriptions force LLMs to guess.
Tool naming uses underscores (similar_files, get_content, get_chunk, delete_index) which is correct, but there is potential confusion between 'get_content' (retrieve full file) and 'get_chunk' (retrieve by ID). The distinction should be clearer in descriptions, or the tools could be renamed to 'get_file_content' and 'get_file_chunk' for absolute clarity.
Input schema for 'index' specifies 'directory_paths' as an array of strings, but no constraints on array size. Can an LLM pass 1000 directories? What is the maximum? Unbounded numbers let LLMs pass absurd values that break APIs or cause timeouts.'