- Home
- MCP servers
- Obsidian
Obsidian
- typescript
2
GitHub Stars
typescript
Language
4 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
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.
How to use
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.
How to install
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 build
Configuration
Configure 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"
}
}
}
}
Environment variables
The following environment variable is used to target the vault by default for every CLI call.
OBSIDIAN_VAULT=My Vault
Security and usage notes
Be 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.
Troubleshooting
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.
Notes
This MCP server integrates with a local Obsidian installation and requires that the Obsidian desktop app be running while it is in use.
Available tools
create_note
Create a new note, optionally from a template.
read_note
Read the full markdown contents of a note.
append_to_note
Append content to the end of a note.
prepend_to_note
Prepend content after the frontmatter of a note.
search_vault
Full-text search with Obsidian query syntax.
daily_note
Get or create today's daily note.
daily_append
Append content to today's daily note.
get_vault_info
Return vault name, path, and counts for files/folders.
list_files
List files with optional folder or extension filters.
get_tags
List all tags with occurrence counts.
get_backlinks
Find notes that link to a given note.
get_outline
Provide the heading structure of a note.
set_property
Set a frontmatter property on a note.
read_property
Read a frontmatter property value.
list_tasks
List tasks with filters by status, file, or daily note.
toggle_task
Toggle a task checkbox on or off.
daily_read
Read the contents of today's daily note.
daily_prepend
Prepend content after the frontmatter of the daily note.
list_templates
List all available templates in the vault.
read_template
Read the contents of a template, optionally resolved.
get_links
List all outgoing links from a note.
list_properties
List all frontmatter properties used across the vault.
remove_property
Remove a frontmatter property from a note.
get_tag_info
Get detailed info about a specific tag and its files.
move_file
Move or rename a file; Obsidian updates internal links.
query_base
Query an Obsidian Base and return structured results.