home / mcp / obsidian mcp server
Provides programmatic access to Obsidian vaults via 26 MCP tools for reading, writing, and organizing notes.
Configuration
View docs{
"mcpServers": {
"dickiedyce-obsidian-ts-mcp": {
"command": "node",
"args": [
"/absolute/path/to/obsidian-ts-mcp/dist/server.js"
],
"env": {
"OBSIDIAN_VAULT": "My Vault"
}
}
}
}You can run the Obsidian Vault MCP server to enable AI agents to read, write, search, and manage notes inside an Obsidian vault by wrapping the official Obsidian CLI. This server exposes a set of 26 tools that interact with Obsidian data through an MCP client such as VS Code or Claude Desktop, making vault automation practical and secure for your workflows.
To use the Obsidian MCP server, run it in stdio mode and connect your MCP client to it. You will target a specific vault by setting the OBSIDIAN_VAULT environment variable. Once connected, your client can list the available tools, invoke them, and receive results as text blocks. The server handles input validation, invokes the Obsidian CLI, and returns the CLI output for your client to consume.
Prerequisites must be installed before you set up the MCP server. You need Node.js version 18 or newer, the Obsidian desktop app version 1.12 or newer with CLI enabled, and a Catalyst licence if you plan to access the Obsidian CLI via Catalyst.
Install steps you can follow locally are shown in the example commands.
# Clone the project
git clone https://github.com/dickiedyce/obsidian-ts-mcp.git
# Enter the project directory
cd obsidian-ts-mcp
# Install dependencies
npm install
# Build the server
npm run buildConfigure your MCP clients to connect to the Obsidian MCP server. You will use a local stdio configuration that launches the Node process running the server script and sets the vault name to target.
{
"servers": {
"obsidian": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/obsidian-ts-mcp/dist/server.js"],
"env": {
"OBSIDIAN_VAULT": "My Vault"
}
}
}
}If you are using Claude Desktop, configure the MCP server similarly, pointing to the same server script and vault name.
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/absolute/path/to/obsidian-ts-mcp/dist/server.js"],
"env": {
"OBSIDIAN_VAULT": "My Vault"
}
}
}
}The following environment variable is used to target the vault by default for every CLI call.
OBSIDIAN_VAULT=My VaultBe aware that the server has full read/write access to every note in the targeted vault. Limit OBSIDIAN_VAULT to only those vaults you are comfortable exposing to AI agents. The stdio transport has no built-in authentication, so access control depends on who can launch the server process. All tool inputs are validated against their defined schemas before execution, and the Obsidian CLI is invoked directly with careful argument handling.
If you store secrets, avoid placing them in environment variables visible to the server process.
Common issues and fixes include checking that the Obsidian CLI is accessible on PATH, confirming the Obsidian desktop app is running, and ensuring the vault name matches the exact vault name shown in Obsidian’s vault switcher.
If you encounter a timeout, ensure the Obsidian app is running and accessible by the CLI. If the CLI reports that a catalyst licence is required, acquire a licence from Obsidian and retry.
This MCP server integrates with a local Obsidian installation and requires that the Obsidian desktop app be running while it is in use.
Create a new note, optionally from a template.
Read the full markdown contents of a note.
Append content to the end of a note.
Prepend content after the frontmatter of a note.
Full-text search with Obsidian query syntax.
Get or create today's daily note.
Append content to today's daily note.
Return vault name, path, and counts for files/folders.
List files with optional folder or extension filters.
List all tags with occurrence counts.
Find notes that link to a given note.
Provide the heading structure of a note.
Set a frontmatter property on a note.
Read a frontmatter property value.
List tasks with filters by status, file, or daily note.
Toggle a task checkbox on or off.
Read the contents of today's daily note.
Prepend content after the frontmatter of the daily note.
List all available templates in the vault.
Read the contents of a template, optionally resolved.
List all outgoing links from a note.
List all frontmatter properties used across the vault.
Remove a frontmatter property from a note.
Get detailed info about a specific tag and its files.
Move or rename a file; Obsidian updates internal links.
Query an Obsidian Base and return structured results.