MCP server that helps AI coding agents understand repositories: repo map, code search, and token-aware context packs
Three well-defined read-only tools with complete schemas, clear descriptions, and proper parameter typing. All tools follow verb_noun naming (repo_map, search_code, pack_context). Descriptions are substantive (100-180 chars) and explain WHAT, WHEN, and WHY. Input schemas use Zod with type constraints (min/max for integers, string length). However, output schemas are not documented, LLMs cannot predict response structure. Error handling returns generic text without recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Parameter descriptions are good but could be more prescriptive about formats and constraints.
Pack a token-budgeted markdown bundle of the most relevant source files for an LLM. Prefer entrypoints and paths matching focus keywords. Use for PR review or task kickoff.
Build a lightweight repository map: directory tree, file count, and likely entrypoints/manifests. Use this first to orient before reading files. Honors .gitignore.
Search source files for a substring (case-insensitive by default). Returns path:line hits with surrounding line text. Skips .gitignore and vendor dirs.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Clients must infer from tool behavior.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but LLMs cannot detect this from the schema.
Error handling returns generic 'Error: <message>' text without recovery guidance. LLMs cannot determine if error is retryable or what to do next.
Parameter descriptions lack prescriptive format guidance. E.g., 'root' accepts 'absolute or relative path' but does not specify behavior if path does not exist or is not a directory.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
No pagination support in search_code despite max_results=500 cap. Large result sets could exhaust context window; no cursor or offset for iterating results.