Obsidian MCP Server
Obsidian vault notes, tags, and frontmatter editing via 14 specialized MCP tools.
Data last scanned yesterday · Reviewed 3 weeks ago
Overview
The Obsidian MCP Server allows AI models to interact directly with your vault files. It provides 14 distinct tools designed for granular operations, including fetching specific note content, managing frontmatter, and reconciling tags. You can also trigger command-palette functions to perform high-level vault actions within your AI workflow. Built with TypeScript and supporting both STDIO and Streamable HTTP, the server handles recursive file system walks with configurable depth and filtering. It offers multiple data representation modes, from raw text to structured document maps, providing flexibility for AI agents to process your knowledge base efficiently.
Our verdict
With a security score of 43/100, this server carries a high risk level for your local environment. Most notably, the current architecture lacks a read-only mode, meaning every installation provides full write access to your Obsidian vault. Given it is community-maintained rather than vendor-official, users should exercise caution before deploying this in environments containing sensitive or non-backed-up data.
- Supports granular surgical editing of notes and frontmatter
- Provides 14 specialized tools for vault management
- Includes recursive file system navigation features
- Maintains a compact footprint with only 6 direct dependencies
- Requires full write access with no read-only configuration
- Lacks OAuth support for authenticated vault access
- Managed by community contributors rather than the official Obsidian team
Setup
{
"mcpServers": {
"obsidian-mcp-server": {
"args": [
"-y",
"obsidian-mcp-server"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| obsidian_get_note | Read a note as raw content, full structured form (content + frontmatter + tags + stat, with optional outgoing links), structural document map, or a single section. | low |
| obsidian_list_notes | List notes and subdirectories under a vault path. | low |
| obsidian_list_tags | List every tag found across the vault with usage counts, including hierarchical parents. | low |
| obsidian_list_commands | List Obsidian command-palette commands, optionally filtered by nameRegex on display name. | low |
| obsidian_search_notes | Search the vault by text, JSONLogic, or BM25-ranked Omnisearch. | low |
| obsidian_write_note | Create a note, replace a single section in place, or clobber an existing file. | medium |
| obsidian_append_to_note | Append content to a note. | medium |
| obsidian_patch_note | Surgical append / prepend / replace against a heading, block reference, or frontmatter field. | medium |
| obsidian_replace_in_note | Body-wide search-replace inside a single note. | medium |
| obsidian_manage_frontmatter | Atomic get / set / delete on a single frontmatter key. | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›What authentication is required to run the server?
You must provide an OBSIDIAN_API_KEY environment variable to authenticate the connection.
›How do I enable the ability to execute Obsidian command-palette commands?
You must explicitly opt-in to this feature by setting the OBSIDIAN_ENABLE_COMMANDS environment variable to true.
›Does the server support different communication protocols?
Yes, the server can run over either STDIO or Streamable HTTP.
›What search modes are available for finding notes?
The server supports three search modes: text substring matching, JSONLogic, and BM25-ranked Omnisearch if the plugin is reachable.
›Are there safeguards against accidentally overwriting files?
The obsidian_write_note tool refuses to perform whole-file writes against existing paths by default unless you explicitly set the overwrite option to true.
›Can I modify tags directly within the note body?
Yes, while the obsidian_manage_tags tool defaults to the frontmatter tags array, you can opt into mutating the note body by setting the location parameter to 'inline' or 'both'.
Alternatives
Changelog
- Improved
- Improved
- Fix
- Security
- Fix
- New
- Fix
- Improved
- Fix
- New
Badge
Maintain this server? Add the live badge to your README.