Skip to content

The graph

Lane Holloway edited this page Oct 26, 2026 · 1 revision

The graph

scripts/graphify_export.py turns the library into a graphify graph at graphify-out/graph.json (git-ignored). The repository's .mcp.json serves it to Claude Code as the akashic-graph MCP server, so questions about the library's contents (what a board is based on, which boards copy a pedal, which boards use a part) can be answered from the graph instead of by reading the database or the JSON export.

The graph is a read-only view. data/library.sqlite stays the source of truth: fix data there (through the scraper and Fixing a parse), then rebuild the graph.

Nodes and edges

Node Id Label Attributes
board board:<circuit id> <Vendor> <name> akashic_id, vendor, based_on, effect, price, status (in stock, out of stock, or delisted with the date), url, controls, description
vendor vendor:<vendor id> the vendor's name id, url, license_note
original original:<key> the most common spelling boards, spellings (up to five)
part part:<category>:<value> the normalized value category (IC, transistor or diode)
Edge From To
sold_by board vendor
based_on board original
uses_part board part

Originals merge spelling variants of the same name: case, punctuation, a leading "the", and aliases such as Electro-Harmonix / EHX and Pro Co / ProCo. Parts are the ICs, transistors and diodes from the parsed parts lists, by normalized value; resistors, capacitors and pots are left out. Like the export, the graph holds only metadata, part values and links, never documents or schematics.

Rebuild

graphify is installed as a uv tool (uv tool install graphifyy). Run the script with graphify's own interpreter, which has networkx and graphify:

~/.local/share/uv/tools/graphifyy/bin/python scripts/graphify_export.py

It reads the database read-only, takes a few seconds, and prints the node counts by type, the edge count and the number of communities. Rebuild after a scrape. scripts/refresh.sh rebuilds it every week whether or not the site deploys, and logs "graphify not installed" when the interpreter is missing.

Querying

In Claude Code, with the akashic-graph server running (graphify-mcp graphify-out/graph.json):

  • get_node on a board returns its facts in attributes.
  • get_neighbors on an original lists every board based on it; on a part, every board using it.
  • query_graph is a fuzzy keyword search; keep token_budget small.

From a shell, at the repository root (the commands read graphify-out/graph.json by default):

graphify explain "Aion FX Aerolith"                  # a node and its connections
graphify query "boards based on the Klon" --budget 800
graphify path "ProCo RAT" "LM308" --undirected       # edges point from boards, so search both ways

Clone this wiki locally