Turn your codebase into a knowledge graph. 11 MCP tools for AI code assistants — search, impact analysis, shortest path, semantic similarity, and more.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
tools
-
graph_community
🏘️ List all nodes in a community, ranked by degree centrality.
-
graph_context
🧠 Smart context builder with token budget — combines search + vectors + graph expansion.
-
graph_docs
📄 Search documentation nodes (markdown, text, rst).
-
graph_explain
📋 Full detail on a node: edges, community, centrality metrics, signature, docstring.
-
graph_hotspots
🔥 God nodes / architectural bottlenecks — most connected symbols in the graph.
-
graph_impact
💥 Blast radius analysis — find all upstream/downstream dependents of any symbol.
-
graph_outline
🗂️ Tree-sitter code outline: functions, classes, imports with signatures and line ranges.
-
graph_path
🛤️ Weighted shortest path (Dijkstra) between two symbols. Filter by edge type.
-
graph_search
🔍 Full-text search across nodes. Filter by type, repo. Expand results with BFS/DFS.
-
graph_similar
🧲 Semantic similarity search using vector embeddings (TF-IDF, ONNX, or remote provider).
-
graph_status
📊 Graph metadata: node/edge counts, repos, build timestamp, version.
filesystem 53
- fs CristianoCiuti-reponova-930c300/src/cli/check.ts :2
import { existsSync, statSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/install/content/plugin-opencode.ts :7
import { existsSync } from "fs"; - fs CristianoCiuti-reponova-930c300/src/cli/install/targets/claude.ts :1
import { writeFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/install/targets/cursor.ts :1
import { writeFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/install/targets/opencode.ts :1
import { writeFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/install/targets/vscode.ts :1
import { writeFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/install/utils.ts :1
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/lang-suggest.ts :26
import { existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/lang.ts :10
import { existsSync, readFileSync, writeFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/cli/models.ts :5
import { existsSync, readdirSync, statSync, rmSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/extract/index.ts :10
import { readFileSync, existsSync, readdirSync, statSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/extract/parser.ts :19
import { existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/graph/export-json.ts :7
import { existsSync, readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/graph/loader.ts :1
import { readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/intelligence/embeddings.ts :8
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/intelligence/local-llm-engine.ts :5
import { existsSync, mkdirSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/mcp/server.ts :9
import { statSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/mcp/tools/outline.ts :11
import { existsSync, readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/mcp/tools/similar.ts :10
import { existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/mcp/tools/status.ts :2
import { existsSync, statSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/build.ts :7
import { existsSync, mkdirSync, rmSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/cache.ts :15
import { readFileSync, existsSync, mkdirSync, readdirSync, unlinkSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/cache/utils.ts :2
import { readFileSync, writeFileSync, existsSync, readdirSync, statSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/engine/phase.ts :1
import { existsSync, mkdirSync, rmSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/apply.ts :7
import { readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/batcher.ts :5
import { readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/finalize.ts :8
import { existsSync, readFileSync, copyFileSync, rmSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/llm-executor.ts :6
import { mkdirSync, writeFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/merge.ts :6
import { existsSync, readdirSync, readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/metrics.ts :7
import { existsSync, readFileSync, rmSync, mkdirSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/orchestrator.ts :7
import { existsSync, readFileSync, mkdirSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/enrich/prepare.ts :7
import { existsSync, readFileSync, mkdirSync, readdirSync, rmSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/phases/communities.ts :7
import { existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/phases/embeddings.ts :7
import { existsSync, readFileSync, rmSync, unlinkSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/phases/enrich.ts :6
import { copyFileSync, readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/phases/html.ts :6
import { existsSync, unlinkSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/pipeline/phases/outlines.ts :14
} from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/plugin/discovery.ts :17
import { readFileSync, existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/plugin/extension-scanner.ts :14
import { readdirSync, statSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/plugin/install-context.ts :19
import { existsSync, readFileSync, realpathSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/plugin/installed-check.ts :26
import { existsSync, readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/query/context-builder.ts :28
import { existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/query/db.ts :3
import { readFileSync, existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/query/vector-meta.ts :5
import { existsSync, mkdirSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/query/vector-store.ts :7
import { existsSync, mkdirSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/atomic-write.ts :15
import { writeFileSync, copyFileSync, unlinkSync, mkdirSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/community-labels.ts :8
import { existsSync, readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/config.ts :1
import { readFileSync, existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/fs.ts :6
import { existsSync, readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/graph-resolver.ts :1
import { existsSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/hash.ts :8
import { readFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/path-resolver.ts :8
import { existsSync, symlinkSync, mkdirSync, readdirSync, statSync, copyFileSync } from "node:fs"; - fs CristianoCiuti-reponova-930c300/src/shared/utils.ts :2
import { existsSync, readFileSync } from "node:fs";
shell / exec 1
- shell CristianoCiuti-reponova-930c300/src/cli/lang.ts :9
import { spawnSync } from "node:child_process";
network 4
- net CristianoCiuti-reponova-930c300/src/intelligence/embeddings.ts :288
const response = await fetch(url); - net CristianoCiuti-reponova-930c300/src/intelligence/openai-embedding-provider.ts :8
import { fetch, Agent } from "undici"; - net CristianoCiuti-reponova-930c300/src/intelligence/openai-provider.ts :8
import { fetch, Agent } from "undici"; - net CristianoCiuti-reponova-930c300/src/plugin/registry-client.ts :165
const res = await fetch(url, {
declared dependencies 29
- @inquirer/checkbox@^3.0.1
- @inquirer/confirm@^4.0.1
- @modelcontextprotocol/sdk@^1.12.0
- global-directory@^4.0.1
- graphology@^0.26.0
- graphology-communities-louvain@^2.0.2
- graphology-layout-forceatlas2@^0.10.1
- graphology-types@^0.24.8
- js-tiktoken@^1.0.21
- jsonc-parser@^3.3.1
- picomatch@^4.0.4
- sql.js@^1.11.0
- undici@^8.3.0
- web-tree-sitter@^0.25.10
- yaml@^2.9.0
- yargs@^17.7.2
- zod@^3.22.0
- @reponova/lang-plantuml@^0.1.0
- @reponova/lang-python@^0.1.0
- @reponova/lang-svg@^0.3.0
- @types/node@^20.0.0
- @types/picomatch@^4.0.3
- @types/yargs@^17.0.0
- tsup@^8.0.0
- typescript@^5.4.0
- vitest@^2.0.0
- @lancedb/lancedb@^0.27.2
- node-llama-cpp@^3.18.1
- onnxruntime-node@^1.25.1