MCP server for searching code declarations and API functions using ctags indexing with SQLite FTS5
Three tools with clear verb-noun naming (search_*, list_*) and reasonable descriptions (100-150 chars). All tools have input schemas with types and descriptions. However, output schemas are completely undocumented, LLMs cannot plan downstream calls or extract structured data. Parameter descriptions lack format constraints, ranges, and examples. No error handling guidance. Missing pagination details despite tools accepting offset/limit. No tool annotations (readOnlyHint). Descriptions are functional but generic, lacking WHEN to use and dependency hints.
List all source files indexed for a specific API.
List all currently indexed API files. Returns a list of API files that have been indexed and are available for searching.
Search for code declarations by name. Returns definitions, declarations, and mentions of the given name.
Output schemas completely undocumented. No description of what fields are returned, their types, or structure. LLMs cannot plan multi-step workflows or extract required data for chaining.
Parameter descriptions lack actionable constraints. 'offset' and 'limit' have no documented ranges (e.g., 'limit: 1-100, default 10'). 'name' parameter in search_declarations has no format guidance (case-sensitive? regex? partial match?).
No error handling guidance. Tools do not document what happens on invalid input (e.g., api_name not found, offset > total results). No recovery hints for LLMs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Tool descriptions lack WHEN to use and dependency hints. 'search_declarations' does not explain when to call it vs 'list_api_files', or that users should call 'list_indexed_apis' first to discover available APIs.
No tool annotations. Tools are marked READ_ONLY in metadata but lack readOnlyHint in schema. Idempotency not declared. LLMs cannot infer safety properties.