pablo-obsidian-mcp
Provides full read/write access to an Obsidian vault, enabling search, note creation/editing, task management, wiki-link graph analysis, and attachment organization.
Click on "Install 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., "@pablo-obsidian-mcpSearch my vault for meeting notes"
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.
pablo-obsidian-mcp
An MCP server that gives Claude Code (or any MCP client) full read/write access to your Obsidian vault. Search notes, manage tasks, analyze the wiki-link graph, and organize attachments -- all from your terminal.
Built with Bun, Model Context Protocol SDK, and Zod.
Why
Obsidian stores everything as local markdown files, but AI coding assistants can't access them natively. This server bridges that gap: Claude can read your notes for context, create documentation as you work, search across hundreds of files instantly, and keep your vault organized -- without you ever leaving the terminal.
Related MCP server: obsidian-local-mcp
Features
22 tools across 7 categories (read, write, search, graph, tasks, attachments, meta)
Lazy discovery -- tools are exposed via
discover_tools+get_tool_infoso the LLM only loads what it needsAuto-compaction -- large result sets (800+ notes) are automatically compacted with previews to save context window
Wiki-link graph -- backlinks, outgoing links, full graph analysis, orphan detection
Task management -- list and toggle checkboxes across the entire vault
Image insertion -- embed base64-encoded images (PNG, JPEG, WebP, GIF) directly into notes
Metadata without content --
show_notereturns tags, links, tasks, frontmatter without reading the full file
Quick start
1. Clone and install
git clone https://github.com/90PabloRomero/pablo-obsidian-mcp.git
cd pablo-obsidian-mcp
bun install2. Add to Claude Code
Add to ~/.claude/settings.json (or project .claude/settings.json):
{
"mcpServers": {
"obsidian": {
"command": "bun",
"args": ["run", "/absolute/path/to/pablo-obsidian-mcp/src/index.ts"],
"env": {
"OBSIDIAN_VAULT_PATH": "/absolute/path/to/your/vault"
}
}
}
}3. Use it
Once configured, Claude Code automatically discovers the tools. Ask it things like:
"Search my vault for notes about authentication"
"Create a new note summarizing today's work"
"Show me all incomplete tasks across my vault"
"Which notes link to my architecture decisions note?"
Configuration
Variable | Required | Default | Description |
| Yes | -- | Absolute path to your Obsidian vault |
| No |
| Results above this count get compacted |
| No |
| Number of items shown in compacted previews |
Tools
Meta
Tool | Description |
| List all 22 tools with short descriptions |
| Get detailed docs for a specific tool |
Read
Tool | Description |
| List note names and paths (auto-compacted for large vaults) |
| Read the full markdown content of a note |
| Get metadata (size, tags, links, tasks, frontmatter) without content |
| Vault-wide statistics |
Write
Tool | Description |
| Create a new markdown note |
| Replace the entire content of a note |
| Delete a note |
| Delete a folder and all its contents |
| Append content to the end of a note |
Search
Tool | Description |
| Full-text search with matching lines |
| Find notes by hashtag |
| Find notes by filename substring |
Graph
Tool | Description |
| Find notes linking to a given note |
| Get all wiki-links from a note |
| Complete link graph with orphan detection |
Tasks
Tool | Description |
| List all checkboxes, filterable by status |
| Toggle a checkbox between done and open |
Attachments
Tool | Description |
| List non-markdown files with reference status |
| Move attachments to a folder and update references |
| Save a base64 image and embed it in a note |
How compaction works
When a result set exceeds the threshold (default 20), the server returns a compacted response instead of dumping everything into the context window:
{
"compacted": true,
"total": 847,
"showing": 5,
"preview": ["... first 5 items ..."],
"hint": "Showing 5 of 847 notes. Use read_note for details, or narrow with path/query filters."
}This keeps token usage low even on vaults with thousands of notes. The LLM can then drill down into specific notes or narrow its search.
Architecture
src/
index.ts -- MCP server entry point and tool registration
vault.ts -- Vault filesystem operations and path resolution
parser.ts -- Markdown parsing (frontmatter, wiki-links, tags, tasks)
compact.ts -- Auto-compaction logic for large result sets
tools/
meta.ts -- discover_tools, get_tool_info
read.ts -- list_notes, read_note, show_note, get_vault_stats
write.ts -- create_note, edit_note, delete_note, delete_folder, append_to_note
search.ts -- search_notes, search_by_tag, find_notes_by_name
graph.ts -- get_backlinks, get_outgoing_links, get_graph
tasks.ts -- list_tasks, toggle_task
attachments.ts -- list_attachments, organize_attachments, insert_imageLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/90PabloRomero/pablo-obsidian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server