Install @bitbonsai/mcpvault from npm
Install exact version 0.16.0. No verified executable entrypoint is available, so use the package documentation to launch it.
npm install --save-exact @bitbonsai/mcpvault@0.16.0A universal AI bridge for Obsidian vaults using the MCP standard, enabling any MCP-compatible AI assistant to read and write notes safely
Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
Install exact version 0.16.0. No verified executable entrypoint is available, so use the package documentation to launch it.
npm install --save-exact @bitbonsai/mcpvault@0.16.0| Canonical slug | mcpvault-66941e45 | Deployment | Local Only |
|---|---|---|---|
| Canonical package | npm:@bitbonsai/mcpvault | Repository | bitbonsai/mcpvault |
| First published | — | Latest release | — |
| Last security verification | — | Classification confidence | 90% |
| Publication | Draft | Official distribution | Not verified |
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| npm | @bitbonsai/mcpvault | 0.16.0 | 17 | Repository |
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| npm@bitbonsai/mcpvault | 0.16.0Current | Sep 5, 2026 | 18 toolsSucceeded · 0 resources · 0 prompts | Evidence restricted |
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
No public current-version evidence is available yet.
| Tool | Category | Annotations | Risk |
|---|---|---|---|
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 contentInput 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 contentInput 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 noteInput 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 vaultInput 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 vaultInput 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 frontmatterInput 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 contentInput 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 vaultInput 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"
]
} | — | — |
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| No verified remote endpoint is linked. | ||||
Install the selected package version with: npm install --save-exact @bitbonsai/mcpvault@0.16.0
MCPVault MCP Server exposed 18 tools during independent protocol observation, including delete_note, get_frontmatter, get_note_outline, get_notes_info, get_vault_stats, list_all_tags, list_directory, manage_tags, and others.
The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.
Curated product and capability guides containing this catalog record.