Local MCP server that gives AI coding agents on-demand, always-fresh structural queries over your codebase.
RepoMapper demonstrates solid tool design with 12 well-named, verb-prefixed tools (repomapper_*) covering code intelligence tasks. All tools have descriptions (avg ~120 chars) and explicit input schemas using Zod. However, output schemas are not documented in the visible code, and several parameter descriptions lack actionable detail (e.g., 'Max results, default 100' without explaining what constitutes a 'result'). Error handling is minimal, no recovery guidance or categorization visible. Tool composition is strong: each tool has a single responsibility, and chaining is supported via consistent path/file parameters. Security is appropriate for a read-only local tool.
Return project name, tech stack, features, entry points, important files and scripts. 返回项目名称、技术栈、功能、入口文件、重要文件和脚本。
Return files that import a file (fan-in). 返回 import 某个文件的文件(fan-in)。
Return a file's exported symbols, internal symbols (with line numbers), file-level dependencies/dependents, and calls/calledBy for TS/JS exported functions with call-site line numbers. 返回文件的导出/内部符号(含行号)、文件级依赖/反向依赖,以及 TS/JS 导出函数 calls/calledBy(含调用点行号)。
Search file CONTENT by literal or regex; returns path + line + matching line. Use for strings, constants, env vars, routes, TODOs — anything not locatable by filename or symbol. 在文件内容中搜索字面量或正则,返回 path+line+匹配行。
Return the most depended-on modules. 返回被最多文件依赖的模块。
Return direct and transitive dependents of changed files. Reports totalImpacted/levelTotals; use limit/minDepth for large results. 返回变更文件的直接和传递反向依赖,带 totalImpacted/levelTotals。
Output schemas not documented. Tool descriptions state what is returned (e.g., 'returns path + line + matching line') but formal output schema definitions are absent from visible code. LLMs cannot plan downstream tool calls or extract structured fields without documented return types.
Parameter descriptions lack actionable constraints. 'Max results, default 100' does not explain what a 'result' is (file? symbol? line?). 'Traversal depth, default 2' omits minimum/maximum bounds. LLMs cannot validate inputs without explicit ranges and format rules.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2025-06-18+ | v2 |
Return files imported by a file (fan-out). 返回某个文件 import 的文件(fan-out)。
Find how a change in `from` propagates to `to`, returning shortest dependency chains (along importedBy). Answers "why does changing A affect B, and through what path". 查找 from 的变更如何传导到 to,返回最短依赖链。
Explicitly apply pending watcher changes and return the refreshed index status. 显式刷新 watcher 待处理变更,并返回刷新后的索引状态。
Search files, directories or exported symbols by picomatch glob or keyword. For searching file CONTENT, use repomapper_grep instead. 按 glob 或关键词搜索文件、目录或符号;搜代码内容请用 repomapper_grep。
Return indexed file/symbol/edge counts, timestamps, pending changes and a machine-readable nextAction (none | call_refresh). 返回索引规模、时间戳、待处理变更,以及可程序化判断的 nextAction(none | call_refresh)。
Return the directory tree of the repo or a subdirectory. 返回仓库或指定子目录的目录树。
No error handling or recovery guidance visible. Tools return results or fail silently. No categorization of errors as retryable, user-fixable, or fatal. No guidance on what to do if a file is not found, a pattern matches nothing, or an index is stale.
Pagination parameters (limit, offset) present in repomapper_imports and repomapper_dependents but no total count or next_cursor returned. LLMs cannot determine if results are truncated or plan multi-page fetches.
Tool descriptions mix English and Chinese, reducing clarity for non-bilingual LLMs. Descriptions should be in a single language for consistent parsing and intent inference.