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.
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.
- 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_hazards` for reflection and dynamic-dispatch sites so a zero-dependents answer is not read as safe, plus `predict_impact`, `affected_tests` and `predict_edit`
- Change and review — `working_changes_impact`, `list_prs`, `get_pr_impact`, `triage_prs`, and the advanced trio `structural_search`, `time_travel_diff` and plan-only `plan_rename`
- Audit — `readiness_audit` for port and readiness checks, `audit_sql` and `advise_sql` over 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_outcome` is 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
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.
One command — cargo install --path bin/synaptic
