MCP server that interacts with Obsidian via the Obsidian rest API community plugin.
10K+
12 Tools
Version 4.43 or later needs to be installed to add the server automatically
Use cases
About
MCP server that interacts with Obsidian via the Obsidian rest API community plugin.
| Attribute | Details |
|---|---|
| Docker Image | mcp/obsidian |
| Author | MarkusPfundstein |
| Repository | https://github.com/MarkusPfundstein/mcp-obsidian |
| Dockerfile | https://github.com/docker/mcp-obsidian/blob/docker-support/Dockerfile |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/obsidian --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| 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. |
obsidian_append_contentAppend 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) |
obsidian_batch_get_file_contentsReturn the contents of multiple files in your vault, concatenated with headers.
| Parameters | Type | Description |
|---|---|---|
filepaths | array | List of file paths to read |
obsidian_complex_searchComplex 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 |
obsidian_delete_fileDelete 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) |
obsidian_get_file_contentsReturn the content of a single file in your vault.
| Parameters | Type | Description |
|---|---|---|
filepath | string | Path to the relevant file (relative to your vault root). |
obsidian_get_periodic_noteGet current periodic note for the specified period.
| Parameters | Type | Description |
|---|---|---|
period | string | The period type (daily, weekly, monthly, quarterly, yearly) |
obsidian_get_recent_changesGet recently modified files in the vault.
| Parameters | Type | Description |
|---|---|---|
days | integeroptional | Only include files modified within this many days (default: 90) |
limit | integeroptional | Maximum number of files to return (default: 10) |
obsidian_get_recent_periodic_notesGet most recent periodic notes for the specified period type.
| Parameters | Type | Description |
|---|---|---|
period | string | The period type (daily, weekly, monthly, quarterly, yearly) |
include_content | booleanoptional | Whether to include note content (default: false) |
limit | integeroptional | Maximum number of notes to return (default: 5) |
obsidian_list_files_in_dirLists 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. |
obsidian_list_files_in_vaultLists all files and directories in the root directory of your Obsidian vault.
obsidian_patch_contentInsert 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 |
obsidian_simple_searchSimple 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 | integeroptional | How much context to return around the matching string (default: 100) |
{
"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"
}
}
}
}
Manual installation
You can install the MCP server using:
Installation for