MCP server that indexes Go codebases. It parses Go source files and extracts symbols (functions, types, constants, variables) with their line ranges to provide codebase maps for AI assistants.
Single-tool server with a moderately well-named tool ('index') but significant gaps in description detail, parameter descriptions, and output schema documentation. The tool name lacks a clear action verb prefix and describes a specialized code indexing function. Parameter descriptions exist but are generic. No explicit output schema is documented in the code. Error handling guidance is absent. The server handles a narrow, domain-specific use case (Go codebase indexing) but lacks the polish and completeness expected of production-grade tools.
Index a Go codebase and return a compact listing of all symbols (functions, types, consts, vars) with their line ranges.
Tool name 'index' does not start with a clear action verb. Convention suggests 'index_codebase', 'analyze_go_package', or 'list_symbols' to clarify intent for LLMs.
Output schema not explicitly documented. The tool returns a JSON object with PackageIndex structure (nested FileIndex/Symbol objects with named fields), but no schema definition is visible in the MCP tool registration. LLMs cannot plan downstream tool calls or extract fields reliably without knowing the response shape.
Parameter 'filter' description is vague ('Optional path filter to show only a specific package (directory) or file') and lacks format guidance. Should specify: 'relative path prefix (e.g., 'cmd/main', 'internal/auth'); matching is case-sensitive; use forward slashes'.
Parameter 'path' description does not document behavior when directory does not exist, contains no Go files, or has parse errors. No guidance on what constitutes 'success' or how failures are reported.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 40 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
No error handling guidance. Tool description does not explain what happens on invalid paths, parse failures, permission errors, or extremely large codebases. LLMs receive no recovery hints.
Tool description is 154 characters (within 10 - 1024 baseline) but lacks guidance on WHEN to call this tool vs. alternatives, what constitutes a 'compact listing', and what users should expect in terms of performance on large codebases.