repo2graph
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| repo_mapA | Retrieve a high-level structural map of the repository: languages, hub files, and top entry points. Read-only, deterministic, zero side effects. When to use: call this first at session start to understand codebase layout and identify entry points before detailed queries. Use when deciding where to investigate. When NOT to use: do not use to search code (use repo_search) or inspect call graphs (use repo_neighbours). Output: markdown summary of languages, hub files, and entry points, prefixed with a staleness note when the indexed working tree has changed since the index was built -- treat citations as suspect until rebuilt. |
| repo_searchA | Search repository code for answers to questions using BM25 lexical ranking expanded with graph neighbours. Read-only, no side effects, secret files (.env) excluded. When to use: use for open-ended queries, locating implementations, or finding error strings. When NOT to use: do not use when you already have a symbol node_id and want callers/callees (use repo_neighbours); do not use for broad repo layout (use repo_map). Output: markdown citation blocks |
| repo_neighboursA | Traverse code graph relationships from a known symbol or file node_id (callers, callees, base classes, definitions). Read-only, deterministic traversal, no side effects. When to use: use with a specific node_id (e.g. from repo_search citations) to inspect callers (CALLS in), callees (CALLS out), inheritance, definitions, or the tests that reach a symbol through calls (TESTS in). When NOT to use: do not use for text search across code (use repo_search) or repo overview (use repo_map). Output: markdown list formatted as |
| repo_find_symbolA | Look up a symbol or file's node_id by name, or by |
| repo_readA | Read a widened window of source text around a citation, from the indexed chunks rather than the filesystem -- works with no shared filesystem between client and server, because chunks have already passed secret-path exclusion and redaction. Read-only, deterministic, zero side effects. When to use: use after repo_search or repo_neighbours to see more lines around a |
| repo_path_betweenA | Find a bounded, bidirectional path between two node_ids over CALLS/DEFINES/IMPORTS edges (CO_CHANGE only if named explicitly), reporting the minimum confidence along each path. Read-only, deterministic traversal, no side effects. When to use: use for 'how does X reach Y' questions a text search cannot answer, e.g. the call chain from an HTTP handler to a database write. When NOT to use: do not use for one-hop neighbours (use repo_neighbours) or open-ended search (use repo_search). Output: JSON array of paths, each an ordered array of {node_id, path, start_line, end_line, via_edge, confidence}. |
| repo_blast_radiusA | Reverse reachability from a node_id: callers of callers, subclasses of subclasses, importers of importers of its file, and historically co-edited files, by hop distance -- the blast radius of changing it. Read-only, deterministic, zero side effects, secret files excluded. When to use: use before editing a symbol to see what depends on it, or to answer 'what is the blast radius of changing X'. When NOT to use: do not use for open-ended search (use repo_search) or to read a symbol's own body (use repo_read). Output: JSON object with callers, subclasses, importers, cochange, and a summary. |
| repo_cache_statsA | Retrieve runtime diagnostic counters for the tool result cache (hits, misses, size, max_size, ttl_s). Read-only, in-memory diagnostics, zero side effects. When to use: use when evaluating cache hit rate or debugging server performance. When NOT to use: do not use to search repository contents or inspect code structure; use repo_map or repo_search instead. Output: JSON object with cache metrics. |
| repo_build_statusA | Query progress and status of a background index build task under --async-build. Read-only check of in-memory background worker. When to use: use when polling build progress after an async index build was started. When NOT to use: do not use when building synchronously or when queries already succeed. Once completed, use repo_search or repo_map to query code. Output: JSON object with task_id, status, parsed file progress, and error details. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| explain-symbol | Explain what a function or class does and who uses it. |
| trace-flow | Trace how execution gets from one symbol to another. |
| what-breaks | List what depends on a symbol before changing it. |
| orient | Get oriented in an unfamiliar repository. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| map | The repository map: entry points, most-depended-on files and symbols. The same text repo_map returns, stable between builds. |
TDQS
Scored across 9 tools
Each tool has a sharply distinct purpose, and descriptions explicitly cross-reference alternatives with 'When NOT to use' clauses (e.g., repo_search vs repo_neighbours vs repo_map). Even the three graph-traversal tools (neighbours, blast_radius, path_between) are cleanly separated by scope (one-hop, reverse-reachability, bounded path).
All tools share a consistent `repo_` prefix and snake_case form, which is highly predictable. There is minor stylistic drift between verb-led names (repo_search, repo_read, repo_find_symbol) and noun-led names (repo_map, repo_neighbours, repo_path_between), but this stays readable and conventional.
Nine tools is well-scoped for a read-only code-graph navigation server, with each tool earning its place across discovery, traversal, reading, and diagnostics. No redundant or filler tools are present.
The surface covers discovery (map, search, find_symbol), inspection (read, neighbours), and impact analysis (blast_radius, path_between) plus operational status. Minor gaps exist, such as explicit file/directory listing, but core read-only navigation workflows are well covered.