{"name":"io.github.raymondchins/agentmap","slug":"raymondchins-agentmap","title":null,"description":"The TS/JS-accurate repo map for coding agents: ts-morph import/symbol/call graph + MCP query tools","url":"https://mcp.market/server/raymondchins-agentmap","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"maps","tags":["maps"],"presence":{"score":42,"stars":48,"forks":12,"downloads_week":156,"last_push_at":"2026-09-19T09:32:43.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/raymondchins/agentmap","website":null,"version":"0.22.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@raymondchins/agentmap","version":"0.22.0","transport":{"type":"stdio"},"packageArguments":[{"type":"named","name":"--mcp"}]}],"tools":[{"name":"affected","description":"Which test files cover a source file, following import edges transitively — and, just as usefully, whether ANY do. Answers 'what do I re-run after changing this' before the edit, not after CI. Walks runtime AND type-only edges, so a file imported only via `import type` still reports its covering tests. An empty list is the ANSWER (nothing covers this file), not a lookup failure.","write_action":false,"price_micros":0,"input_schema":null},{"name":"any","description":"Unified router: resolve a query against the repo map (file → symbol → feature) then fall back to a live git-grep for string/copy/data literals. Best default for 'where is X' / reuse-before-rebuild.","write_action":false,"price_micros":0,"input_schema":null},{"name":"callers","description":"Compiler-accurate call graph: every call site that INVOKES a symbol, resolved by the TypeScript language service (not tree-sitter name-matching) — so a type-position mention, a re-export, or a same-named local in another file is never mis-attributed. Symbol-level blast radius: 'who breaks if I change this function'. A deliberate DEEP query — the first call warms the TS type-checker (seconds on a l","write_action":false,"price_micros":0,"input_schema":null},{"name":"calls","description":"Compiler-accurate OUTGOING call graph: every in-project symbol that a given symbol INVOKES, resolved by the TypeScript language service (not tree-sitter name-matching) — callee resolution follows real bindings (imports/re-exports) through to the actual declaration. Answers 'what does this function call / depend on'. node_modules and TS built-ins are excluded; dynamic dispatch and higher-order indi","write_action":false,"price_micros":0,"input_schema":null},{"name":"feature","description":"List all files belonging to a named feature plus its external dependents.","write_action":false,"price_micros":0,"input_schema":null},{"name":"features","description":"List every detected feature (top-level app/ route segment) with its file count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find","description":"Find every symbol whose name matches (substring, case-insensitive) — exported symbols plus non-exported top-level declarations. Use to locate a function/class/type before rebuilding it. A match reached through a re-export barrel carries `definedIn` — the file that actually declares it, resolved by the TypeScript checker through any number of barrel hops — or `external: true` when the origin is out","write_action":false,"price_micros":0,"input_schema":null},{"name":"hubs","description":"List the most important files in the repo by PageRank (the hubs everything imports). Read these first to understand a codebase.","write_action":false,"price_micros":0,"input_schema":null},{"name":"map","description":"Token-budgeted ranked digest of the codebase (PageRank + Aider-style symbol ranking). Optionally focus toward a file and/or set a token budget.","write_action":false,"price_micros":0,"input_schema":null},{"name":"relates","description":"Blast radius for a file: its exports, imports, direct dependents, and the files most related to it by random-walk relevance. Use before editing to see who breaks. `dependents` means 'breaks at RUNTIME'; files that depend on this one only through `import type` are listed separately as `typeOnlyDependents` — they break at COMPILE time when an export is renamed or removed, so check both before a rena","write_action":false,"price_micros":0,"input_schema":null},{"name":"route","description":"Resolve one URL path (e.g. '/dashboard/settings') to the files that serve it, including the layouts it nests under. Use to go from a bug report naming a URL straight to the code. Next.js App Router only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"routes","description":"The Next.js App Router route table: every URL path the repo serves, with the file that serves it. Next.js only — on any other repo this returns an explicit `reason` rather than an empty list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search","description":"Rank symbols by BM25 lexical relevance for a VAGUE natural-language query (e.g. 'where's the auth retry logic', 'the function that dedupes symbols') — where exact `find`/`any` name matching fails. Tokenizes symbol names + path segments + feature + kind, scored by BM25 and fused with file PageRank. Best when you don't know the exact symbol name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbols","description":"Top N globally ranked symbols (Aider-style importance). Defaults to 30.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-24T05:07:16.061Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T05:07:16.060Z","components":{"code":{"score":25,"max":25,"notes":["13 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@raymondchins/agentmap","version":"0.22.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-08-04T15:40:41.514Z","repositoryUrl":"git+https://github.com/raymondchins/agentmap.git","weeklyDownloads":156}],"repo":{"found":true,"owner":"raymondchins","repo":"agentmap","archived":false,"pushedAt":"2026-09-19T09:32:43Z","stars":48,"forks":12,"openIssues":3,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/12913191?v=4","ownerCreatedAt":"2015-06-16T14:24:28Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/12913191?v=4&s=128","source":"github"},"presence":{"stars":48,"forks":12,"downloadsWeek":156,"license":"MIT","lastPushAt":"2026-09-19T09:32:43.000Z","score":42}}}},"grade_history":[],"reviews":[]}