1.6.0npm · @huangyihe/obsidian-mcp · current release
Observed 2026-08-14T07:43:53.305Z using mcpSecurity-inventory. Status: partial. Negotiated protocol: 2025-06-18.
{
"resources": {},
"tools": {}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
auto_backlink_vaultAutomatically add backlinks throughout the entire vault by detecting note names in content and converting them to wikilinksInput schema{
"type": "object",
"properties": {
"dryRun": {
"type": "boolean",
"description": "Preview changes without applying them (default: true)",
"default": true
},
"excludePatterns": {
"type": "array",
"description": "Array of glob patterns to exclude from processing (e.g., [\"template/*\", \"archive/*\"])",
"items": {
"type": "string"
},
"default": []
},
"minLength": {
"type": "number",
"description": "Minimum note name length to consider for linking (default: 3)",
"default": 3
},
"caseSensitive": {
"type": "boolean",
"description": "Whether matching should be case sensitive (default: false)",
"default": false
},
"wholeWords": {
"type": "boolean",
"description": "Whether to match only whole words (default: true)",
"default": true
},
"batchSize": {
"type": "number",
"description": "Number of notes to process in each batch (default: 50)",
"default": 50
}
},
"required": []
} | — | — · — | — |
create_noteCreate a new note in the Obsidian vaultInput schema{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path where the note should be created"
},
"content": {
"type": "string",
"description": "Content of the note"
}
},
"required": [
"path",
"content"
]
} | — | — · — | — |
delete_noteDelete a note from the Obsidian vaultInput schema{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the note within the vault"
}
},
"required": [
"path"
]
} | — | — · — | — |
list_notesList all notes in the Obsidian vaultInput schema{
"type": "object",
"properties": {
"folder": {
"type": "string",
"description": "Folder path within the vault (optional)"
}
},
"required": []
} | — | — · — | — |
manage_folderCreate, rename, move, or delete a folder in the Obsidian vaultInput schema{
"type": "object",
"properties": {
"operation": {
"type": "string",
"description": "The operation to perform: create, rename, move, or delete",
"enum": [
"create",
"rename",
"move",
"delete"
]
},
"path": {
"type": "string",
"description": "Path to the folder within the vault"
},
"newPath": {
"type": "string",
"description": "New path for the folder (required for rename and move operations)"
}
},
"required": [
"operation",
"path"
]
} | — | — · — | — |
move_noteMove or rename a note to a new location in the Obsidian vaultInput schema{
"type": "object",
"properties": {
"sourcePath": {
"type": "string",
"description": "Current path to the note within the vault"
},
"destinationPath": {
"type": "string",
"description": "New path where the note should be moved"
}
},
"required": [
"sourcePath",
"destinationPath"
]
} | — | — · — | — |
read_multiple_notesRead content from multiple notes simultaneouslyInput schema{
"type": "object",
"properties": {
"paths": {
"type": "array",
"description": "Array of note paths to read",
"items": {
"type": "string"
}
}
},
"required": [
"paths"
]
} | — | — · — | — |
read_noteRead the content of a note in the Obsidian vaultInput schema{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the note within the vault"
}
},
"required": [
"path"
]
} | — | — · — | — |
search_vaultSearch for content in the Obsidian vaultInput schema{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query"
}
},
"required": [
"query"
]
} | — | — · — | — |
update_noteUpdate content in an existing note using text replacements or precise insertionsInput schema{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the note within the vault"
},
"edits": {
"type": "array",
"description": "Array of edit operations to apply",
"items": {
"type": "object",
"properties": {
"oldText": {
"type": "string",
"description": "Text to search for and replace (for replace mode)"
},
"newText": {
"type": "string",
"description": "Text to replace with (for replace mode)"
},
"mode": {
"type": "string",
"enum": [
"replace",
"insert"
],
"description": "Edit mode: replace (default) or insert",
"default": "replace"
},
"heading": {
"type": "string",
"description": "Target heading for insert mode"
},
"content": {
"type": "string",
"description": "Content to insert (for insert mode)"
},
"position": {
"type": "string",
"enum": [
"before",
"after",
"append",
"prepend"
],
"description": "Where to insert relative to heading: before (above heading), after (below heading), append (end of section), prepend (start of section)",
"default": "after"
},
"level": {
"type": "number",
"minimum": 1,
"maximum": 6,
"description": "Heading level (1-6) for more precise targeting"
},
"blockId": {
"type": "string",
"description": "Block ID for block-based insertion (^block-id)"
}
},
"anyOf": [
{
"required": [
"oldText",
"newText"
]
},
{
"required": [
"mode",
"heading",
"content"
]
},
{
"required": [
"mode",
"blockId",
"content"
]
}
]
}
},
"dryRun": {
"type": "boolean",
"description": "Preview changes without applying them",
"default": false
}
},
"required": [
"path",
"edits"
]
} | — | — · — | — |