Loading repository data…
Loading repository data…
AdrianV101 / repository
Connect Claude Code to your Obsidian vault — MCP server plugin with 20 tools, agents, and hooks for knowledge management
Give Claude persistent, structured memory across conversations using your Obsidian vault. Read, write, search, and navigate your knowledge base — all from within Claude Code.
Under the hood, this Claude Code plugin provides 20 MCP (Model Context Protocol) tools for note creation, semantic search, graph traversal, metadata queries, and session memory — plus agents, hooks, and skills for seamless workflow integration. Published on npm as obsidian-pkm.
If you find this useful, please star the repo — it helps others discover the plugin.
Claude Code has built-in memory, but it's flat text files scoped to individual projects — no structure, no search beyond exact matches, no connections between notes, and no way to query across projects. As knowledge grows, it doesn't scale. This server replaces that with a proper PKM layer: structured notes with enforced metadata, semantic search, a navigable knowledge graph, and cross-project access through a single Obsidian vault.
Without this, knowledge stays fragmented across per-project memory files and chat logs. With it, your AI assistant maintains a unified knowledge base that compounds over time.
| Vault PKM | remember | Claude built-in memory | |
|---|---|---|---|
| Knowledge base | Your Obsidian vault (markdown files you own) | Compressed conversation logs (.remember/ dir) | CLAUDE.md + auto-memory files |
| Scope | Cross-project (one vault for everything) | Per-project | Per-project (git-repo scoped) |
| Semantic search | OpenAI embeddings | — | — |
| Graph traversal | Wikilink BFS, link health audits | — | — |
| Structured notes | 13 templates with validated frontmatter | Plain markdown | Plain markdown |
| Metadata queries | Filter by type, status, tags, dates, custom fields | — | — |
| Session memory | Activity log (every tool call with timestamps) | Tiered daily summaries (Haiku-compressed) | Manual (user writes CLAUDE.md) |
| Setup effort | Medium (vault path + optional OpenAI key) | Low (auto hooks, no config) | None (built-in) |
| MCP tools | 20 | 0 (hooks-based) | 0 |
| Agents | 3 (explorer, capture, auditor) | 0 | 0 |
remember is great for lightweight session continuity with minimal setup. Vault PKM is for developers who want a structured, searchable, interconnected knowledge base that grows with every project.
| Tool | Description |
|---|---|
vault_write | Create notes from templates with enforced frontmatter (ADRs, research, devlogs, tasks, etc.) |
vault_append | Add content to notes, with positional insert (after/before heading, end of section) |
vault_edit | Surgical string replacement for precise edits |
vault_update_frontmatter | Atomic YAML frontmatter updates (set, create, remove fields; validates enums by note type) |
| Tool | Description |
|---|---|
vault_search | Full-text keyword search across markdown files |
vault_semantic_search | Conceptual similarity search via OpenAI embeddings — finds related notes even with different wording |
vault_query | Query by YAML frontmatter (type, status, tags, dates, custom fields) with sorting |
vault_tags | Discover all tags with per-note counts; folder scoping, glob filters, inline tag parsing |
vault_suggest_links | Suggest relevant notes to link based on content similarity |
| Tool | Description |
|---|---|
vault_links | Wikilink analysis (incoming and outgoing links for a note) |
vault_neighborhood | Graph exploration via BFS wikilink traversal — discover related notes by proximity |
vault_add_links | Add annotated wikilinks to a note's section with deduplication |
vault_link_health | Audit link quality — find orphans, broken links, weak connections, ambiguous links |
| Tool | Description |
|---|---|
vault_read | Read note contents (pagination by heading, tail, chunk, line range; auto-redirects large files) |
vault_peek | Inspect file metadata and structure without reading full content |
vault_list | List files and folders |
vault_recent | Recently modified files |
| Tool | Description |
|---|---|
vault_move | Move/rename files with automatic wikilink updating across the vault |
vault_trash | Soft-delete to .trash/ (Obsidian convention), warns about broken incoming links |
| Tool | Description |
|---|---|
vault_activity | Cross-conversation memory — logs every tool call with timestamps and session IDs |
Agents (3) run autonomously in foreground or background:
| Agent | Purpose |
|---|---|
vault-explorer | Research existing knowledge before creating notes |
pkm-capture | Devlog entries + knowledge capture after commits and work blocks |
link-auditor | Audit vault link health after bulk note changes |
Skills (6) are guided workflows triggered by slash commands:
| Skill | Purpose |
|---|---|
pkm-write | Duplicate checking, link discovery, and annotations when creating notes |
pkm-explore | Graph + semantic exploration to map existing knowledge on a topic |
pkm-session-end | Session wrap-up: devlog, undocumented work capture, link health audit |
add-task | Fast task capture from a title with duplicate detection, priority shorthands, and due date |
triage-tasks | Surface open tasks as a numbered list with git completion hints; batch-update via shorthand (e.g. 1,3 done | 2 active) |
tackle-task | Work a task end-to-end: read, explore vault context, route to the right workflow tier, close when done |
Commands (2) for setup and configuration:
| Command | Purpose |
|---|---|
/vault-pkm:setup | Configure vault path, API keys, and permissions |
/vault-pkm:init-project | Connect a code repository to a vault project folder |
fetch and ES modules)Prebuilt native binaries are included for Node 20/22 on Linux x64, macOS (x64/arm64), and Windows x64. Most users need nothing else. If the prebuilt fails, you'll need C++ build tools — see Troubleshooting.
claude plugin marketplace add anthropics/claude-plugins-community
claude plugin install vault-pkm@claude-community
Run the setup skill in Claude Code:
/vault-pkm:setup
The setup skill walks you through vault path, API keys, tool permissions, and verification. Hooks are registered automatically by the plugin system.
Important: Restart your Claude Code session after setup completes so the MCP server picks up the new configuration.
If you need templates and the PARA folder structure, run the vault scaffolding wizard:
npx obsidian-pkm init
This is separate from the plugin install above — it only sets up your vault's directory structure (PARA folders, note templates). Nothing is written until you confirm each step.
Note: The first
npxrun downloads and compiles native dependencies, which may take 30-60 seconds. Subsequent runs are instant.
Step 1 — Vault path. Point to an existing Obsidian vault or create a new one. The wizard resolves ~, $HOME, and relative paths automatically. Safety checks prevent using system directories (/, /home, etc.) as a vault. For existing non-empty directories you can use it as-is, create a subfolder inside it, or wipe it (with triple confirmation). You'll be offered an optional backup before any changes.
Step 2 — Note templates. Copies template files into <vault>/05-Templates/. Three options:
adr, daily-note, devlog, fleeting-note, literature-note, meeting-notes, moc, note, permanent-note, project-index, research-note, task, troubleshooting-log)note.md (a single generic template)Existing templates are never overwritten.
Step 3 — PARA folder structure. Creates 7 top-level folders with _index.md stubs:
| Folder | Purpose |
|---|---|
00-Inbox/ | Quick captures and unsorted notes |
01-Projects/ | Active project folders |
02-Areas/ | Ongoing areas of responsibility |
03-Resources/ | Reference material and reusable knowledge |
04-Archive/ | Completed or inactive items |
05-Templates/ | Note templates |
06-System/ | System configuration and metadata |
Each _index.md has type: moc frontmatter. Existing folders and index files are skipped.
Open Claude Code and try:
List the folders in my vault
Claude should call vault_list and show your vault's directory structure. If it works, the server is connected and ready.
Add your OpenAI API key to ~/.claude/settings.json under the env block:
{
"env": {
"VAULT_PATH": "/path/to/vault",
"VAULT_PKM_OPENAI_KEY": "sk-your-key-here"
}
}
Use VAULT_PKM_OPENAI_KEY (preferred) to avoid conflicts with project-level OpenAI keys.