query_graphLABSCO SUMMARY
It tells you when "nothing depends on this" is a lie.
The hazards tooling is the detail that shows the design intent: a zero-dependents answer gets a caveat when the symbol is reachable only through dynamic dispatch, which is exactly where naive impact analysis gets people hurt. The memory layer is the second half — decisions, regressions and pitfalls recorded as source-linked evidence, read-only unless you explicitly allow writes.
What it is
Synaptic turns a folder, monorepo or federated set of repositories into a persistent graph of symbols, files, calls, imports, inheritance, SQL usage and cross-repo edges across 30+ languages using tree-sitter — then adds source-linked repository memory for the history the current tree cannot show. A single static Rust binary does extraction, querying and MCP serving.
What you get
- Graph navigation —
query_graph,get_node,get_source,get_neighbors,get_community,god_nodes,graph_stats,shortest_path - Impact analysis —
affected,find_callers,find_callees,find_references,dynamic_hazardsfor reflection and dynamic-dispatch sites so a zero-dependents answer is not read as safe, pluspredict_impact,affected_testsandpredict_edit - Change and review —
working_changes_impact,list_prs,get_pr_impact,triage_prs, and the advanced triostructural_search,time_travel_diffand plan-onlyplan_rename - Audit —
readiness_auditfor port and readiness checks,audit_sqlandadvise_sqlover the SQL-aware graph, and five vulnerability tools:vuln_check_dependency,vuln_findings,vuln_explain,vuln_scan,vuln_brief - Repository memory, read-only by default —
search_memory,explain_history,find_similar_change,known_pitfalls,explain_decision;record_change_outcomeis only advertised when you pass--allow-memory-write - 30 core tools plus the vulnerability and memory sets, with terse defaults and capped lists to stay token-lean
Requirements
A stable Rust toolchain, or a prebuilt binary from the tagged releases for Linux, macOS and Windows. Install with cargo install --path bin/synaptic, then synaptic extract . to build the graph into synaptic-out/ and synaptic serve for a stdio MCP server, or synaptic serve --http 127.0.0.1:8765 --api-key "$SYNAPTIC_API_KEY" over HTTP. Extraction honours .synapticignore and .gitignore and skips .env and keys; a code-only corpus runs fully offline, while the optional semantic pass over docs needs an API key such as OPENAI_API_KEY. A hosted alternative exists as a paid remote MCP endpoint at https://synapticgraph.com/api/mcp/projects/{project_id} with a bearer token from the dashboard. AGPL-3.0-or-later.
Setup effort
Build from source — git clone https://github.com/Synaptic-Graph/Synaptic.git
USE CASES
Deciding whether a change is safe to make
Get the transitive dependents and the at-risk tests, and check whether dynamic dispatch hides callers the graph cannot see.
Reviewing a pull request from its blast radius
Triage the open PRs, then read the impact of the one you are reviewing before the diff.
Finding out whether this was tried before
Search repository memory for a similar change and the pitfalls recorded against it.
Auditing the SQL before it ships
Run the SQL audit over the graph for performance and security, and check a candidate query before writing it.
Checking dependencies for known vulnerabilities
Scan the graph's dependency coordinates, then read the explanation and brief for what came back.
39 tools
Listed in project docs. Your client may show a different list.
get_nodeget_sourceget_neighborsget_communitygod_nodesgraph_statsshortest_pathaffectedfind_callersfind_calleesfind_referencesdynamic_hazardspredict_impactaffected_testspredict_editlist_reposrepo_statsworking_changes_impactlist_prsget_pr_impacttriage_prsstructural_searchtime_travel_diffplan_renamereadiness_auditaudit_sqladvise_sqlvuln_check_dependencyvuln_findingsvuln_explainvuln_scanvuln_briefsearch_memoryexplain_historyfind_similar_changeknown_pitfallsexplain_decisionrecord_change_outcomeBEFORE YOU INSTALL
What to know first
Tools you get
39 tools named in the project's documentation. record_change_outcome appears only with --allow-memory-write. The documentation's totals add up to 40, but two of its core tools are never named.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/Synaptic-Graph/Synaptic.git
cd Synaptic
cargo install --path bin/synapticOr skip the clone and download a prebuilt Linux/macOS/Windows binary from https://github.com/Synaptic-Graph/Synaptic/releases
Then, from the root of the project you want to query, build the graph into synaptic-out/:
cd <YOUR_PATH_TO_PROJECT> && synaptic extract .MCP Clients
HTTP server
Start the server over HTTP
Run this in your project after synaptic extract . has built the graph. With a key set, every request must carry it.
synaptic serve --http 127.0.0.1:8765 --api-key "$SYNAPTIC_API_KEY"Point your client at the /mcp endpoint
<YOUR_KEY> is the key you started the server with.
{
"mcpServers": {
"synaptic": {
"url": "http://127.0.0.1:8765/mcp",
"headers": {
"Authorization": "Bearer <YOUR_KEY>"
}
}
}
}Codex
Run this inside your project. It adds a synaptic-<repo> server to ~/.codex/config.toml for the Codex desktop app; build the graph with synaptic extract . and restart Codex, then check Settings > MCP servers. synaptic must be on your PATH.
synaptic install codex --globalAny MCP client
Run synaptic extract . in your project first. The client starts synaptic serve itself; --graph points it at the graph that command wrote, so it works whatever folder the client starts in. <YOUR_PATH_TO_PROJECT> is your project's full path.
{
"mcpServers": {
"synaptic": {
"command": "synaptic",
"args": [
"serve",
"--graph",
"<YOUR_PATH_TO_PROJECT>/synaptic-out/graph.json"
]
}
}
}