A codebase semantic indexing server that uses AST (Abstract Syntax Tree) analysis to index code symbols and dependencies for semantic RAG applications
This server has a single tool (index_codebase) with critical definition quality issues. The tool has a minimal description (87 chars, acceptable range), but no input schema documentation. The source code shows only a mock implementation returning hardcoded values, not a real MCP tool registration. The client.py file contains a simple Python class method, not MCP tool definitions. There is no evidence of MCP protocol implementation, schema registration, or proper tool metadata. The server appears to be a standalone Python utility, not an MCP server.
Index a codebase using AST analysis with configurable chunking strategy to extract symbols and dependency edges for semantic RAG
No input schema visible in source code. The tool has parameters (repo_root_dir: string, chunk_strategy: string with default) but no JSON Schema definition, type constraints, or parameter descriptions. Per HARD SCORING RULES, schema score must be 0.
No MCP tool registration detected. The source code shows a Python class method (CodebaseSemanticRagAstIndexerClient.index_codebase), not an MCP-compliant tool definition. There is no evidence of tools list, inputSchema objects, or MCP server initialization. Cannot verify the server is actually an MCP server.
Parameter 'chunk_strategy' lacks description and constraint documentation. The parameter has a default value ('AST_FUNCTION_BOUNDARY') but no enum definition, format spec, or explanation of valid values. Baselines require 100% of A+ tool params to have descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
Parameter 'repo_root_dir' lacks description. No guidance on expected format, whether relative or absolute paths are accepted, validation rules, or error handling if directory does not exist.
Output schema not documented. The tool returns a dict with keys 'indexed_symbols_count', 'dependency_edges', 'index_health', but there is no documented schema describing field types, meaning, or when to use each field. Baselines require 100% of A+ tools to have documented return types.
No error handling guidance. The tool description does not explain what errors are possible (invalid path, permission denied, AST parsing failure), how to recover, or whether failures are retryable. Pattern:recovery-guide requires error responses to tell the LLM what to do next.
No validation of chunk_strategy enum. If an LLM passes an invalid strategy, there is no enum constraint to prevent it, and no error message to guide recovery. Baselines require enums for parameters with known value sets.
Tool name 'index_codebase' is acceptable but description could be more precise about WHEN to use this tool vs. similar analysis tools. Current description lacks dependency hints (e.g., 'Call this before semantic_search_codebase to enable vector retrieval'). Baseline descriptions are 194 chars; this one is 87 chars (within range but minimal).