Provides tools for managing and searching Obsidian vaults, including reading, creating, updating, deleting notes, managing tags, frontmatter, executing commands, and accessing periodic notes.
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., "@obsidian-mcplist files in my Projects folder"
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.
MCP Tools for Obsidian
Obsidian plugin that runs an MCP server directly inside Obsidian, giving AI assistants native access to the Obsidian API — no HTTP bridge or third-party plugins required.
Claude Code <--HTTP--> Obsidian Plugin (MCP Server) <--> Obsidian APIStatus: Functional. All 15 MCP tools are implemented with direct Obsidian API access, stateless HTTP transport, and Bearer token auth. Not yet published to the community plugin registry.
Project Structure
plugin/ Obsidian plugin
src/main.ts Plugin entry point, lifecycle wiring
src/server.ts HTTP server with auth (stateless mode)
src/settings.ts Settings tab with connection info
src/crypto.ts API key generation
src/tools/ MCP tool modules (vault, commands, active-file, navigation, search, periodic, metadata)
docs/ Design specs, implementation plans, changelogRelated MCP server: obsidian-local-mcp
Development
# Install root tooling (lefthook, prettier)
pnpm install
# Install plugin dependencies
cd plugin
pnpm install
# Build the plugin
pnpm build
# Start dev mode (esbuild watch)
pnpm dev
# Run tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test:coveragePrerequisites
Obsidian 1.12.0+
pnpm (
npm install -g pnpmor see pnpm.io)Optional community plugins for extended functionality:
Dataview (for DQL queries via the
searchtool)Periodic Notes (for the
periodic_readandperiodic_updatetools)
Setup
1. Install the plugin
Clone the repo, build, and symlink into your vault:
git clone https://github.com/tylernford/obsidian-mcp.git
cd obsidian-mcp
pnpm install
cd plugin
pnpm install
pnpm build
# Symlink into your vault's plugins directory
ln -s "$(pwd)" "/path/to/vault/.obsidian/plugins/mcp-tools"Then in Obsidian: Settings > Community Plugins > MCP Tools — enable the plugin.
2. Register with Claude Code
The plugin's settings tab shows connection snippets with the correct port and API key. Use either:
Option A: mcp.json (recommended)
Copy the mcp.json snippet from the settings tab into ~/.claude/mcp.json (global) or .claude/mcp.json (project).
Option B: claude mcp add
Copy the claude mcp add command from the settings tab and run it in your terminal.
3. Verify
Start a new Claude Code session and run /mcp to confirm the obsidian server shows as connected.
Configuration
The plugin settings tab provides:
API key — auto-generated on first load, displayed read-only with copy and regenerate buttons
Port — configurable (default: 28080), requires confirmation and server restart on change
Usage Examples
Once the server is connected, you can use natural language in Claude Code:
Prompt | Tool |
"List everything in my Projects folder" |
|
"Read my weekly note" |
|
"Create a new note called Meeting Notes" |
|
"Search my vault for anything about MCP" |
|
"Tag this note with #review" |
|
"Open my daily note in Obsidian" |
|
Tools
Core File Operations
Tool | Description |
| List files and directories at a given path |
| Read a note's content (markdown or JSON with parsed frontmatter) |
| Create a new note |
| Update a note at a heading, block, or frontmatter field |
| Delete a note |
Search and Metadata
Tool | Description |
| Full-text search or Dataview DQL query |
| List, add, or remove tags on a note |
| Read or update YAML frontmatter fields |
Commands
Tool | Description |
| List all registered Obsidian commands (core + plugins) |
| Execute a command by ID |
Active File
Tool | Description |
| Read the currently open note |
| Update the currently open note |
Navigation
Tool | Description |
| Open a note in the Obsidian UI |
Periodic Notes
Tool | Description |
| Read a periodic note (daily, weekly, monthly, quarterly, yearly) |
| Update a periodic note (creates from template if needed) |
Testing
Tests target modules with meaningful logic — branching, parsing, transformation. Thin wrappers around Obsidian APIs are excluded; they're validated at runtime against a real Obsidian instance.
Module | Tests | What's covered |
| 12 | Heading/block/frontmatter targeting, JSON parse fallback, errors |
| 13 | Offset math, match categorization, Dataview query transform |
| 10 | Auth (real HTTP), routing, request handling, lifecycle |
| 19 | Tag normalization/dedup, frontmatter read/set, edge cases |
pnpm test # Run all 54 tests
pnpm test:watch # Watch mode
pnpm test:coverage # With v8 coverageSee docs/testing-guidelines.md for the full testing philosophy, mock strategy, and module selection rationale.
Thin wrappers and integration behavior are validated manually against a real Obsidian instance using the checklists in testing/live-validation/.
Built With
TypeScript
MCP SDK (
@modelcontextprotocol/sdk)Zod (schema validation)
ESLint + Prettier (linting/formatting)
Lefthook (git hooks)
pnpm (package manager)
Roadmap
Tool redesign
Every tool is strictly read or write with no mixed operations (split
tags_manage,frontmatter_manage)vault_createaccepts frontmatter as a validated object, not embedded in raw markdownRemove
commands_execute. If a capability matters, it gets a dedicated tool with named parametersWrite operations return human-readable receipts that echo what changed
Infrastructure
Refactor
server.tsto use SDK'sStreamableHTTPSessionManagerFix inconsistent 405 error format (JSON-RPC vs generic shape)
Add
frontmatter_manageset action value validationTool handler integration tests (end-to-end MCP round-trip)
Validation
Agent user testing — evaluate tools from a consumer perspective
See docs/backlog.md.
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.
Appeared in Searches
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/tylernford/obsidian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
