obsidian-pkm
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@obsidian-pkm search my vault for notes about distributed systems"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vault PKM
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.
Why
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.
Structured session memory — Every tool call is logged with timestamps and session IDs, so Claude can recall exactly what was read, written, and searched in previous conversations — not just what was saved to a text file.
Structured knowledge creation — ADRs, research notes, devlogs, and tasks are created from enforced templates with validated frontmatter — not freeform text dumps. Your vault stays consistent and queryable.
Semantic discovery — "Find my notes about caching strategies" works even if you never used the word "caching." Conceptual search surfaces relevant knowledge that keyword search misses.
Graph-aware connections — Claude explores your knowledge graph by following wikilinks, discovering related notes by proximity rather than just content. Link suggestions help weave new notes into your existing web of knowledge.
Knowledge capture — Decisions, tasks, and research findings are captured by specialized agents in the background without interrupting your coding flow.
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.
How It Compares
Vault PKM | Claude built-in memory | ||
Knowledge base | Your Obsidian vault (markdown files you own) | Compressed conversation logs ( | 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.
Related MCP server: obsidian-ai-curator
Features
Knowledge Creation & Editing
Tool | Description |
| Create notes from templates with enforced frontmatter (ADRs, research, devlogs, tasks, etc.) |
| Add content to notes, with positional insert (after/before heading, end of section) |
| Surgical string replacement for precise edits |
| Atomic YAML frontmatter updates (set, create, remove fields; validates enums by note type) |
Discovery & Search
Tool | Description |
| Full-text keyword search across markdown files |
| Conceptual similarity search via OpenAI embeddings — finds related notes even with different wording |
| Query by YAML frontmatter (type, status, tags, dates, custom fields) with sorting |
| Discover all tags with per-note counts; folder scoping, glob filters, inline tag parsing |
| Suggest relevant notes to link based on content similarity |
Graph & Connections
Tool | Description |
| Wikilink analysis (incoming and outgoing links for a note) |
| Graph exploration via BFS wikilink traversal — discover related notes by proximity |
| Add annotated wikilinks to a note's section with deduplication |
| Audit link quality — find orphans, broken links, weak connections, ambiguous links |
Reading & Navigation
Tool | Description |
| Read note contents (pagination by heading, tail, chunk, line range; auto-redirects large files) |
| Inspect file metadata and structure without reading full content |
| List files and folders |
| Recently modified files |
Organization & Maintenance
Tool | Description |
| Move/rename files with automatic wikilink updating across the vault |
| Soft-delete to |
Session Memory
Tool | Description |
| Cross-conversation memory — logs every tool call with timestamps and session IDs |
Agents, Skills & Commands
Agents (3) run autonomously in foreground or background:
Agent | Purpose |
| Research existing knowledge before creating notes |
| Devlog entries + knowledge capture after commits and work blocks |
| Audit vault link health after bulk note changes |
Skills (6) are guided workflows triggered by slash commands:
Skill | Purpose |
| Duplicate checking, link discovery, and annotations when creating notes |
| Graph + semantic exploration to map existing knowledge on a topic |
| Session wrap-up: devlog, undocumented work capture, link health audit |
| Fast task capture from a title with duplicate detection, priority shorthands, and due date |
| Surface open tasks as a numbered list with git completion hints; batch-update via shorthand (e.g. |
| 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 |
| Configure vault path, API keys, and permissions |
| Connect a code repository to a vault project folder |
Prerequisites
Node.js >= 20 (Node 18 is EOL; uses native
fetchand ES modules)An MCP-compatible client such as Claude Code
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.
Quick Start
1. Install the Plugin
claude plugin marketplace add anthropics/claude-plugins-community
claude plugin install vault-pkm@claude-community2. Configure
Run the setup skill in Claude Code:
/vault-pkm:setupThe 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.
3. Scaffold Your Vault (optional)
If you need templates and the PARA folder structure, run the vault scaffolding wizard:
npx obsidian-pkm initThis 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:
Full set — all 13 templates (
adr,daily-note,devlog,fleeting-note,literature-note,meeting-notes,moc,note,permanent-note,project-index,research-note,task,troubleshooting-log)Minimal — just
note.md(a single generic template)Skip — for users with their own templates
Existing templates are never overwritten.
Step 3 — PARA folder structure. Creates 7 top-level folders with _index.md stubs:
Folder | Purpose |
| Quick captures and unsorted notes |
| Active project folders |
| Ongoing areas of responsibility |
| Reference material and reusable knowledge |
| Completed or inactive items |
| Note templates |
| System configuration and metadata |
Each _index.md has type: moc frontmatter. Existing folders and index files are skipped.
4. Verify It Works
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.
5. Enable Semantic Search (optional)
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. OPENAI_API_KEY is also accepted as a fallback. The previously-documented OBSIDIAN_PKM_OPENAI_KEY still works as a deprecated fallback — plan to rename it in your config. Restart Claude Code after saving.
Optional: VAULT_PKM_VAULT_NAME — overrides the vault name used in obsidian:// links emitted in tool output. Defaults to basename(VAULT_PATH), which is correct for most setups. Set this only if your on-disk folder name differs from the vault name you registered in Obsidian (e.g. VAULT_PATH=/Users/me/Notes but Obsidian shows the vault as My PKM).
This enables vault_semantic_search and vault_suggest_links. Uses text-embedding-3-large with a SQLite + sqlite-vec index stored at .obsidian/semantic-index.db. The index rebuilds automatically — delete the DB file to force a full re-embed.
The server works with any Obsidian vault. The included templates assume this layout:
Vault/
├── 00-Inbox/
├── 01-Projects/
│ └── ProjectName/
│ ├── _index.md
│ ├── planning/
│ ├── research/
│ └── development/decisions/
├── 02-Areas/
├── 03-Resources/
├── 04-Archive/
├── 05-Templates/ # Note templates loaded by vault_write
└── 06-System/Templates
vault_write loads all .md files from 05-Templates/ at startup and enforces frontmatter on every note created. Run npx obsidian-pkm init to install them automatically, or copy the files from templates/ manually.
13 included templates: adr, daily-note, devlog, fleeting-note, literature-note, meeting-notes, moc, note, permanent-note, project-index, research-note, task, troubleshooting-log. Add your own templates to 05-Templates/ and they become available to vault_write automatically.
Task notes enforce status (pending, active, done, cancelled) and priority (low, normal, high, urgent) enums. All other note types accept any string values for these fields.
CLAUDE.md for Your Projects
sample-project/CLAUDE.md is a template you can drop into any code repository to wire up Claude Code with your vault. It defines context loading, documentation rules, and ADR/devlog conventions.
Module dependencies:
graph LR
CC[Claude Code] -->|MCP protocol| IDX[index.js]
IDX --> HND[handlers.js]
IDX --> E[embeddings.js]
IDX --> A[activity.js]
HND --> H[helpers.js]
HND --> G[graph.js]
HND --> U[utils.js]
HND -->|read/write| V[(Obsidian Vault)]
E -->|embeddings API| OAI[OpenAI]
E -->|vector store| DB[(SQLite + sqlite-vec)]
A -->|activity log| DB2[(SQLite)]File layout:
├── index.js # MCP server setup, tool registration, lifecycle
├── handlers.js # Tool handler implementations
├── helpers.js # Pure functions (path security, filtering, templates, frontmatter)
├── graph.js # Wikilink resolution and BFS graph traversal
├── embeddings.js # Semantic index (OpenAI embeddings, SQLite + sqlite-vec)
├── activity.js # Activity log (session tracking, SQLite)
├── utils.js # Shared utilities (frontmatter parsing, file listing)
├── cli.js # CLI entry point (routes `init` subcommand or starts server)
├── init.js # Vault scaffolding wizard (templates, PARA folders)
├── .claude-plugin/ # Plugin packaging
│ └── plugin.json # Plugin manifest (identity, components, permissions)
├── hooks/ # Claude Code hooks (context loading, project resolution, session start)
├── agents/ # Specialized agents (vault-explorer, pkm-capture, link-auditor)
├── skills/ # PKM workflow skills (pkm-write, pkm-explore, pkm-session-end, add-task, triage-tasks, tackle-task)
├── commands/ # Slash commands (setup, init-project)
├── templates/ # Obsidian note templates
├── tests/ # Test suite (Node.js built-in test runner)
├── sample-project/ # Sample CLAUDE.md for your repos
└── docs/ # Supplementary documentationindex.js initializes the semantic index and activity log, then injects them into createHandlers(). All paths passed to tools are relative to vault root. The server includes path security to prevent directory traversal.
How It Works
Knowledge creation is template-based. vault_write loads templates from 05-Templates/, substitutes Templater-compatible variables (<% tp.date.now("YYYY-MM-DD") %>, <% tp.file.title %>), and validates required frontmatter fields (type, created, tags). This ensures every note in your vault has consistent metadata — making it queryable, sortable, and discoverable from day one. Task notes enforce enum validation on status and priority; other types accept project, deciders, due, and source.
Knowledge discovery works at two levels. Keyword search (vault_search) finds exact terms. Semantic search embeds notes using OpenAI and finds conceptually related content — so "managing overwhelm" surfaces notes about "cognitive load" even if those exact words never appear together. The semantic index watches for file changes in real-time and syncs across machines via Obsidian Sync.
Knowledge connections are maintained through Obsidian's [[wikilink]] graph. vault_neighborhood traverses links via BFS to discover related notes by proximity, while vault_suggest_links recommends connections you haven't made yet. vault_move rewrites wikilinks across the vault when you reorganize, and vault_trash warns about links that would break.
Session memory records every tool call with timestamps and session IDs, so Claude can recall what was read, written, or searched in previous conversations. This turns ephemeral chat sessions into a continuous thread of work.
Knowledge capture uses the pkm-capture agent to update the project devlog and persist PKM-worthy content from a session (decisions, research findings, tasks, bug root causes) in one pass. It is triggered automatically after git commits via a PreToolUse hook, or can be dispatched manually after significant work blocks. Runs in the background without interrupting the coding flow.
Fuzzy path resolution lets read-only tools accept short names instead of full vault paths. vault_read({ path: "devlog" }) resolves to 01-Projects/MyApp/development/devlog.md automatically (.md extension optional). Folder-scoped tools like vault_list, vault_search, and vault_query accept partial folder names — folder: "MyApp" resolves to 01-Projects/MyApp. Ambiguous matches return an error listing candidates. Write/destructive tools always require exact paths.
Troubleshooting
better-sqlite3 build fails during install
You need C++ build tools. See Prerequisites for your platform. On Linux, sudo apt install build-essential python3 usually fixes it.
Server starts but all tool calls fail with ENOENT
Your VAULT_PATH is wrong or missing. The server validates this at startup and exits with a clear error. Run /vault-pkm:setup to reconfigure the vault path.
vault_write says "no templates available"
Run npx obsidian-pkm init to install templates, or copy the templates/ files from this repo into your vault's 05-Templates/ directory. The server loads templates from there at startup.
Semantic search not appearing in tool list
Set VAULT_PKM_OPENAI_KEY in ~/.claude/settings.json. See Enable Semantic Search. Without it, vault_semantic_search and vault_suggest_links are hidden entirely.
Server not showing up in Claude Code after install
Run claude mcp list to check. If vault-pkm is missing, reinstall the plugin: claude plugin install vault-pkm@claude-community. Then run /vault-pkm:setup to configure it.
Semantic index not updating after file changes
Check your Node version with node -v. The file watcher uses fs.watch({ recursive: true }) which requires Node.js >= 20.
Not sure if everything is set up correctly?
Run npx obsidian-pkm doctor for a diagnostic checklist that validates your Node version, vault path, templates, API keys, and native dependencies.
Contributing
Contributions are welcome! Please read CONTRIBUTING.md for development setup, code style guidelines, and the pull request process before submitting changes.
See CHANGELOG.md for release history, SECURITY.md to report vulnerabilities, and PRIVACY.md for how the plugin handles your data.
License
MIT
Available Tools
18 toolsvault_activityA
Query or clear the activity log. Shows tool calls made across sessions with timestamps and arguments. Use action 'query' to retrieve entries, 'clear' to delete entries.
Inputs: path, tool, limit, since, +3 more.
vault_add_linksA
Add annotated wikilinks to a note's section (default: ## Related). Deduplicates by basename (skips links already present). Creates the section if missing. Requires exact path. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), links (required), section, create_section.
vault_appendA
Append content to an existing file, optionally under a specific heading. When 'position' is specified, heading is required and must exist in the file. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), content (required), heading, position.
vault_editA
Edit a file by replacing an exact string match. The old_string must appear exactly once in the file for safety. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), new_string (required), old_string (required).
vault_link_healthA
Graph health report — finds orphan notes, broken wikilinks, weakly connected notes, and ambiguous links. Scans all markdown files (or a specific folder). Use to audit link quality and find notes that need better connections. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: limit, checks, folder.
vault_linksA
Get incoming and outgoing links for a note. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), direction.
vault_listA
List files and folders in the vault. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path, pattern, recursive.
vault_moveA
Move or rename a markdown file within the vault. Automatically updates wikilinks in all files that reference the moved file. Both paths must be exact. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: new_path (required), old_path (required), update_links.
vault_neighborhoodA
Explore the graph neighborhood around a note by traversing wikilinks. Returns notes grouped by hop distance from the starting note, with frontmatter metadata for each node. Useful for understanding clusters, finding related context, and discovering connections. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), depth, direction, semantic_limit, +1 more.
vault_peekA
Inspect a file's metadata and structure without reading full content. Returns file size, frontmatter, heading outline with approximate section sizes, and a brief preview. Use this to plan which sections to read from large files. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required).
vault_queryA
Query notes by YAML frontmatter metadata (type, status, tags, dates, custom fields, sorting). Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: tags, type, limit, folder, +7 more.
vault_readA
Read the contents of a markdown file from the vault. Supports pagination: read a single section by heading, last N lines, last N heading-level sections, chunk number, or line range. Files exceeding ~80k characters auto-redirect to peek data (file structure/outline) unless a pagination param or force=true is specified. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), tail, chunk, force, +4 more.
vault_recentA
Get recently modified files. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: limit, folder.
vault_searchA
Search for text across all markdown files in the vault. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: query (required), limit, folder.
vault_tagsA
Discover all tags used across the vault with per-note occurrence counts. Useful for exploring tag conventions, finding hierarchical tag trees, and understanding vault organization.
Inputs: folder, pattern, include_inline.
vault_trashA
Soft-delete a file by moving it to .trash/ (Obsidian convention). Reports files with broken incoming links as warnings. Use vault_move to relocate files instead. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required).
vault_update_frontmatterA
Update YAML frontmatter fields in an existing note. Parses existing frontmatter, updates specified fields, preserves everything else. Set a field to null to remove it. Protected fields (type, created, tags) cannot be removed. Field values are validated against the note's type (e.g. task status must be: pending, active, done, cancelled; task priority must be: low, normal, high, urgent). Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), fields (required).
vault_writeA
Create a new note from a template. Notes must be created from templates to ensure proper frontmatter.
Available templates: (No templates found - add .md files to 05-Templates/)
Built-in variables (auto-substituted):
<% tp.date.now("YYYY-MM-DD") %> - Current date
<% tp.file.title %> - Derived from output path filename
Required: frontmatter.tags - provide at least one tag for the note.
Optional: frontmatter.status, frontmatter.priority, frontmatter.project, frontmatter.deciders, frontmatter.due, frontmatter.source (depending on template type).
Pass custom <%...%> variables via the 'variables' parameter. Paths in this tool's output are formatted as markdown links [vault-relative-path.md](obsidian://...) so users can Cmd/Ctrl-click to open in Obsidian. Preserve the link form when relaying paths to the user; pass only the bracket text (e.g. 01-Projects/Foo/note.md) to other vault tools' path arguments, never the full markdown link.
Inputs: path (required), template (required), variables, createDirs, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Each tool has a clearly distinct purpose: read vs. peek vs. search vs. list; write vs. append vs. edit vs. update_frontmatter; links vs. neighborhood vs. link_health. There is no overlapping or confusing tool.
All tools use the 'vault_' prefix with snake_case names. Some are verb-noun (vault_read, vault_write) while others are noun-like (vault_tags, vault_neighborhood), but the pattern is predictable and consistent in style.
18 tools is slightly heavy but reasonable for a PKM server covering reading, writing, editing, linking, searching, querying, and vault maintenance. Each tool earns its place, but the count is at the upper edge of the ideal range.
The tool surface provides complete coverage of note lifecycle (create, read, update, delete), link management, metadata querying, and vault inspection. No obvious dead ends or missing critical operations for the domain.
Maintenance
Related MCP Connectors
Hosted MCP server for Obsidian Sync vaults: read, search, edit notes. Not affiliated with Obsidian.
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Notes and memory assistant: one Markdown vault that Claude, ChatGPT and any MCP client can share.
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceBuilt on Obsidian Vault, this MCP server integrates with Claude Code to provide personal knowledge management including note saving, full-text search, code graph extraction, and context resumption.1-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives Claude AI direct access to your Obsidian vault, enabling natural language search, note creation, file management, and automated workflows.7,721 npm10MIT
- FlicenseNot gradedqualityBmaintenanceA Python MCP server that gives Claude long-term memory and full context of everything by connecting to an Obsidian vault, enabling context retrieval, note management, and automatic graph linking.-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides full read/write access to an Obsidian vault, enabling searching, task management, wiki-link graph analysis, and attachment organization from an MCP client like Claude Code.-