← MCPVault

MCPVault 0.16.0

npm · @bitbonsai/mcpvault · current release

18
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-17T12:57:03.638Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {}
}

Tools 18

ToolCategoryAnnotationsRisk
delete_noteDelete a note from the Obsidian vault (requires confirmation). Supports permanent delete, vault trash, or system trash.
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "confirmPath": {
      "type": "string",
      "description": "Confirmation: must exactly match the path parameter to proceed with deletion"
    },
    "trashMode": {
      "type": "string",
      "enum": [
        "none",
        "local",
        "system"
      ],
      "description": "Deletion mode: 'none' = permanent delete (default), 'local' = move to .trash inside vault, 'system' = move to OS trash",
      "default": "none"
    }
  },
  "required": [
    "path",
    "confirmPath"
  ]
}
— · —
get_frontmatterExtract frontmatter from a note without reading the content
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "path"
  ]
}
— · —
get_note_outlineGet the heading structure of a note without reading its full content. Returns headings with level, text, and line number. Use this first to navigate large notes efficiently, then call read_note_lines to read only the section you need.
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "path"
  ]
}
— · —
get_notes_infoGet metadata for notes without reading full content
Input schema
{
  "type": "object",
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of note paths to get info for"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "paths"
  ]
}
— · —
get_vault_statsGet vault statistics including total notes, folders, size, and recently modified files. Useful for understanding vault scope before batch operations.
Input schema
{
  "type": "object",
  "properties": {
    "recentCount": {
      "type": "number",
      "description": "Number of recently modified files to return (default: 5, max: 20)",
      "default": 5
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  }
}
— · —
list_all_tagsList all tags across the vault with occurrence counts. Returns both frontmatter tags and inline #hashtags, deduplicated and sorted by frequency. Useful for discovering existing tags before creating or organizing notes.
Input schema
{
  "type": "object",
  "properties": {
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  }
}
— · —
list_directoryList files and directories in the vault (includes non-note filenames, while read/write tools remain note-only)
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path relative to vault root (default: '/')",
      "default": "/"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  }
}
— · —
manage_tagsAdd, remove, or list tags in a note
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "operation": {
      "type": "string",
      "enum": [
        "add",
        "remove",
        "list"
      ],
      "description": "Operation to perform: 'add', 'remove', or 'list'"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of tags (required for 'add' and 'remove' operations)"
    }
  },
  "required": [
    "path",
    "operation"
  ]
}
— · —
move_fileMove or rename any file in the vault (binary-safe, file-only, requires confirmation)
Input schema
{
  "type": "object",
  "properties": {
    "oldPath": {
      "type": "string",
      "description": "Current path of the file"
    },
    "newPath": {
      "type": "string",
      "description": "New path for the file"
    },
    "confirmOldPath": {
      "type": "string",
      "description": "Confirmation: must exactly match oldPath"
    },
    "confirmNewPath": {
      "type": "string",
      "description": "Confirmation: must exactly match newPath"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Allow overwriting existing file (default: false)",
      "default": false
    }
  },
  "required": [
    "oldPath",
    "newPath",
    "confirmOldPath",
    "confirmNewPath"
  ]
}
— · —
move_noteMove or rename a note in the vault
Input schema
{
  "type": "object",
  "properties": {
    "oldPath": {
      "type": "string",
      "description": "Current path of the note"
    },
    "newPath": {
      "type": "string",
      "description": "New path for the note"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Allow overwriting existing file (default: false)",
      "default": false
    }
  },
  "required": [
    "oldPath",
    "newPath"
  ]
}
— · —
patch_noteEfficiently update part of a note by replacing a specific string. This is more efficient than rewriting the entire note for small changes.
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "oldString": {
      "type": "string",
      "description": "The exact string to replace. Must match exactly including whitespace and line breaks."
    },
    "newString": {
      "type": "string",
      "description": "The new string to insert in place of oldString"
    },
    "replaceAll": {
      "type": "boolean",
      "description": "If true, replace all occurrences. If false (default), the operation will fail if multiple matches are found to prevent unintended replacements.",
      "default": false
    }
  },
  "required": [
    "path",
    "oldString",
    "newString"
  ]
}
— · —
read_multiple_notesRead multiple notes in a batch (max 10 files)
Input schema
{
  "type": "object",
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of note paths to read",
      "maxItems": 10
    },
    "includeContent": {
      "type": "boolean",
      "description": "Include note content (default: true)",
      "default": true
    },
    "includeFrontmatter": {
      "type": "boolean",
      "description": "Include frontmatter (default: true)",
      "default": true
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "paths"
  ]
}
— · —
read_noteRead a note from the Obsidian vault
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "path"
  ]
}
— · —
read_note_linesRead a specific line range from a note. Use after get_note_outline to read only the section you need instead of the full file.
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "startLine": {
      "type": "number",
      "description": "First line to read (1-indexed, inclusive)"
    },
    "endLine": {
      "type": "number",
      "description": "Last line to read (1-indexed, inclusive)"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "path",
    "startLine",
    "endLine"
  ]
}
— · —
search_notesSearch for notes in the vault by content or frontmatter
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query text"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results (default: 5, max: 20)",
      "default": 5
    },
    "searchContent": {
      "type": "boolean",
      "description": "Search in note content (default: true)",
      "default": true
    },
    "searchFrontmatter": {
      "type": "boolean",
      "description": "Search in frontmatter (default: false)",
      "default": false
    },
    "caseSensitive": {
      "type": "boolean",
      "description": "Case sensitive search (default: false)",
      "default": false
    },
    "pathPrefix": {
      "type": "string",
      "description": "Restrict the search to a vault subtree, e.g. \"Projects/2026\" (directory prefix)"
    },
    "excludePaths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Skip files under these subtrees, e.g. [\"Archive\", \"meta\"] (directory prefixes)"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "query"
  ]
}
— · —
update_frontmatterUpdate frontmatter of a note without changing content
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note"
    },
    "frontmatter": {
      "type": "object",
      "description": "Frontmatter object to update"
    },
    "merge": {
      "type": "boolean",
      "description": "Merge with existing frontmatter (default: true)",
      "default": true
    }
  },
  "required": [
    "path",
    "frontmatter"
  ]
}
— · —
wiki_linkRead an Obsidian wiki link. Accepts the same syntax as Obsidian: [[Document Name]] or [[Document Name|Display Text]], including table-authored escapes like [[Document Name\|Display]] and path-qualified links like [[folder/Document Name]]. A #fragment suffix in the input is ignored. Searches the vault for an exact basename match (or exact vault-relative path match when the name contains '/') and returns the file's content. When multiple files share the basename, picks the first (vault root first, then alphabetical by path) and lists the other paths in structuredContent.alternatives. Content is returned bare — ready for direct use in context.
Input schema
{
  "type": "object",
  "properties": {
    "document": {
      "type": "string",
      "description": "The document name — what goes inside [[ ]]. e.g. 'My-Document'. Brackets and display text (|...) are stripped if present. The .md extension is always appended (never include it)."
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Format JSON response with indentation (default: false)",
      "default": false
    }
  },
  "required": [
    "document"
  ]
}
— · —
write_noteWrite a note to the Obsidian vault
Input schema
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to the note relative to vault root"
    },
    "content": {
      "type": "string",
      "description": "Content of the note"
    },
    "frontmatter": {
      "type": "object",
      "description": "Frontmatter object (optional)"
    },
    "mode": {
      "type": "string",
      "enum": [
        "overwrite",
        "append",
        "prepend"
      ],
      "description": "Write mode: 'overwrite' (default), 'append', or 'prepend'",
      "default": "overwrite"
    }
  },
  "required": [
    "path",
    "content"
  ]
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.