Skip to main content
Glama

Graph X automatically indexes every file in a folder, extracts the relationships between them — imports, doc links, tests, semantic similarity — and stores them in a local SQLite graph. That graph is then served two ways: to Claude Code through 7 MCP tools, and to you as an interactive, live-updating force-directed graph in the browser.

Why it exists: without a graph, Claude re-reads your files from scratch every session — tens of thousands of tokens just to "learn" the project. With Graph X, Claude queries the graph first (a full project map costs ~600 tokens, a file summary ~200) and only opens the 2–3 files that actually matter. Typical result: 8–10× fewer tokens per session, faster answers, better focus.

This is the tool's own repository rendered by its own snapshot command:

Graph X rendering its own repository

(Formerly "bilik-qrafi" — Azerbaijani for "knowledge graph".)

Highlights

  • Zero dependencies. No npm install, ever. One Node.js binary, built-in node:sqlite and node:zlib. The MCP protocol, PDF/DOCX text extraction, TF-IDF semantic search, HTTP/SSE server and graph physics are all hand-rolled in ~2,500 lines.

  • Incremental & live. Hash-based indexing (a no-change re-index takes ~10 ms on this repo); a file watcher re-indexes on save and pushes updates to the browser over SSE.

  • Understands more than code. JS/TS, Python, PHP, Vue/Svelte, HTML, CSS — plus Markdown links, [[wiki-links]], and full text inside PDF and DOCX files.

  • Finds hidden structure. TF-IDF semantic edges connect files that talk about the same thing even when no import or link exists between them.

  • Claude-native. One setup command registers the MCP server, teaches Claude the "query the graph before reading files" rule, and lets Claude render the graph for you on request.

  • Neumorphic UI. Soft light/dark chrome, keyboard-first (/ to search, Esc to reset), impact mode that shows what breaks if a file changes.

Related MCP server: LiLBrain

Quickstart

Requirements: Node.js ≥ 22.5 on your PATH, or a portable node.exe dropped at .tools/node/node.exe (no admin rights needed — grab it from nodejs.org/dist).

graphx index .        # build the graph for the current folder
graphx stats .        # print the project map in the terminal
graphx serve .        # interactive graph at http://localhost:7341

Windows: graphx.cmd (or double-click graph.cmd to start the server and open the browser). macOS/Linux: ./graphx.sh.

Try the demo

The repo ships with a small but realistic project — demo/shop-api — an Express e-commerce API with an auth stack, routes, a database layer, payments, docs and tests. Its graph looks like this:

The demo project's knowledge graph

Notice what the graph surfaces instantly: docs/architecture.md and src/auth/login.js are the most connected nodes, tests attach to what they cover with their own edge kind, and dashed lines mark documentation and semantic links. Explore it live:

graphx serve demo/shop-api --port 7345

Use it with Claude Code

One command attaches Graph X to any project:

graphx setup C:\path\to\your-project

It writes four things into the target project (and nothing else), then runs the first index:

File

Purpose

.mcp.json

Registers the graph-x MCP server for that folder

CLAUDE.md

Appends the rule: query the graph before reading files

.claude/launch.json

Lets Claude start the graph UI itself when you ask to see it

.gitignore

Excludes the .graph/ database

Restart your Claude Code session in that folder and Claude gains seven tools:

Tool

What it does

≈Tokens

project_map

Whole-project map: counts, folders, hub files with summaries

600

find_relevant

Semantic + structural search, ranked with summaries

300–1k

get_summary

One file's summary, exports, dependencies — without reading it

200

get_connections

Every inbound/outbound edge of a file

300

impact_analysis

Reverse-dependency BFS: what breaks if this file changes

500

graph_snapshot

Renders the graph to SVG so Claude can show it in chat

100

reindex

Incremental re-scan after big refactors

100

A typical session then looks like: "where is authentication handled?" → Claude calls project_map, then find_relevant("authentication"), then reads only the one or two files that matter. The graph keeps itself fresh — any tool call re-checks the filesystem if the index is older than 60 seconds.

Full walkthrough: docs/SETUP.md · Tool reference: docs/MCP-TOOLS.md

The graph UI

Node = file (color = type, size = connections). Line = relationship (dashed = doc/semantic). Drag nodes, pan and zoom, click a node for its summary, connections and token stats. / focuses search, type chips filter, and impact mode paints the clay-colored wave of files that transitively depend on the one you click. The sun/moon button flips the neumorphic chrome between light and dark.

Adding data

There is no import step — drop files into the indexed folder:

Kind

Formats

What gets extracted

Code

JS/TS/JSX/TSX, Python, PHP, Vue, Svelte, HTML, CSS/SCSS…

imports/exports, functions, classes → structural edges

Notes

.md (links + [[wiki-links]]), .txt, .rst

links, headings → doc edges

Documents

.pdf, .docx

full text via the built-in zero-dep extractor → searchable, semantically linked

Config

package.json, .env, YAML/TOML/JSON

dependencies, entry points

While serve runs, changes appear in the browser within ~2 seconds. Scanned (image-only) PDFs are indexed as metadata-only nodes — no OCR yet.

For a personal knowledge base, point it at a vault folder: graphx setup C:\Vault && graphx serve C:\Vault --port 7342. Every folder gets its own independent .graph/graph.db.

Index a GitHub repository

No git required — Graph X downloads the archive over HTTPS and unpacks it with its own zip reader:

graphx github vercel/next.js              # owner/name (default branch)
graphx github owner/repo#dev  my-folder   # branch + custom target

The repo arrives already indexed and Claude-ready (setup runs automatically).

Settings

Optional per-project graphx.config.json (template: graphx config --init):

{
  "port": 7341,
  "ignoreDirs": ["legacy"],
  "ignoreFiles": ["*.generated.ts"],
  "semanticThreshold": 0.36,
  "staleSeconds": 60
}

This repository uses one to keep demo/ out of its own graph. All keys: docs/CONFIGURATION.md.

CLI reference

Command

Description

graphx index [path] [--force]

Incremental index (hash-based); --force rebuilds everything

graphx stats [path]

Project map in the terminal

graphx serve [path] [--port n]

Web UI + live watch

graphx mcp [path]

MCP server over stdio (used by Claude Code)

graphx setup [path]

Attach to a project (MCP + rules + launch config + first index)

graphx snapshot [path] [--out f] [--max n]

Render the graph to a standalone SVG

graphx github <repo> [dir]

Download a GitHub repo and attach the graph

graphx config [path] [--init]

Show effective settings / create a config file

Architecture

files → watcher (hash diff) → parsers (imports/links) + PDF/DOCX extractor + TF-IDF
                                     ↓
                        SQLite  .graph/graph.db  (files / edges / meta)
                           ↓                        ↓
                    MCP server (stdio)        HTTP + SSE server
                           ↓                        ↓
                      Claude Code            browser graph UI

Module-by-module notes live in CLAUDE.md.

Limitations & roadmap

Parsing is regex-based (tree-sitter planned) — string literals can occasionally leak keywords. Summaries are structural (LLM summaries planned). Semantic search is TF-IDF (neural embeddings planned). No OCR for scanned PDFs; XLSX/PPTX not indexed yet.

License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    An MCP server that transforms codebases into knowledge graphs using Neo4J, enabling AI assistants to understand code structure, relationships, and metrics for more context-aware assistance.
    Last updated
    26
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    An MCP server that indexes your codebase using tree-sitter AST parsing and gives AI tools instant access to structural intelligence like dependency graphs, call trees, and dead code detection from a local SQLite database.
    Last updated
    MIT

View all related MCP servers

Related MCP Connectors

  • An MCP server that gives your AI access to the source code and docs of all public github repos

  • User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.

  • Give your AI agent a persistent map of your project's structure, dependencies, and bugs.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vugarfamiloglu/graph-x'

If you have feedback or need assistance with the MCP directory API, please join our Discord server