Local codebase search, graph exploration, and MCP context packs for coding agents
ctx provides 5 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (ctx_pack, ctx_search, ctx_graph, ctx_map, ctx_index). Descriptions are present but brief (18-50 chars), below the 50-200 char LLM-optimized baseline. Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). Output schemas are not documented, LLMs cannot predict return structure. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles (4 READ_ONLY, 1 WRITE). Composition is sound: each tool has one responsibility, and tool names are distinct.
Query definitions and static relationships
Index a repository into SQLite
Create a deterministic repository map
Build a bounded evidence pack
Search indexed text and symbols
Output schemas not documented. LLMs cannot predict return structure (fields, types, pagination). Breaks downstream tool chaining and forces agents to guess field names.
Descriptions are too brief (18-50 chars, below 50-200 char baseline). 'Build a bounded evidence pack' and 'Query definitions and static relationships' lack context for LLM selection. Missing WHEN to use, prerequisites, and return value hints.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). ctx_index is WRITE (modifies SQLite), ctx_pack/ctx_search/ctx_graph/ctx_map are READ_ONLY, but LLMs cannot see this from the schema. Agents may incorrectly retry destructive operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Parameter constraints missing. 'intent' enum is present in ctx_pack, but 'mode' in ctx_search lacks enum (should be Auto|Text|Symbol|Literal|Regex). 'depth' and 'limit' lack min/max bounds. Free-form strings invite hallucinated values.
No error handling or recovery guidance. If ctx_index fails (permission denied, disk full, corrupted DB), no actionable error message. If ctx_search returns no results, no hint to try broader queries or different modes.