A side-by-side look at the MCP Obsidian and Nouz MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Obsidian for knowledge & memory work as a local process; choose Nouz for knowledge & memory as a local process. You can also run both side by side in one mcpServers block.
read_note, write_note, patch_note.OBSIDIAN_ROOT, NOUZ_CONFIG, EMBED_API_URL.read_file, write_file, update_metadata.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Knowledge & Memory | Knowledge & Memory |
| Quality signal | 73/100 · Great | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | OBSIDIAN_ROOTNOUZ_CONFIGEMBED_API_URL |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1,684 | 22 |
| Directory activity | 5 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 18 | 8 |
| Full listing | View MCP Obsidian | View Nouz |
read_noteRead a note from the Obsidian vaultwrite_noteWrite a note to the Obsidian vaultpatch_noteEfficiently update part of a note by replacing a specific string. This is more efficient than rewriting the entire note for small changes.list_directoryList files and directories in the vault (includes non-note filenames, while read/write tools remain note-only)delete_noteDelete a note from the Obsidian vault (requires confirmation). Supports permanent delete, vault trash, or system trash.search_notesSearch for notes in the vault by content or frontmattermove_noteMove or rename a note in the vaultmove_fileMove or rename any file in the vault (binary-safe, file-only, requires confirmation)read_multiple_notesRead multiple notes in a batch (max 10 files)update_frontmatterUpdate frontmatter of a note without changing contentget_notes_infoGet metadata for notes without reading full contentget_frontmatterExtract frontmatter from a note without reading the contentread_fileRead one Markdown note from the local knowledge base. Returns the note body, YAML frontmatter, hierarchy metadata, parent links, explicit tags, and warnings as JSON. Use this before write_file when you need to preserve existing content or inspect current metadata. Side effect: refreshes this file in the local SQLite index so later classification and parent suggestions use current data. It never changes the file.write_fileCreate or replace one Markdown note with YAML metadata. Use it when an agent has an explicit final content body and metadata to save. This is a destructive write: it replaces the complete file, unless content_lock=true is used to preserve the existing body and update only metadata. Before writing, the server validates that parent links do not create graph cycles, syncs parents and parents_meta, and then refreshes the local index. Use read_file first for existing notes and suggest_metadata first when you want classification hints.update_metadataUpdate only YAML frontmatter for an existing note and preserve the Markdown body exactly. Use this for safe changes to type, level, sign, artifact_sign, tags, parents, and parents_meta when the note content must not be touched.list_filesList notes already known to the local index. Returns lightweight records with path, type, level, and sign, without loading full note bodies. Use this for inventory, filtering, and finding files to inspect next. Set no_metadata=true to find Markdown files without YAML metadata. Use get_children or get_parents when you need graph traversal from a specific note.get_childrenTraverse the hierarchy downward from one note. Returns all direct and transitive child note paths from the local graph index. Use this to answer 'what does this topic/module contain?' It is read-only and does not recompute semantic classification. Use get_parents for the opposite direction.get_parentsReturn the parent links of one note from the graph index. Each result includes the parent entity name and link_type, such as hierarchy, derived_from, semantic, temporary, tag, analogy, or error. Use this to understand where a note belongs before editing links. It is read-only. Use suggest_parents when a note has no parents and you want candidate links.suggest_metadataAnalyze one note and propose knowledge-graph metadata for review. Returns suggested domain sign, material type, hierarchy level, explicit tags, tag quality, tag candidates with chunk evidence, bridge candidates, and hierarchy warnings. Use this before write_file when you want classification help, or to audit an existing note. It is read-only and never edits YAML. Semantic fields require embeddings and are available in PRIZMA/SLOI modes. The optional context object lets an agent test metadata overrides without changing the note.index_allScan the whole Markdown vault and rebuild the local SQLite index of files, metadata, and graph links. Use this after adding, moving, or reorganizing notes outside NOUZ. It is safe to run repeatedly and reports missing parent links. In PRIZMA/SLOI, with_embeddings=true also updates file and chunk embeddings for retrieval and semantic classification, which is slower and requires an embedding provider. This tool indexes data; it is not a search tool.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"bitbonsai-mcp-obsidian": {
"command": "npx",
"args": [
"-y",
"@bitbonsai/mcpvault@latest"
]
}
}
}
{
"mcpServers": {
"nouz": {
"command": "uvx",
"args": [
"nouz-mcp"
],
"env": {
"OBSIDIAN_ROOT": "YOUR_OBSIDIAN_ROOT_HERE",
"NOUZ_CONFIG": "YOUR_NOUZ_CONFIG_HERE",
"EMBED_API_URL": "YOUR_EMBED_API_URL_HERE"
}
}
}
}