Obsidian MCP Server (Vasallo94/obsidian-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 48 out of 100, grade D. It declares 81 tools. No publisher has claimed this listing.
Connects AI assistants directly to Obsidian vaults with intelligent note creation using templates, semantic search, smart tagging to avoid duplicates, and specialized agent roles (Guardian, Researcher, Connection Weaver) for managing knowledge bases.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
Vasallo94
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
canvas_readRead a canvas file and return a human-readable summary of its nodes, edges, and groups.
canvas_listList all .canvas files in the vault or in a specific folder.
canvas_add_cardAdd a text card to a canvas file.
canvas_add_groupCreate a new group/area in a canvas file.
canvas_add_edgeConnect two nodes with a directional arrow. Rejects if it would create a cycle.
canvas_update_cardUpdate the text and/or color of an existing card.
canvas_remove_cardDelete a card and all its connected edges from a canvas.
canvas_move_cardReposition a node by setting its absolute x/y coordinates.
canvas_remove_groupDelete a group/area from a canvas.
canvas_remove_edgeDelete a connection between two nodes.
kanvas_statusGet a board overview: task counts by state, groups, total tasks.
kanvas_taskShow details for a specific task: state, group, description, dependencies.
kanvas_readyList tasks that are ready to start (red/To Do with all dependencies met).
kanvas_blockedList tasks that are blocked and what is blocking them.
kanvas_startStart a task: red (To Do) → orange (Doing). Validates dependencies are met.
kanvas_finishFinish a task: orange (Doing) → cyan (Review).
kanvas_pausePause a task: orange (Doing) → red (To Do).
kanvas_approveApprove a proposed task: purple (Proposed) → red (To Do). RELAXED mode only.
kanvas_completeMark a task as done: cyan (Review) → green (Done). RELAXED mode only.
kanvas_edit_taskUpdate a task's description body. Task must be orange (or cyan in RELAXED mode).
kanvas_add_dependencyAdd a dependency: from_task blocks to_task. Rejects cycles.
kanvas_propose_taskPropose a new task (creates purple card). Auto-assigns the next task ID.
kanvas_propose_groupAdd a new group/phase to the project canvas.
kanvas_initInitialize a new project canvas with groups, legend, and optional tasks.
list_skillsList skills available in the vault.
read_skillRead a specific vault skill file.
get_global_rulesRead global vault agent rules.
add_global_ruleRegister a new global vault rule. Destructive: requires confirm=True.
validate_noteLint a note against vault rules without writing it.
refresh_skills_cacheInvalidate and refresh the in-memory skill cache.
create_skillGenerate a new vault skill with a consistent structure.
suggest_vault_skillsAnalyze the vault and suggest useful personal skills.
sync_vault_skillsValidate skills and optionally apply automatic fixes.
get_vault_statsGenerate vault statistics.
get_canonical_tagsRead the canonical tag registry.
analyze_tagsAnalyze tag usage in the vault.
sync_tag_registrySync vault tag usage with the canonical tag registry.
list_tagsList all tags currently used in the vault.
analyze_linksAnalyze internal links in the vault.
lint_vaultRun vault rules across every note and report violations.
find_broken_wikilinksFind every wikilink in the vault whose target note doesn't exist.
summarize_recent_activitySummarize recent vault activity.
read_vault_contextRead the vault structure, templates, and common metadata.
health_checkValidate the active vault and MCP profile configuration.
diagnose_vault_setupDiagnose vault setup issues and return actionable recommendations.
list_client_rootsList filesystem roots advertised by the connected MCP client.
route_taskRecommend prompts, skills, resources, and tools for a task.
list_templatesList available note templates.
suggest_note_locationSuggest candidate vault folders for a new note.
create_noteCreate a new Markdown note in the vault.
append_to_noteAppend, prepend, or insert content into a section of a note.
delete_noteDelete a note from the vault. Destructive: requires confirm=True.
patch_notePatch a note with atomic exact-match replacements.
replace_noteOverwrite the full content of a note. Destructive: requires confirm=True.
preview_replace_in_notesPreview a literal search/replace across notes without writing files.
apply_replace_in_notesApply a literal search/replace across notes. Destructive: requires confirm=True.
quick_captureCapture an inbox note in the personal vault profile.
get_frontmatterReturn only a note frontmatter block as JSON.
update_frontmatterUpdate a note frontmatter without changing the note body.
update_note_tagsAdd, remove, or set YAML tags on a note.
get_backlinksList notes that link to the given note.
get_notes_by_tagList notes that contain a specific tag.
get_local_graphRead incoming and outgoing links around a note.
find_orphan_notesFind notes without incoming or outgoing wikilinks.
list_notesList Markdown notes in the vault or in a specific folder.
read_noteRead the full content of a note.
search_notesSearch note titles or note content with AND semantics.
search_notes_by_dateSearch notes modified in a date range.
move_noteMove or rename a note inside the vault.
rename_noteRename a note in place, optionally rewriting every wikilink to it.
random_conceptReturn a random concept from the vault as a surprise flashcard.
read_notesRead the content and frontmatter of multiple notes.
get_note_infoReturn metadata for multiple notes without loading all content.
rag_setup_statusInspect local ObsidianRAG setup status.
rag_healthCheck whether the ObsidianRAG backend is reachable and ready.
ask_vaultAsk a natural-language question against the Obsidian vault via ObsidianRAG.
rebuild_rag_indexRebuild the ObsidianRAG index after large vault changes.
semantic_searchRun a semantic vault question through the legacy local RAG stack.
index_vault_semanticUpdate the legacy semantic index for the vault.
suggest_semantic_connectionsFind semantically similar notes that are not linked together.
get_youtube_transcriptFetch a YouTube transcript by URL or video ID.
OBSIDIAN_MCP_TOOL_SETS"": "notes_write,vault_analysis,obsidianrag"OBSIDIAN_VAULT_PATH"/absolute/path/to/your/vault"Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
81/81 tools missing one or more hints — canvas_read (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); canvas_list (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); canvas_add_card (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +78 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Descriptions match behaviour
1 tool describes read intent but its handler mutates — search_notes (line 159: result = subprocess.run( # pylint: disable=subprocess-run-check # nosec B603)
Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.
Tool inputs are validated
63/81 tool handlers declare input schemas (78%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool handlers catch errors
68/81 tool handlers wrap calls in try/catch (84%)
Wrap each tool handler body in try/catch and return a structured error response.
Tests exist
No test files found
Add tests that exercise each declared tool.
Tool description accuracy
search_notes: description implies read-only but handler writes/deletes/executes
Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/vasallo94/obsidian-mcp-server)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check