Codebase insight engine using RAG with code citations. Provides MCP server for semantic search and question-answering over Git repositories with vector indexing and hybrid retrieval.
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling. Tool names follow verb_noun convention (ingest_repo_tool, search_code, ask_repo), which is good. However, descriptions are minimal (34-72 chars, below the 194-char baseline), parameter descriptions are sparse or missing, and output schemas are not formally documented. No error handling guidance, no input validation hints, and no security considerations visible. The tools perform RAG operations on code repositories but lack the depth of documentation expected for production use.
Answer a question about the repo using RAG and return citations.
Clone/update a repository and build a vector index for it.
Semantic search over repo chunks. Returns file/line ranges and text.
Parameter descriptions missing or incomplete. 'repo_url' appears in all three tools but has no description explaining what format is expected (HTTPS URL? SSH? GitHub-only?). 'query' and 'question' lack guidance on length, complexity, or expected format.
Output schemas not formally documented. Tools return JSON strings (search_code returns array of hit objects, ask_repo returns answer+citations dict), but the schema structure is not declared in tool metadata. LLMs cannot plan downstream operations without knowing response field names and types.
No error handling or recovery guidance. If a repo URL is invalid, a clone fails, or the index is missing, the tools will error without telling the LLM what to do next. No distinction between retryable (network timeout) and user-fixable (invalid URL) errors.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Tool descriptions are too brief (34-72 chars vs. 194-char baseline). 'Clone/update a repository and build a vector index for it' lacks context on when to call this tool, what prerequisites exist (git installed?), or what happens to the index. LLMs cannot reliably select the right tool with such sparse descriptions.
No input validation constraints visible. 'top_k' defaults to 8 but has no min/max bounds. 'repo_url' accepts any string with no format validation. LLMs will pass invalid values (negative top_k, malformed URLs) without guidance on acceptable ranges.