find_symbolLABSCO SUMMARY
The route-to-SQL trace is the thing a grep-based assistant cannot do.
dataflow_trace returns ordered hops — route to handler to service to repository to SQL — with the argument flow at each one, because the graph stitches URL shapes across the stack so a frontend fetch resolves to its handler. Everything else falls out of the same graph rather than needing its own index.
What it is
A code graph server. It parses a repository with tree-sitter into a queryable graph of symbols, calls, routes and frontend fetches, and answers structural questions over it.
What you get
- Symbols and calls: find_symbol, callers and callees — with the argument text captured at each call site
- Impact: blast_radius, subgraph, cycles, hotspots, metrics
- Gaps: dead_code and untested, both decorator-aware so framework handlers are not mistaken for dead code
- Search: semantic_search, and hybrid_search reranked by graph distance from a focal symbol
- Dataflow: dataflow_routes, dataflow_fetches, dataflow_trace
- Across repositories: workspace_state, workspace_diff_since, workspace_blast_radius
- Python, TypeScript, JavaScript, TSX/JSX and Go, with FastAPI, Flask, aiohttp, Express and NestJS route detection
Requirements
pip install polycodegraph, then codegraph init and codegraph build to parse the repository into .codegraph/graph.db. The CLI, the Python module and the MCP server are all codegraph. semantic_search needs codegraph embed to have been run first. Python 3.10+.
Setup effort
One command — pip install polycodegraph
USE CASES
Following a value from the browser to the database
Give it the route and read the hops, with the arguments carried at each one.
Finding out what a change breaks
Read the transitive closure instead of grepping for the function name.
Finding untested and unreachable code
Ask for functions with no test callers, and for symbols nothing calls at all.
Locating logic you can only describe
Search semantically, reranked toward the part of the codebase you are already in.
18 tools
Listed in project docs. Your client may show a different list.
callerscalleesblast_radiussubgraphdead_codecyclesuntestedhotspotsmetricssemantic_searchhybrid_searchdataflow_routesdataflow_fetchesdataflow_traceworkspace_stateworkspace_diff_sinceworkspace_blast_radiusBEFORE YOU INSTALL
What to know first
Tools you get
18 tools named in the project's documentation.
Requires
codegraph on PATH
Where it runs
All 5 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
pip install polycodegraphMCP Clients
Claude Code, Cursor, Windsurf, GitHub Copilot, Continue
{
"mcpServers": {
"codegraph": {
"command": "codegraph",
"args": [
"mcp",
"serve"
]
}
}
}