/ Directory / Playground / Graphify
● Community safishamsi ⚡ Instant

Graphify

by safishamsi · safishamsi/graphify

Graphify indexes any folder (code, docs, PDFs, images, video) into a knowledge graph with Leiden-clustered communities — so your agent queries concepts, not filenames.

Graphify is a multimodal knowledge-graph skill. Install via uv tool install graphifyy, run graphify install, and every Claude Code / Codex / Cursor session after that can query your graph with /graphify query, /graphify path, /graphify explain. Code parsing is local via tree-sitter (25 languages); concept extraction uses Claude; visual output is an interactive HTML + structured JSON. --watch keeps it in sync with your repo.

Why use it

Key features

Live Demo

What it looks like in practice

graphify-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "graphify-skill": {
      "command": "uv",
      "args": [
        "tool",
        "install",
        "graphifyy"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "graphify-skill": {
      "command": "uv",
      "args": [
        "tool",
        "install",
        "graphifyy"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "graphify-skill": {
      "command": "uv",
      "args": [
        "tool",
        "install",
        "graphifyy"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "graphify-skill": {
      "command": "uv",
      "args": [
        "tool",
        "install",
        "graphifyy"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "graphify-skill",
      "command": "uv",
      "args": [
        "tool",
        "install",
        "graphifyy"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "graphify-skill": {
      "command": {
        "path": "uv",
        "args": [
          "tool",
          "install",
          "graphifyy"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add graphify-skill -- uv tool install graphifyy

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Graphify

Onboard to a 5-year-old legacy codebase in hours, not weeks

👤 New hires, contractors inheriting code ⏱ ~60 min intermediate

When to use: You've joined a project with 10k+ files, dozens of internal services, and tribal knowledge spread across PRs and Confluence.

Prerequisites
  • uv installed — curl -LsSf https://astral.sh/uv/install.sh | sh
  • Graphify installed globally — uv tool install graphifyy && graphify install
Flow
  1. Index the repo
    /graphify index /workspace/monolith --include '**/*.{ts,py,md}'✓ Copied
    → Graph builds; report tells you cluster count and dominant concepts
  2. Ask the graph
    /graphify query 'how does payment processing connect to audit logging?'✓ Copied
    → Path through concepts with file references — not just a grep
  3. Open the visual
    /graphify explain 'user-account cluster' and open the HTML viewer✓ Copied
    → Interactive graph opens; cluster is highlighted with its bridges

Outcome: You know the conceptual shape of the codebase — where the hot paths live, which clusters are isolated, what depends on what.

Pitfalls
  • Graph becomes stale as the repo changes — graphify --watch to auto-update; or re-index before a big review session
  • Noise from vendored deps — Configure --exclude 'node_modules/,vendor/' on initial indexing
Combine with: filesystem · context7

Build a research graph over 200 papers and ask cross-paper questions

👤 Researchers, policy analysts, lit-review writers ⏱ ~90 min intermediate

When to use: You have a folder of 200 PDFs and need to find cross-paper threads no single paper exposes.

Flow
  1. Index the corpus
    /graphify index /research/climate-pdfs✓ Copied
    → Concept clusters emerge (e.g. 'carbon pricing', 'adaptation finance')
  2. Bridge-finding query
    /graphify path 'adaptation finance' → 'sovereign debt'✓ Copied
    → Ordered chain of concepts + papers that connect the two
  3. Generate a literature review
    Summarize the 'adaptation finance → sovereign debt' bridge as a 400-word section with paper citations.✓ Copied
    → Draft paragraph with correct citations from the graph

Outcome: Insights that come from the structure of the corpus, not just keyword grep.

Pitfalls
  • Scanned PDFs don't OCR — Run OCR (ocrmypdf) before indexing; Graphify won't magic-text images
Combine with: filesystem

Merge graphs from multiple repos into one searchable view

👤 Platform teams owning microservice fleets ⏱ ~120 min advanced

When to use: You run 15 services. You want one graph that spans them so an agent can follow a request end-to-end.

Flow
  1. Index each service
    For each repo under /services/, run graphify index with --out graph-<name>.json✓ Copied
    → 15 graph.json files on disk
  2. Merge
    graphify merge-graphs graph-*.json --out fleet.json✓ Copied
    → One unified graph with cross-repo edges
  3. Ask end-to-end
    /graphify query 'trace a POST /checkout through the fleet'✓ Copied
    → Path through multiple services, each node annotated with its repo

Outcome: Cross-service traceability without a service mesh or OTEL rollout.

Pitfalls
  • Same concept named differently across repos — Graphify's similarity merge handles most; for the rest, define aliases in the config
Combine with: filesystem · github

Combinations

Pair with other MCPs for X10 leverage

graphify-skill + filesystem

Graphify points at files; filesystem lets the agent actually read/edit them

/graphify query 'retry logic' → list files, then filesystem read_text_file each one to draft a refactor.✓ Copied
graphify-skill + github

Turn graph queries into PR plans

Use the graph to find everywhere we do ad-hoc retries; open a GitHub issue listing each file with a proposed consolidation.✓ Copied
graphify-skill + sequential-thinking

Multi-step reasoning that uses the graph as an oracle

Plan the refactor step-by-step; at each step, consult /graphify query for impact.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
/graphify index path, include, exclude, --watch First — build the graph Claude calls for concept extraction (use prompt caching)
/graphify query natural-language question The primary query interface free (local) + small model call
/graphify path concept A → concept B When you want to see how two ideas connect free
/graphify explain node/cluster id Deep-dive on a single cluster free + small model call
graphify merge-graphs graph-*.json Cross-repo / cross-folder views free

Cost & Limits

What this costs to run

API quota
Local indexing is free; concept extraction uses Claude API (your key)
Tokens per call
Indexing a 10k-file repo ≈ tens of dollars with caching; queries are cheap
Monetary
Free software; pay for the extraction calls only
Tip
Cache aggressively — Graphify already does prompt caching for extraction; index once, query 1000x

Security

Permissions, secrets, blast radius

Credential storage: Uses your Claude API key for extraction; graph.json stored locally
Data egress: Concept extraction calls go to Anthropic (your account). No telemetry from Graphify itself.
Never grant: Sharing graph.json publicly when indexed from a private repo — it embeds code snippets and filenames

Troubleshooting

Common errors and fixes

graphify: command not found after install

uv tool install graphifyy puts the binary in ~/.local/bin; ensure that's on PATH, or run with uv tool run graphify.

Verify: uv tool list | grep graphify
Indexing takes forever on a large repo

Scope with --include '**/*.{py,ts,md}' and --exclude 'node_modules/,dist/'. Concept extraction, not parsing, is the bottleneck.

Verify: Watch the progress log; parsing should be seconds, extraction takes the time
Queries return irrelevant clusters

Graph quality depends on the index — add README/docs files to the input set so Claude has project context for naming clusters

Verify: Rebuild including /docs/**/*.md; queries should sharpen
Merge-graphs produces duplicate nodes

Lower --similarity-threshold (default ~0.8) to 0.7 to merge near-duplicates more aggressively; tune per-repo

Alternatives

Graphify vs others

AlternativeWhen to use it insteadTradeoff
SerenaYou want LSP-precise symbol navigation and refactor tools, not conceptual clustersNo multi-modal input; no clustering
Memory MCPYou want Claude to remember session facts, not index a corpusNo graph; no query-by-concept
Raw embedding + vector DBYou need custom retrieval logic and don't care about community detectionYou build the whole pipeline — graphify is opinionated and faster to ship

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills