Stellavault

io.github.Evanciel由 GitHub 帳號 Evanciel 發布v0.9.0更新於 Oct 25, 2026

Local-first MCP server: Claude searches, asks & drafts from your Obsidian vault. 21 tools, no keys.

已驗證STDIO僅桌面檔案與儲存知識與記憶

概覽

AI 產生的概覽

本地優先的 MCP 伺服器,讓助理無需 API 金鑰即可搜尋、提問、起草並分析 Obsidian 風格的 Markdown 筆記庫。

可以做什麼
以語意、關鍵字和 wikilink 混合排序加上時效重排來搜尋筆記庫,並進行以筆記庫為依據的問答和跨庫聯邦搜尋。依據筆記產生草稿,並建立達 wiki 品質的知識筆記。回報記憶衰減、知識缺口、矛盾與重複內容,並執行筆記庫健康檢查。透過其餘工具處理文件、主題、決策、快照和匯出。
適用情境
適合將筆記保存在本機 Markdown 筆記庫,並希望 Claude 或其他 MCP 用戶端在不把內容上傳到雲端服務的情況下讀取、搜尋和推理這些筆記的使用者。適用於個人知識管理、依據既有筆記起草內容,以及在大型筆記集合中找出缺口或矛盾。
執行需求
透過 npx 以本機程序執行,需要 Node.js 20 或更新版本。需要存在並已建立索引的 Markdown 筆記庫資料夾;選用的 STELLAVAULT_DB_PATH 變數可覆寫 SQLite 向量資料庫位置。首次執行會下載約 30 MB 的本機嵌入模型。無需 API 金鑰或帳號。
安裝前請注意
伺服器可在筆記庫中建立筆記和草稿,請檢查其寫入內容。聯邦搜尋是預設關閉的實驗性點對點功能;啟用後,一旦提高分享層級,可能會與對等節點分享標題和片段。選用的 AI 增強起草會將內容傳送到外部 API 並產生費用。除非主動選擇,筆記庫內容保留在本機。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Stellavault,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Stellavault — drop anything, it compiles itself into knowledge]

The local-first second brain that Claude remembers.
Karpathy's self-compiling wiki × Zettelkasten — fully local, vault-safe, and MCP-native.

[MCP server] [npm] [CI] [tests] [node] [license]

English · 한국어 · 日本語 · 简体中文

🤖 Add to Claude / Cursor · ⬇ Desktop App · ⚡ Quickstart · 🌐 Live Demo

One command to let Claude read your vault:

bash
npx -y stellavault setup    # wires the MCP server into Claude Code / Desktop, Cursor, Windsurf, or VS Code

Claude Code user? Install the plugin instead — the MCP server plus /vault-ask, /vault-review, /vault-decision skills, in two commands:

/plugin marketplace add Evanciel/stellavault/plugin install stellavault@stellavault

A second brain that compiles itself. Stellavault fuses two ideas about how knowledge should live and grow:

  • 🧠 Karpathy's self-compiling wiki — drop in anything (a PDF, a YouTube link, a passing thought) and it's auto-extracted into raw/, then compiled into a clean _wiki/ of concepts and backlinks. Your knowledge re-compiles itself as it grows, instead of rotting in a folder.
  • 🕸️ Zettelkasten — atomic notes, [[wikilinks]], and emergent connections, so a web of ideas (not a folder tree) becomes the real structure of how you think.

The result is one local-first knowledge tool — a full markdown editor, a 3D neural graph, hybrid AI search, and spaced-repetition memory decay — shipped as a desktop app, CLI, Obsidian plugin, and MCP server that lets Claude read your entire vault. No cloud, no API keys, and your original files are never modified.

[3D Knowledge Graph]
Your vault as a neural network. Local-first, no cloud required.

Contents

Highlights · Why Stellavault? · Install · Editor · Pipeline · Intelligence · Search & Ranking · MCP Integration · 3D Visualization · Configuration · Performance · Tech Stack · Security · Troubleshooting

Highlights

  • 🧠 It compiles itself. Drop in a PDF, a YouTube link, or a half-formed thought — Stellavault extracts it to raw/, then compiles a clean _wiki/ with concepts and backlinks. Knowledge that organizes itself as it grows.
  • 🔍 Search that actually finds it. Hybrid retrieval fuses semantic meaning, exact keywords (BM25), and your own [[wikilinks]] / #tags with weighted RRF, then re-ranks by an FSRS memory model so what you're actually using resurfaces. 50+ languages, fully local, zero API keys.
  • 🌌 Your mind, in 3D. A real-time neural graph (React Three Fiber) — cluster view with folder drilldown, per-note local graphs, tag overlays, and two-class edges that keep your wikilinks visually distinct from AI-inferred similarity. Scales to a full 17k-note vault. A way to see the shape of what you know.
  • 🤖 Claude reads your entire vault. A first-class MCP server (21 tools): Claude can search, ask, draft, lint, and analyze your knowledge from Claude Code, Claude Desktop, Cursor, Windsurf, or VS Code.
  • ⏳ It never silently forgets. FSRS memory decay surfaces the real notes you're about to lose — plus gap, contradiction, and duplicate detection across the whole vault.
  • 🔒 Local-first. Vault-safe. Zero keys. Local embeddings, an on-device vector store, and your original files are never modified. Nothing leaves your machine unless you opt in.

Why Stellavault?

Most tools make you choose between writing, searching, and remembering. Stellavault does all three — locally, and in a way Claude can read.

StellavaultObsidianNotionPlain RAG script
Local-first, works offline✅✅☁️ cloud⚠️ usually cloud
Semantic search, no API key✅⚠️ plugin + key💰 paid AI⚠️ needs key
Original files never modified✅✅❌ proprietary➖
Self-compiling (ingest → wiki)✅❌❌❌
3D knowledge graph✅2D / plugin❌❌
Spaced-repetition decay (FSRS)✅⚠️ plugin❌❌
Gap / contradiction / dup detection✅❌❌❌
MCP-native (Claude reads your vault)✅➖ community☁️ cloud➖

[!NOTE] Not either/or — Stellavault even runs inside Obsidian as a plugin. Keep your editor; add a brain.

Install

Desktop App (Recommended — one click)

[!TIP] Download → Unzip → Run stellavault.exe (Windows) or stellavault (Linux) → Pick your notes folder → Done.

CLI (for developers)

bash
npm install -g stellavault    # or: npx stellavaultstellavault init              # Interactive setup (3 min): index vault + connect AI clientsstellavault setup             # Connect to Claude Code/Desktop, Cursor, Windsurf, VS Code (one command)stellavault graph             # Launch 3D graph in browser

Requires Node.js 20+. Run stellavault doctor to diagnose issues.

Obsidian Plugin

  1. Download main.js + manifest.json + styles.css from stellavault-obsidian releases
  2. Place in .obsidian/plugins/stellavault/
  3. Enable in Settings → Community plugins
  4. Start API: npx stellavault graph in your vault folder

Editor

Full-featured markdown editor — on par with Obsidian.

Full formatting & block support — tables, code, KaTeX, slash commands, wikilinks, split view… (click to expand)
FeatureStatus
Bold, Italic, Underline, Strikethrough✅
Headings 1–6✅
Bullet, Numbered, Task lists (nested checkboxes)✅
Tables (create, resize columns, add/remove rows & cols)✅
Code blocks with syntax highlighting (40+ languages)✅
Images (URL, clipboard paste, drag & drop)✅
KaTeX math rendering ($E=mc^2$ inline, $$...$$ display)✅
/Slash commands (12 block types, fuzzy search)✅
[[Wikilink]] autocomplete✅
Split view (vertical + horizontal, Ctrl+\)✅
Text alignment (left / center / right)✅
Highlight, Superscript, Subscript✅
Smart typography (curly quotes, em/en dashes)✅
Horizontal rules✅

The Pipeline

Capture ──→ Organize ──→ Distill ──→ Express
Drop anything → auto-extract → raw/ → compile → _wiki/ → draft

Inspired by Karpathy's self-compiling knowledge architecture.

Ingest 14 Formats

InputHow
PDF, DOCX, PPTX, XLSXstellavault ingest report.pdf
JSON, CSV, XML, YAML, HTML, RTFstellavault ingest data.json
YouTubestellavault ingest https://youtu.be/... — transcript + timestamps
URLstellavault ingest https://... — HTML → markdown
Textstellavault ingest "quick thought"
Folderstellavault ingest ./papers/ — batch all files
Desktop / Web UIDrag & drop files directly

Express: Get Knowledge Out

bash
stellavault draft "AI" --format blog      # Blog post from your vaultstellavault draft "AI" --format outline   # Structured outlinestellavault draft "AI" --ai              # Claude API enhanced ($0.03)

Or use the Express tab in the desktop app — enter a topic, pick a format, and generate a draft grounded in your vault. Save to _drafts/ and edit inline.


Intelligence (What Makes Stellavault Unique)

These features do not exist in Obsidian — even with plugins.

FeatureCommand / DesktopDescription
Memory Decaystellavault decay / Memory tabFSRS-based — shows which real notes you are forgetting
Knowledge Gapsstellavault gapsDetects weak connections between topic clusters
Contradictionsstellavault contradictionsFinds conflicting statements across your vault
Duplicatesstellavault duplicatesNear-identical notes with similarity score
Health Checkstellavault lintAggregated vault health score (0–100)
Learning Pathstellavault learnAI-personalized review recommendations
Daily BriefDesktop app home screenPush-type: top decaying notes + stats on app open
Auto-TaggingAutomatic on ingestContent-based keyword extraction + category rules
Self-Compilingstellavault compileraw/ → _wiki/ with extracted concepts + backlinks

Search & Ranking

Hybrid retrieval that fuses multiple signals with weighted Reciprocal Rank Fusion (RRF) — tuned for a personal knowledge vault, fully local, zero API keys:

SignalWhat it capturesDefault weight
Semantic (dense)meaning; multilingual (50+ languages)1.0
BM25 (keyword)exact terms, code, names1.0
Entity-linkingyour [[wikilinks]], #tags, headings, titles — the curated graph1.5
FSRS recencygently surfaces notes you're actively using / forgetting±10%
  • Entity matching resolves natural-language queries via fuzzy substring + punctuation-normalized matching (Korean / CJK friendly), with a per-document diversity cap so one large note can't flood the top results.
  • Recency reuses the same FSRS memory model as the decay engine (not raw file mtime) — a note you're forgetting resurfaces; a mastered evergreen note isn't buried just for being old.
  • Adaptive rerank (long-running MCP server) further boosts results by your current session context (recent tags / paths).
  • Every weight is tunable per vault or via env vars — see Configuration.

MCP Integration (21 Tools)

bash
stellavault setup            # one command → Claude Code, Claude Desktop, Cursor, Windsurf, VS Code# or, for Claude Code only:claude mcp add stellavault -- stellavault serve
Manual config (any MCP client) — copy-paste JSON
json
{  "mcpServers": {    "stellavault": {      "command": "npx",      "args": ["-y", "stellavault", "serve"]    }  }}

Listed on the MCP registry as io.github.Evanciel/stellavault (also discoverable via Glama, Smithery, and mcp.so).

Claude can search, ask, draft, lint, and analyze your vault directly. Search runs the full hybrid pipeline — weighted RRF over semantic + BM25 + entity-linking, plus FSRS recency and session-adaptive reranking (see Search & Ranking).

ToolWhat it does
searchWeighted RRF (semantic + BM25 + entity) + FSRS recency + adaptive rerank
askVault-grounded Q&A
generate-draftAI drafts from your knowledge
get-decay-statusMemory decay report (FSRS)
detect-gapsKnowledge gap analysis
create-knowledge-nodeAI creates wiki-quality notes
federated-searchP2P search across vaults
+ 14 moreDocuments, topics, decisions, snapshots, export

3D Visualization

  • Neural graph with cluster coloring (React Three Fiber)
  • Cluster view (default) — a large vault folds into a small galaxy of labeled cluster super-nodes; an in-viewer [Cluster | All nodes] toggle switches to the dense raw view without reload, and clicking a super-node drills into that cluster's members
  • Constellation view (MST star patterns)
  • Heatmap overlay + Timeline slider + Decay overlay
  • Multiverse view — your vault as a universe in a P2P network
  • Dark/Light theme

Graph viewer scaling

The 3D graph renderer is bounded by two environment knobs (set them in the environment before launching stellavault graph):

Env varDefaultApplies toWhat it caps
GRAPH_NODE_CAP1500raw / "All nodes" view# of (most-recent) notes rendered as individual nodes.
GRAPH_CLUSTER_CAP3000cluster view (default)# of notes folded into the galaxy before clustering.

Why the caps matter. Edge construction is an inline O(n²) all-pairs cosine loop — n·(n-1)/2 pairs, each over 384 dims (see packages/core/src/api/graph-data.ts, the neighbors loop). At cap=3000 that is ~4.5M pairs (the multi-second build the 5-minute server cache absorbs); raising toward 13000 is ~84M pairs = minutes of build plus a multi-GB intermediate array that freezes the single-threaded Express handler (there is no worker). The raw "All nodes" path is the expensive direction (it runs the full cap), so the server clamps the requested ?cap per view (raw ≤ 4000, cluster ≤ 6000, rounded) to bound both build cost and cache cardinality.

Even the default cluster view is cheap to RENDER, not to BUILD. The first uncached fetch of either view runs the scoped-embedding load + the O(n²) cosine pass + k-means + a force settle on a single thread, stalling the handler for seconds. The viewer shows a loading state on the toggle so the tap isn't silently swallowed during that cold build.

[Heatmap overlay]
Heatmap — connection density across clusters
[Timeline slider]
Timeline — watch your vault grow over time
[Semantic search highlight]
Search — semantic matches highlighted in-graph
[Multiverse P2P view]
Multiverse — federated vaults as orbiting universes

Try It Now (Demo Vault)

bash
npx stellavault index --vault ./examples/demo-vault   # Index 10 sample notesnpx stellavault search "vector database"               # Semantic searchnpx stellavault graph                                  # 3D graph visualization

The demo vault includes interconnected notes about Vector Databases, Knowledge Graphs, Spaced Repetition, RAG, MCP, and more — perfect for exploring all features instantly.


Getting Started Guide

Desktop App

  1. Download → Unzip → Run
  2. First launch asks you to pick your notes folder
  3. Your notes appear in the sidebar — click to open
  4. Press Ctrl+P for quick file switching
  5. Click ✦ in the title bar for AI panel (semantic search, stats, draft)
  6. Click ◉ for 3D graph

CLI

bash
npm install -g stellavaultstellavault init                          # Setup wizardstellavault search "machine learning"     # Semantic searchstellavault ingest paper.pdf              # Add knowledgestellavault graph                         # 3D graph in browserstellavault brief                         # Morning briefingstellavault decay                         # What are you forgetting?

Keyboard Shortcuts (Desktop)

ShortcutAction
Ctrl+PQuick Switcher (fuzzy file search)
Ctrl+Shift+PCommand Palette (all actions)
Ctrl+SSave current note
Ctrl+\Toggle split view
Ctrl+BBold
Ctrl+IItalic
Ctrl+UUnderline
Ctrl+EInline code
/Slash commands (at start of line)
[[Wikilink autocomplete

Quick Reference

ActionDesktopCLI
Search notesCtrl+P or AI panelstellavault search "query"
Add a note+ Note button or drag & dropstellavault ingest "text"
See 3D graph◉ buttonstellavault graph
Memory decayAI panel → Memorystellavault decay
Generate draftAI panel → Draftstellavault draft "topic"
Health checkAI panel → Statsstellavault lint

Configuration

Stellavault reads ./.stellavault.json (or ~/.stellavault.json). Search ranking is fully tunable — sensible defaults work out of the box:

jsonc
{  "search": {    "rrfK": 60,    "weights": { "semantic": 1.0, "bm25": 1.0, "entity": 1.5 },    "recencyWeight": 0.2,                          // FSRS recency strength; 0 = off    "entityAliases": { "k8s": ["kubernetes"] }     // synonym / cross-lingual groups (exact-only)  }}

Environment variables override config (parsed with guards):

Env varEffect
STELLAVAULT_W_SEMANTIC / _BM25 / _ENTITYper-signal RRF weight (e.g. STELLAVAULT_W_ENTITY=2.0 for aggressive entity surfacing)
STELLAVAULT_RECENCY_WEIGHTrecency strength 0–1 (0 disables)
STELLAVAULT_DB_PATHoverride the index DB location
STELLAVAULT_WATCH0 to disable the auto-reindex file watcher while serve runs

Note: cross-lingual recall (e.g. a Korean query finding English notes) is handled automatically by the multilingual embedding model — entityAliases is an optional precision boost for the curated entity graph (tags / wikilinks) and abbreviations.


Performance

Tested on synthetic vaults — all operations under 1 second for typical use cases:

Operation100 docs500 docs1000 docs
Store init15ms15ms16ms
Bulk upsert12ms102ms~200ms
Search (BM25)<1ms<1ms<1ms
Get all docs<1ms2ms~4ms
124K dot products—36ms—

Run your own benchmarks:

bash
node tests/stress.mjs 500     # Test with 500 synthetic documents

Key optimizations:

  • HNSW graph building — sqlite-vec KNN for 200+ docs (O(n·K·log n) vs O(n²))
  • Pre-normalized vectors: cosine similarity → single dot product
  • Batched embedding loading (500/batch, prevents RAM overflow)
  • Upper-triangle brute-force for small vaults (< 200 docs)
  • O(n) K-Means centroid updates with typed arrays

Tech Stack

LayerTech
DesktopElectron + React + TipTap (15 extensions) + Zustand
RuntimeNode.js 20+ (ESM, TypeScript)
Vector StoreSQLite-vec (local, zero config)
EmbeddingMiniLM-L12-v2 (local, 50+ languages, batch processing)
SearchWeighted RRF (semantic + BM25 + entity) + FSRS recency
MathKaTeX (inline + display)
Codelowlight / highlight.js (40+ languages)
3DReact Three Fiber + Three.js
AIMCP (21 tools) + Anthropic SDK
P2PHyperswarm (optional, differential privacy)
CIGitHub Actions (Node 20 + 22)

Security

  • Local-first — no data leaves your machine unless you use --ai
  • Vault files never modified — indexes into SQLite, originals untouched
  • Electron sandbox enabled — renderer runs with reduced OS privileges
  • IPC path validation — all file operations stay inside vault root
  • API auth token — per-session, header-only (X-Stellavault-Token). Token endpoint is same-origin-only
  • CORS allow-list — localhost / 127.0.0.1 only by default; MCP HTTP transport opt-in
  • SSRF protection — private IPs blocked on URL ingest
  • E2E encryption — AES-256-GCM for cloud sync

Federation (experimental, off by default)

Peer-to-peer semantic search is shipped as an opt-in experimental feature. The default install does not join any swarm and never shares data.

Enable explicitly:

bash
# PowerShell$env:STELLAVAULT_FEDERATION_EXPERIMENTAL = "1"
# bash / zshexport STELLAVAULT_FEDERATION_EXPERIMENTAL=1
stellavault federate join

When enabled, federation uses Ed25519 identities with signed envelopes, mutual challenge-response handshake, per-envelope replay nonces, handshake timeout, per-peer rate limiting, and a receive-only sharing default (myNodeLevel=0). Run set-level 1+ in the federation prompt to actually share titles/snippets with peers.

[!WARNING] Upgrade note (v0.7.4) — federation wire format bumped from v2.0 to v2.1 (envelope-level nonce). v0.7.3 federation nodes are not compatible. Existing ~/.stellavault/federation/sharing.json files are not auto-downgraded to the safer defaults; review your myNodeLevel if you previously opted in.

See SECURITY.md for full details.

Troubleshooting

bash
stellavault doctor    # Check config, vault, DB, model, Node version

Common issues:

  • "Command not found" → npm i -g stellavault@latest
  • "API server not found" → npx stellavault graph
  • Empty graph → stellavault index
  • Slow first run → AI model downloads ~30MB once

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md to get started, and SECURITY.md to report a vulnerability responsibly.

License

MIT — full source code available for audit.

Links


Found this useful? ⭐ Star Stellavault — it genuinely helps the project reach more people who think in connected notes.

Built with ✦ for second-brain builders. · Download · Connect Claude · Report an issue

來源:README.md,提交 b205900

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.9.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分