Obsidian MCP Server
MCP server that interacts with Obsidian via the Obsidian rest API community plugin.
What is an MCP Server?
MCP Info
Image Building Info
Available Tools (12)
| Tools provided by this Server |
Short Description |
obsidian_append_content |
Append content to a new or existing file in the vault. |
obsidian_batch_get_file_contents |
Return the contents of multiple files in your vault, concatenated with headers. |
obsidian_complex_search |
Complex search for documents using a JsonLogic query. |
obsidian_delete_file |
Delete a file or directory from the vault. |
obsidian_get_file_contents |
Return the content of a single file in your vault. |
obsidian_get_periodic_note |
Get current periodic note for the specified period. |
obsidian_get_recent_changes |
Get recently modified files in the vault. |
obsidian_get_recent_periodic_notes |
Get most recent periodic notes for the specified period type. |
obsidian_list_files_in_dir |
Lists all files and directories that exist in a specific Obsidian directory. |
obsidian_list_files_in_vault |
Lists all files and directories in the root directory of your Obsidian vault. |
obsidian_patch_content |
Insert content into an existing note relative to a heading, block reference, or frontmatter field. |
obsidian_simple_search |
Simple search for documents matching a specified text query across all files in the vault. |
Tools Details
Tool: obsidian_append_content
Append content to a new or existing file in the vault.
| Parameters |
Type |
Description |
content |
string |
Content to append to the file |
filepath |
string |
Path to the file (relative to vault root) |
Tool: obsidian_batch_get_file_contents
Return the contents of multiple files in your vault, concatenated with headers.
| Parameters |
Type |
Description |
filepaths |
array |
List of file paths to read |
Complex search for documents using a JsonLogic query.
Supports standard JsonLogic operators plus 'glob' and 'regexp' for pattern matching. Results must be non-falsy.
Use this tool when you want to do a complex search, e.g. for all documents with certain tags etc.
| Parameters |
Type |
Description |
query |
object |
JsonLogic query object. Example: {"glob": ["*.md", {"var": "path"}]} matches all markdown files |
Delete a file or directory from the vault.
| Parameters |
Type |
Description |
confirm |
boolean |
Confirmation to delete the file (must be true) |
filepath |
string |
Path to the file or directory to delete (relative to vault root) |
Tool: obsidian_get_file_contents
Return the content of a single file in your vault.
| Parameters |
Type |
Description |
filepath |
string |
Path to the relevant file (relative to your vault root). |
Get current periodic note for the specified period.
| Parameters |
Type |
Description |
period |
string |
The period type (daily, weekly, monthly, quarterly, yearly) |
Get recently modified files in the vault.
| Parameters |
Type |
Description |
days |
integer optional |
Only include files modified within this many days (default: 90) |
limit |
integer optional |
Maximum number of files to return (default: 10) |
Get most recent periodic notes for the specified period type.
| Parameters |
Type |
Description |
period |
string |
The period type (daily, weekly, monthly, quarterly, yearly) |
include_content |
boolean optional |
Whether to include note content (default: false) |
limit |
integer optional |
Maximum number of notes to return (default: 5) |
Lists all files and directories that exist in a specific Obsidian directory.
| Parameters |
Type |
Description |
dirpath |
string |
Path to list files from (relative to your vault root). Note that empty directories will not be returned. |
Lists all files and directories in the root directory of your Obsidian vault.
Tool: obsidian_patch_content
Insert content into an existing note relative to a heading, block reference, or frontmatter field.
| Parameters |
Type |
Description |
content |
string |
Content to insert |
filepath |
string |
Path to the file (relative to vault root) |
operation |
string |
Operation to perform (append, prepend, or replace) |
target |
string |
Target identifier (heading path, block reference, or frontmatter field) |
target_type |
string |
Type of target to patch |
Simple search for documents matching a specified text query across all files in the vault.
Use this tool when you want to do a simple text search
| Parameters |
Type |
Description |
query |
string |
Text to a simple search for in the vault. |
context_length |
integer optional |
How much context to return around the matching string (default: 100) |
Use this MCP Server
{
"mcpServers": {
"obsidian": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OBSIDIAN_HOST",
"-e",
"OBSIDIAN_API_KEY",
"mcp/obsidian"
],
"env": {
"OBSIDIAN_HOST": "host.docker.internal",
"OBSIDIAN_API_KEY": "YOUR_OBSIDIAN_API_KEY"
}
}
}
}
Why is it safer to run MCP Servers with Docker?