
基于 git 支持的 Obsidian Vault 的开源 MCP 服务器。单用户,自托管。六个工具,混合搜索、来源/责任识别、自动链接发现。
概览
六个工具,一个 git 支持的 vault,单用户。Claude、ChatGPT、Cursor 或任何兼容 MCP 的客户端连接并获得结构化访问——搜索、读取、写回、图诊断。你的 Vault 依然属于你:Git 仓库中的 markdown 文件,永远有版本限制。 Grove 是 2026-04 → 2026-05 年间的托管产品。你看到的仓库是从中诞生的开源大教堂:一个基于 Obsidian Vault 的个人 MCP 层,单用户自主机。多租户 SaaS 层、自治代理层、加密、试验、候补名单和管理门户都已被剥离。完整历史请参见 RETROSPECTIVE.md。 每次写入都是 git 提交。每个提交都可以携带来源预告,通过责怪显示读取路径,这样未来的读者就能知道用户的立场思维,而不是 AI 的瞬间综合。
概述(AI 翻译)
开源MCP服务器,使你的Obsidian保险库可从任何AI客户端搜索和编写。
六个工具,一个 git 支持的 vault,单用户。Claude、ChatGPT、Cursor 或任何兼容 MCP 的客户端连接并获得结构化访问——搜索、读取、写回、图诊断。你的 Vault 依然属于你:Git 仓库中的 markdown 文件,永远有版本限制。
关于此仓库。 Grove 是托管产品,时间为2026-04→2026-05。仓库 你看到的>开源大教堂正是从中诞生的:一个 个人MCP层,基于Obsidian vault,单用户,自托管。该 多租户SaaS层、自治代理层、加密、追踪系统, 候补名单和行政门户都已被移除。参见
RETROSPECTIVE.md完整历史。
六件工具
| 工具 | 它的作用 |
|---|---|
query |
混合BM25 + 矢量+标题搜索,配合RRF融合。返回带有URL的排名摘要。 |
get |
按路径或标题阅读笔记。各段曲面来源(耐用声与易腐声)。 |
multi_get |
批次读取通过球状或逗号分隔路径进行。 |
write_note |
创建/更新/软删除/硬删除/移动音符。单次操作或批量操作(原子可选)。 |
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Grove
Open-source MCP server that makes your Obsidian vault searchable and writable from any AI client.
Six tools, one git-backed vault, single-user. Claude, ChatGPT, Cursor, or any MCP-compatible client connects and gets structured access — search, read, write-back, graph diagnostics. Your vault stays yours: markdown files in a git repo, versioned forever.
┌─────────────────────────────────────────────────────────┐
│ MCP client (Claude / Cursor / …) │
└──────────────────────┬──────────────────────────────────┘
│ MCP — Streamable HTTP + Bearer
▼
┌─────────────────────────────────────────────────────────┐
│ grove-server │
│ 6 tools · write queue · provenance · discovery │
└──────────────────────┬──────────────────────────────────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
Hybrid Vault Discovery
Search (git) worker
BM25+Vec (extract → link)
About this repo. Grove was a hosted product 2026-04 → 2026-05. The repo you’re looking at is the open-source cathedral that came out of it: a personal MCP layer over an Obsidian vault, single-user, self-host. The multi-tenant SaaS layer, autonomous-agent layer, encryption, trails, waitlist, and admin portal have all been stripped. See
RETROSPECTIVE.mdfor the full history.
The six tools
| Tool | What it does |
|---|---|
query |
Hybrid BM25 + vector + title search with RRF fusion. Returns ranked snippets with URLs. |
get |
Read a note by path or title. Surfaces per-segment provenance (durable vs perishable voice). |
multi_get |
Batch read via glob or comma-separated paths. |
write_note |
Create / update / soft-delete / hard-delete / move a note. Single op or batch (atomic optional). |
list_notes |
List notes matching a pattern. Optional alias resolution. |
vault_status |
Health, history, diagnostics, graph, lifecycle digest, discovery state, perf counters. |
Every write is a git commit. Every commit can carry provenance trailers that the read path surfaces via blame so future readers know what’s the user’s standing thinking vs an AI’s moment-in-time synthesis.
Quick start
You need:
- Node ≥ 22
- A git-backed Obsidian-style markdown vault on disk
- A QMD index for the vault (Grove reads BM25 + vector hits from it)
- A Voyage AI API key for per-write embeddings (
voyage-4-large)
git clone https://github.com/jmilinovich/grove.git
cd grove
npm install
Set the env vars:
export GROVE_VAULT=/path/to/your/vault # absolute path to the git repo
export GROVE_API_KEY=$(openssl rand -hex 32) # your bearer token — keep secret
export VOYAGE_API_KEY=... # Voyage AI key for embeddings
安装
npx tsx src/server.ts