Skip to content

Commit ac57740

Browse files
committed
docs(ui): surface multimodal knowledge graph in help, docs, and READMEs
- index.html + team-dashboard.html: new in-app help section documenting the 7 knowledge-graph/LLM tools, HTTP bridge, and 19-language AST support — explicitly marked as MCP-server-side (Node), NOT browser controls, so no non-functional UI was added. Corrected stale 130 tool count to 150. - docs/index.html: MCP tool table rows for grasp_ingest/grasp_kg_*/grasp_llm_status, three capability callouts, and tool count 130 -> 150. - README.md: what's-new entry, a Multimodal Knowledge Graph section under Code Intelligence, an architecture note for mcp/src/{ingest,llm,semantic}, native AST language count 16 -> 19 (Bash/Elixir/Julia), tool count normalised to 150. - mcp/README.md: 'Where it lives' source-layout note. Informational only; no version bumped.
1 parent 25c9c28 commit ac57740

5 files changed

Lines changed: 94 additions & 23 deletions

File tree

README.md

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<br/>
1616

17-
**131 MCP tools + 8 Resources + 2 Prompts · 35 languages · 11 AI providers + 200+ models via OpenRouter · 10 graph views · zero data collection**
17+
**150 MCP tools + 8 Resources + 2 Prompts · 35 languages · 11 AI providers + 200+ models via OpenRouter · 10 graph views · multimodal knowledge graph · zero data collection**
1818

1919
<br/>
2020

@@ -50,6 +50,8 @@
5050

5151
## What's New in v3.20.0
5252

53+
**New — Multimodal Knowledge Graph (MCP server).** Seven new MCP tools ingest your documents — PDF, DOCX, XLSX, HTML, images (OCR), audio/video (local Whisper via `@xenova/transformers` + ffmpeg), YouTube, and URLs — alongside your code into a queryable knowledge graph, then answer natural-language questions with citations: `grasp_ingest`, `grasp_kg_ask`, `grasp_kg_trace`, `grasp_kg_explain`, `grasp_kg_stats`, `grasp_kg_export`, `grasp_llm_status`. A **local-first** multi-LLM layer auto-detects Ollama before any cloud key and falls back to a zero-credential deterministic engine. Server-side only (Node MCP server, not the browser app) — see **Multimodal Knowledge Graph** under [Code Intelligence](#code-intelligence). Also new: **+3 native AST languages** (Bash, Elixir, Julia) take tree-sitter-backed extraction to **19 languages**.
54+
5355
Full security scanning suite — `grasp_vulnerabilities` now covers **5 threat vectors** beyond the original OSV.dev dependency scan.
5456

5557
| Layer | Data source | What it checks |
@@ -66,16 +68,16 @@ New skip flags (`skip_container`, `skip_socket`, `skip_integrity`) for targeted
6668

6769
**Previously in v3.18.0:** 9 new MCP tools (graph analytics + LLM-context), 11 graph export formats, TypeScript path-alias + Python import resolvers, Claude Code slash commands, token-reduction eval harness (3,241× on `got@v14`).
6870

69-
Total as of v3.20.0: **131 MCP tools · 8 Resources · 2 Prompts · 35 languages · 11 graph export formats · 10 graph views · 19 themes**.
71+
Total as of v3.20.0: **150 MCP tools · 8 Resources · 2 Prompts · 35 languages · 11 graph export formats · 10 graph views · multimodal knowledge graph · 19 themes**.
7072

7173
---
7274

7375
## What is Grasp?
7476

75-
**Grasp** turns any GitHub or GitLab repository — cloud or self-hosted — or local codebase into an interactive architecture map in seconds. **131 MCP tools** (plus 8 Resources and 2 guided Prompts) expose the full analysis engine to Claude Code, Cursor, and any MCP-compatible agent.
77+
**Grasp** turns any GitHub or GitLab repository — cloud or self-hosted — or local codebase into an interactive architecture map in seconds. **150 MCP tools** (plus 8 Resources and 2 guided Prompts) expose the full analysis engine to Claude Code, Cursor, and any MCP-compatible agent.
7678

7779
```
78-
Paste URL / Open Folder → AST Analysis Engine → Architecture Map + 130 MCP Tools
80+
Paste URL / Open Folder → AST Analysis Engine → Architecture Map + 150 MCP Tools
7981
```
8082

8183
| | |
@@ -85,7 +87,7 @@ Paste URL / Open Folder → AST Analysis Engine → Architecture Map + 130 M
8587
| **No accounts** | Paste a URL and go |
8688
| **Works offline** | Analyse local folders without internet |
8789
| **35 languages** | JS/TS, Python, Go, Java, Rust, C/C++, C#, Ruby, Swift, Kotlin, Scala, Dart, Elixir, Erlang, Haskell, OCaml, F#, Clojure, Julia, Lua, R, Perl, Shell, PowerShell, Groovy, Zig, V, Nim, Crystal, VBA, Ada/SPARK, Vue, Svelte, PHP |
88-
| **131 MCP tools** | Dependency graphs, security, **OSV.dev SCA vulnerability scanning**, DORA, brain store, Kuzu graph schema v3, communities, ORM tracker, git change impact, architecture drift detection, test coverage gap map, org dashboard, PR impact action, MCP Resources/Prompts, `grasp setup` editor auto-config |
90+
| **150 MCP tools** | Dependency graphs, security, **OSV.dev SCA vulnerability scanning**, DORA, brain store, Kuzu graph schema v3, communities, ORM tracker, git change impact, architecture drift detection, test coverage gap map, org dashboard, PR impact action, MCP Resources/Prompts, `grasp setup` editor auto-config |
8991
| **11 AI providers** *(+ unlimited via routers)* | Direct: Anthropic Claude (3 models), OpenAI (GPT-4o + o-series), Google Gemini (3), Mistral (2), Groq (3), DeepSeek (chat + reasoner), Ollama (local), LM Studio (local), Custom OpenAI-compatible endpoint. Routers: OpenRouter (200+ models via slug) and Together AI (50+ open-source models). **Switchable mid-conversation**, **fully off by default** (chat panel closed = zero network calls), **API keys stored in `localStorage` only** — Grasp has no proxy or telemetry. |
9092
| **10 graph views** | Force graph, 3D, arch, treemap, matrix, tree (dendrogram), flow (sankey), bundle, cluster (disjoint), heatmap |
9193
| **Grasp Brain** | SQLite + Kuzu persistent store — index once, query instantly. FTS5 + 384D vector embeddings + Cypher graph queries |
@@ -116,7 +118,7 @@ Grasp is intentionally additive to whatever static-analysis or graph tool you al
116118
|-----------|-------|
117119
| Run on a stranger's repo without cloning | ✅ Paste URL → instant analysis in browser |
118120
| Zero install, zero account | ✅ Single HTML file, runs entirely in browser |
119-
| MCP-native — works with Claude Code, Cursor, Copilot, Continue, etc. |130 tools, 8 Resources, 2 Prompts |
121+
| MCP-native — works with Claude Code, Cursor, Copilot, Continue, etc. |150 tools, 8 Resources, 2 Prompts |
120122
| Supply-chain CVE scanning | ✅ OSV.dev across npm/PyPI/Go/Cargo/Maven |
121123
| 35 languages with native AST | ✅ Tree-sitter |
122124
| Local — your code never leaves your machine | ✅ Browser fetches direct; MCP runs as subprocess |
@@ -218,7 +220,7 @@ Every tagged release auto-publishes to all channels:
218220

219221
| AI tool | How to install | Notes |
220222
|---------|----------------|-------|
221-
| **Claude Code** | `claude mcp add grasp -- npx -y grasp-mcp-server` | Native MCP — all 130 tools + 8 Resources + 2 Prompts |
223+
| **Claude Code** | `claude mcp add grasp -- npx -y grasp-mcp-server` | Native MCP — all 150 tools + 8 Resources + 2 Prompts |
222224
| **Cursor** | Add `grasp-mcp-server` to `~/.cursor/mcp.json` | Native MCP |
223225
| **Cline / Roo Code / Kilo Code** | MCP config in VS Code settings | Native MCP |
224226
| **Windsurf** | MCP config | Native MCP |
@@ -259,7 +261,7 @@ Then in Safari: **Settings → Extensions → enable Grasp**. If it doesn't appe
259261
│ Analysis Pipeline (mcp/src/) │
260262
│ │
261263
│ 1. scan file enumeration + gitignore │
262-
│ 2. parse tree-sitter AST · 35 languages · 16 native │
264+
│ 2. parse tree-sitter AST · 35 languages · 19 native │
263265
│ 3. resolvers tsconfig path-alias · Jedi-style Python imports │
264266
│ 4. routes HTTP route detection (Express/FastAPI/Gin) │
265267
│ 5. tools MCP/gRPC tool definition detection │
@@ -278,7 +280,7 @@ Then in Safari: **Settings → Extensions → enable Grasp**. If it doesn't appe
278280
│ Browser App │ │ MCP Server (CLI) │
279281
│ index.html │ │ grasp-mcp-server │
280282
│ │ │ │
281-
│ 10 graph views │ │ 130 tools · 8 Resources │
283+
│ 10 graph views │ │ 150 tools · 8 Resources │
282284
│ 16 color modes │ │ 2 guided Prompts │
283285
│ AI Chat (11p) │ │ Brain + Kuzu Schema v3 │
284286
│ Ask Grasp │ │ Hybrid search (BM25+vector) │
@@ -367,6 +369,21 @@ Colors files by commit frequency. Works for GitHub repos (via API) and **local r
367369
### 🔎 Duplicate & Similarity Detection
368370
The **Dup** color mode highlights files with exact or near-duplicate code. The `grasp_similarity` MCP tool returns ranked duplicate clusters for targeted refactoring.
369371

372+
### 🧠 Multimodal Knowledge Graph *(MCP server)*
373+
Build a queryable knowledge graph from your codebase **and** external documents, then ask natural-language questions with cited answers. Runs entirely inside the Node MCP server — **not** the browser app.
374+
375+
`grasp_ingest` parses PDF, DOCX, XLSX, HTML, images (OCR), audio/video (local Whisper via `@xenova/transformers` + ffmpeg), YouTube, and URLs; heavy parsers are optional, lazy-loaded dependencies. Entities and relations are tagged **EXTRACTED** vs **INFERRED** with source locators and persisted to SQLite `kg.db`; retrieval is hybrid BM25 + vector. A **local-first** multi-LLM layer auto-detects Ollama before any cloud key and falls back to a deterministic engine that needs zero credentials (Anthropic / OpenAI / Gemini / DeepSeek / Kimi / Azure / Bedrock / Ollama). The whole server can optionally be shared across a team over HTTP (`GRASP_HTTP_MCP=1`, optional `GRASP_HTTP_API_KEY`, port `7333`, `/health`).
376+
377+
| MCP Tool | Description |
378+
|----------|-------------|
379+
| `grasp_ingest` | Ingest a file, URL, or media source (PDF/DOCX/XLSX/HTML/image OCR/audio/video/YouTube) into the knowledge graph |
380+
| `grasp_kg_ask` | Natural-language Q&A over the graph with inline source citations (hybrid BM25 + vector) |
381+
| `grasp_kg_trace` | BFS path-tracing between two entities |
382+
| `grasp_kg_explain` | Explain an entity, its relations, and whether each fact was EXTRACTED or INFERRED |
383+
| `grasp_kg_stats` | Graph statistics — entity/relation counts, hubs, and god-nodes |
384+
| `grasp_kg_export` | Export the graph as Cypher, GraphML, JSON, or Mermaid |
385+
| `grasp_llm_status` | Report the active LLM provider and any detected local models (Ollama), including deterministic-fallback state |
386+
370387
### 👥 Code Ownership
371388
Top contributors per file from git history, with line-percentage breakdowns. One-click jump to GitHub Blame.
372389

@@ -1124,9 +1141,9 @@ Comment `@grasp-bot analyze` on any PR — Grasp posts a full health report inli
11241141

11251142
| Term | Plain English |
11261143
|------|---------------|
1127-
| **MCP (Model Context Protocol)** | An open protocol for AI assistants to call tools. Grasp's MCP server exposes 130 tools to Claude Code, Cursor, etc. |
1144+
| **MCP (Model Context Protocol)** | An open protocol for AI assistants to call tools. Grasp's MCP server exposes 150 tools to Claude Code, Cursor, etc. |
11281145
| **AST (Abstract Syntax Tree)** | A tree representation of source code. Grasp uses tree-sitter to build them in 35 languages. |
1129-
| **tree-sitter** | A parser library that builds ASTs incrementally and accurately. Grasp ships native bindings for 16 languages |
1146+
| **tree-sitter** | A parser library that builds ASTs incrementally and accurately. Grasp ships native bindings for 19 languages |
11301147
| **fan-in / fan-out** | How many other files import this file (in) vs how many it imports (out). High fan-in = critical hub |
11311148
| **Brandes betweenness centrality** | Algorithm that finds files sitting on the most "shortest paths" between others — chokepoints |
11321149
| **Leiden / Louvain** | Algorithms that group densely-connected nodes into communities (microservice-candidate detection) |
@@ -1216,7 +1233,7 @@ JavaScript · TypeScript · Python · Go · Java · Rust · C · C++ · C# · Ru
12161233
│ Browser Apps │ │ MCP Server + CLI │ │ IDE Extensions │
12171234
│ │ │ (grasp-mcp-server) │ │ │
12181235
│ index.html │ │ │ │ VS Code │
1219-
│ · React + D3 │ │ 130 tools │ │ JetBrains │
1236+
│ · React + D3 │ │ 150 tools │ │ JetBrains │
12201237
│ · 10 graph views │ │ 8 MCP Resources │ │ Zed │
12211238
│ · AI Chat (11 prov) │ │ 2 guided Prompts │ │ Neovim · Vim │
12221239
│ · Confidence overlay │ │ Brain (SQLite+Kuzu) │ │ Emacs │
@@ -1257,10 +1274,12 @@ JavaScript · TypeScript · Python · Go · Java · Rust · C · C++ · C# · Ru
12571274
12581275
**Browser app:** zero dependencies to install. React 18, D3.js 7, Babel from CDNs. Tree-sitter WASM grammars load lazily and cache in IndexedDB.
12591276
1260-
**MCP server:** Node.js 18+. Native tree-sitter bindings for AST-backed function extraction and cyclomatic complexity across 16 languages: Python, Go, Java, Kotlin, Rust, C, C++, C#, Ruby, JavaScript, TypeScript, TSX, Swift, PHP, Scala, Zig.
1277+
**MCP server:** Node.js 18+. Native tree-sitter bindings for AST-backed function extraction and cyclomatic complexity across 19 languages: Python, Go, Java, Kotlin, Rust, C, C++, C#, Ruby, JavaScript, TypeScript, TSX, Swift, PHP, Scala, Zig, Bash, Elixir, Julia.
12611278
12621279
**Brain store:** two persistent stores — SQLite at `~/.grasp/brain.db` (file metadata, coupling, security) and Kuzu graph DB at `~/.grasp/graph/` (function call graph, imports, return-type edges — queryable via Cypher).
12631280
1281+
**Knowledge graph (MCP server):** three new module groups under `mcp/src/` — `ingest/` (PDF, DOCX, XLSX, HTML, image OCR, audio/video via local Whisper, YouTube, URL; heavy parsers are optional lazy-loaded deps), `llm/` (`provider.ts` — a local-first multi-provider layer that auto-detects Ollama before any cloud key, with a zero-credential deterministic fallback; supports Anthropic/OpenAI/Gemini/DeepSeek/Kimi/Azure/Bedrock/Ollama), and `semantic/` (SQLite `kg.db` of EXTRACTED/INFERRED entities and relations with source locators, hybrid BM25 + vector retrieval, BFS path-tracing, hub/god-node detection). Exposed via `grasp_ingest` / `grasp_kg_*` / `grasp_llm_status`; optionally shared across a team over HTTP (`GRASP_HTTP_MCP=1`, optional `GRASP_HTTP_API_KEY`, port 7333, `/health`).
1282+
12641283
**IDE extensions:** VS Code (`vscode-extension/`), JetBrains (`jetbrains-plugin/`), Zed, Neovim, Vim, Emacs, Eclipse, Continue — all backed by the same MCP server.
12651284
12661285
**Browser extensions:** Chrome, Firefox, and Safari (`browser-extension/`, `safari-extension/`) — MV3, inject a floating Grasp button on GitHub and GitLab pages.
@@ -1338,7 +1357,7 @@ Free to use, modify, and self-host. You may not offer Grasp as a hosted or manag
13381357

13391358
<div align="center">
13401359

1341-
**131 MCP tools · 35 languages · 11 AI providers + 200+ models · zero install · zero data collection**
1360+
**150 MCP tools · 35 languages · 11 AI providers + 200+ models · zero install · zero data collection**
13421361

13431362
*Dependency graphs, security scanner, DORA metrics, and Grasp Brain — everywhere you write code.*
13441363

0 commit comments

Comments
 (0)