MCP Obsidian vs Cairn
A side-by-side look at the MCP Obsidian and Cairn 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 Cairn for file systems as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP Obsidian when
- You need dedicated capabilities in the Knowledge & Memory domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: No auth required.
- You want tools like
read_note, write_note, patch_note.
Choose Cairn when
- You need dedicated capabilities in the File Systems domain.
- You prefer a local stdio subprocess transport.
- You want tools like
list_dir, get_file_tree, read_detail.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Knowledge & Memory | File Systems |
| Quality signal | 73/100 · Great | 56/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 | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1,703 | 2 |
| Directory activity | 11 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 18 | 48 |
| Full listing | View MCP Obsidian | View Cairn |
Tools & capabilities
MCP Obsidian tools 18
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 content- +6 more on the listing page
Cairn tools 48
list_dirList files and folders directly under a workspace-relative directory.get_file_treeReturn the nested file/folder tree under a directory (default: whole workspace).read_detailRead a file. For .uni docs returns HTML content, flattened text, and tags; for text/.md files returns raw text plus any YAML frontmatter tags & metadata.search_filesFind files/folders whose name contains `query` (case-insensitive).grepSearch file contents for `pattern`; returns {path, line, text} matches.get_file_tagsReturn a document's tags — from a .uni's tags array or a text file's YAML frontmatter.get_tag_treeReturn {tag: [file paths]} aggregated across the workspace.find_by_metaFind documents whose metadata matches all `filters` (exact, not fuzzy). Reads .uni JSON fields and .md YAML frontmatter alike. Scalar fields match case-insensitively; `tags` (or any list field) matches when every requested value is present. Example: {"status": "to-read", "project": "amazon"}.list_tasksList tasks (documents with `category: task`), sorted by due date. A task is an ordinary frontmatter note with a lifecycle; this is the task view over it. `status` defaults to the open set (todo/doing/blocked) — pass "all" to include done, or a specific status / comma-separated list. `project` and `context` (e.g. "@errand") are exact case-insensitive filters; `due_before` (YYYY-MM-DD) keeps only tasks due before that date. Each result carries derived `overdue` and `today` flags relative to the current date.digest_workspaceReturn a token-efficient map of the workspace: one entry (title, date, tags, summary) per document, grouped by `folder`, `tag`, or a metadata field like `status`/`project`. Read this before loading individual files.list_templatesList available document templates (built-ins + workspace .cairn/templates).semantic_retrieveReturn the documents most relevant to `query`. Uses embeddings when an embedding endpoint is configured (env), else lexical scoring.- +36 more on the listing page
Ready-to-paste client configs
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.
MCP Obsidian
{
"mcpServers": {
"bitbonsai-mcp-obsidian": {
"command": "npx",
"args": [
"-y",
"@bitbonsai/mcpvault@latest"
]
}
}
}
Cairn
{
"mcpServers": {
"cairn-4": {
"command": "uvx",
"args": [
"cairn-mcp-server"
]
}
}
}
Frequently asked questions
MCP Obsidian is categorized under Knowledge & Memory and uses a local stdio subprocess. Cairn belongs to File Systems and uses a local stdio subprocess. Pick MCP Obsidian for knowledge & memory work and Cairn for file systems.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
MCP Obsidian is listed as free. Auth: no auth required. Cairn has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add bitbonsai-mcp-obsidian and cairn-4 as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Obsidian has a quality signal of 73/100 (Great) with 11 views, 0 installs and 1,703 GitHub stars. Cairn has 56/100 (Good) with 3 views, 0 installs and 2 GitHub stars.