Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Obsidian Brain

by sweir1version 1.7.24i★ –iRuns on your computer
Registry nameio.github.sweir1/obsidian-brain

Install

Overview

Description from the maker (original English)

Obsidian MCP server: semantic search, knowledge graph, and vault editing. No plugin required.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Docs, sheets & office work
  • You need to fill in: VAULT_PATH

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: VAULT_PATH, DATA_DIR, EMBEDDING_PRESET, EMBEDDING_MODEL, EMBEDDING_PROVIDER, OLLAMA_BASE_URL, OLLAMA_EMBEDDING_DIM, OLLAMA_NUM_CTX, OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL, OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL, OBSIDIAN_BRAIN_NO_WATCH, OBSIDIAN_BRAIN_NO_CATCHUP, OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS, OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS, OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS, OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS, OBSIDIAN_BRAIN_CONFIG_DIR, OBSIDIAN_BRAIN_DEBUG, OBSIDIAN_BRAIN_LOG_FORMAT

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "obsidian-brain": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-brain",
        "server"
      ],
      "env": {
        "VAULT_PATH": "your-value",
        "DATA_DIR": "your-value",
        "EMBEDDING_PRESET": "your-value",
        "EMBEDDING_MODEL": "your-value",
        "EMBEDDING_PROVIDER": "your-value",
        "OLLAMA_BASE_URL": "your-value",
        "OLLAMA_EMBEDDING_DIM": "your-value",
        "OLLAMA_NUM_CTX": "your-value",
        "OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL": "your-value",
        "OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL": "your-value",
        "OBSIDIAN_BRAIN_NO_WATCH": "your-value",
        "OBSIDIAN_BRAIN_NO_CATCHUP": "your-value",
        "OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS": "your-value",
        "OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS": "your-value",
        "OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS": "your-value",
        "OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS": "your-value",
        "OBSIDIAN_BRAIN_CONFIG_DIR": "your-value",
        "OBSIDIAN_BRAIN_DEBUG": "your-value",
        "OBSIDIAN_BRAIN_LOG_FORMAT": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add obsidian-brain --env VAULT_PATH=your-value --env DATA_DIR=your-value --env EMBEDDING_PRESET=your-value --env EMBEDDING_MODEL=your-value --env EMBEDDING_PROVIDER=your-value --env OLLAMA_BASE_URL=your-value --env OLLAMA_EMBEDDING_DIM=your-value --env OLLAMA_NUM_CTX=your-value --env OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL=your-value --env OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL=your-value --env OBSIDIAN_BRAIN_NO_WATCH=your-value --env OBSIDIAN_BRAIN_NO_CATCHUP=your-value --env OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS=your-value --env OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS=your-value --env OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS=your-value --env OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS=your-value --env OBSIDIAN_BRAIN_CONFIG_DIR=your-value --env OBSIDIAN_BRAIN_DEBUG=your-value --env OBSIDIAN_BRAIN_LOG_FORMAT=your-value -- npx -y obsidian-brain server

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "obsidian-brain": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-brain",
        "server"
      ],
      "env": {
        "VAULT_PATH": "your-value",
        "DATA_DIR": "your-value",
        "EMBEDDING_PRESET": "your-value",
        "EMBEDDING_MODEL": "your-value",
        "EMBEDDING_PROVIDER": "your-value",
        "OLLAMA_BASE_URL": "your-value",
        "OLLAMA_EMBEDDING_DIM": "your-value",
        "OLLAMA_NUM_CTX": "your-value",
        "OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL": "your-value",
        "OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL": "your-value",
        "OBSIDIAN_BRAIN_NO_WATCH": "your-value",
        "OBSIDIAN_BRAIN_NO_CATCHUP": "your-value",
        "OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS": "your-value",
        "OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS": "your-value",
        "OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS": "your-value",
        "OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS": "your-value",
        "OBSIDIAN_BRAIN_CONFIG_DIR": "your-value",
        "OBSIDIAN_BRAIN_DEBUG": "your-value",
        "OBSIDIAN_BRAIN_LOG_FORMAT": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "obsidian-brain": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "obsidian-brain",
        "server"
      ],
      "env": {
        "VAULT_PATH": "your-value",
        "DATA_DIR": "your-value",
        "EMBEDDING_PRESET": "your-value",
        "EMBEDDING_MODEL": "your-value",
        "EMBEDDING_PROVIDER": "your-value",
        "OLLAMA_BASE_URL": "your-value",
        "OLLAMA_EMBEDDING_DIM": "your-value",
        "OLLAMA_NUM_CTX": "your-value",
        "OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL": "your-value",
        "OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL": "your-value",
        "OBSIDIAN_BRAIN_NO_WATCH": "your-value",
        "OBSIDIAN_BRAIN_NO_CATCHUP": "your-value",
        "OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS": "your-value",
        "OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS": "your-value",
        "OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS": "your-value",
        "OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS": "your-value",
        "OBSIDIAN_BRAIN_CONFIG_DIR": "your-value",
        "OBSIDIAN_BRAIN_DEBUG": "your-value",
        "OBSIDIAN_BRAIN_LOG_FORMAT": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • VAULT_PATH required env
    Absolute path to your Obsidian vault (or any folder of .md files).
  • DATA_DIR env
    Where to store the SQLite index + embedding cache. Defaults to $XDG_DATA_HOME/obsidian-brain or ~/.local/share/obsidian-brain.
  • EMBEDDING_PRESET env
    Preset name: english (default, bge-small-en-v1.5), english-fast, english-quality, multilingual, multilingual-quality, multilingual-ollama. Ignored when EMBEDDING_MODEL is set.
  • EMBEDDING_MODEL env
    Power-user override: any transformers.js checkpoint or Ollama model id. Takes precedence over EMBEDDING_PRESET. Switching auto-reindexes.
  • EMBEDDING_PROVIDER env
    Embedding backend. 'transformers' (local, default) or 'ollama' (requires a running Ollama server).
  • OLLAMA_BASE_URL env
    Base URL of a local Ollama server. Only used when EMBEDDING_PROVIDER=ollama.
  • OLLAMA_EMBEDDING_DIM env
    Override the embedding dimensionality when EMBEDDING_PROVIDER=ollama. If unset, the server probes the model on startup.
  • OLLAMA_NUM_CTX env
    Override Ollama's num_ctx for embed requests. Leave UNSET to let obsidian-brain auto-detect via `/api/show`'s `context_length` (e.g. nomic-embed-text=2048, bge-m3=8192, qwen3-embedding:0.6b=32 768).…
  • OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL env
    Auto-pull the configured Ollama model when /api/show returns 404 (model not present). Default ON — choosing an Ollama-backed preset is implicit consent to download its model. Streams /api/pull progre…
  • OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL env
    Opt-in to auto-pull for BYOM (custom EMBEDDING_MODEL) Ollama models OUTSIDE Ollama's official `library/` namespace. Default OFF — third-party models (e.g. `user/custom-fork`, `myregistry.com/team/mod…
  • OBSIDIAN_BRAIN_NO_WATCH env
    Set to '1' to disable the live chokidar file watcher. Useful on SMB/NFS vaults where FSEvents/inotify don't fire reliably — fall back to running `obsidian-brain index` on a schedule (launchd/systemd).
  • OBSIDIAN_BRAIN_NO_CATCHUP env
    Set to '1' to skip the startup catchup reindex pass that picks up edits made while the server was down. The live file watcher still starts (via OBSIDIAN_BRAIN_NO_WATCH=1 to disable that separately),…
  • OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS env
    Per-file reindex debounce for the live watcher, in milliseconds.
  • OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS env
    Graph-wide community-detection (Louvain) debounce for the live watcher, in milliseconds. Louvain is the only expensive op — batching it prevents per-edit CPU spikes.
  • OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS env
    Per-tool-call timeout in milliseconds. Tools exceeding this return an MCP error instead of hanging.
  • OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS env
    Override the adaptive chunk-size budget (in tokens). When set, this beats the capacity probed from the model's tokenizer or Ollama /api/show. Use for debugging or for models with stale tokenizer conf…
  • OBSIDIAN_BRAIN_CONFIG_DIR env
    Override the per-user config directory where obsidian-brain stores model overrides (`model-overrides.json`) and the user-fetched seed (`seed-models.json`). Default is `$XDG_CONFIG_HOME/obsidian-brain…
  • OBSIDIAN_BRAIN_DEBUG env
    Set to "1" to print a verbose synchronous startup trace to stderr — every preflight, createContext, server.connect, and shutdown step is logged with a monotonic timestamp. The LAST line before any si…
  • OBSIDIAN_BRAIN_LOG_FORMAT env
    Set to 'ndjson' for one-JSON-object-per-line stderr output (timestamp + level + message + structured fields). Default is human-readable plain text (`obsidian-brain: `). Useful for piping logs into ag…

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account sweir1, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Docs, sheets & office worki

  • More stars than 0% of the other 2198 servers in this category
  • Published to the registry more recently than 10% of the other 2198 servers in this category
  • Basic checks equal to or better than 100% of the other 2198 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Obsidian Brain safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: VAULT_PATH

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.7.24) reached the registry 6 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Agent-Native Google Calendar - manage events, sync, and public booking

Runs in the cloud★ 7,620MITUpdated 2 months ago
Install

Excel MCP Server

by haris-musa

Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.

Runs on your computer★ 4,276MITUpdated 6 days ago
Install

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

Runs on your computer★ 847MITUpdated 4 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

obsidian-brain

A standalone Node MCP server that gives Claude (and any other MCP client) semantic search + knowledge graph + vault editing over an Obsidian vault. Runs as one local stdio process — no plugin, no HTTP bridge, no API key, nothing hosted. Your vault content never leaves your machine.

📖 Full docs → [sweir1.github.io/obsidian-brain](https://sweir1.github.io/obsidian-brain/)

Companion plugin → sweir1/obsidian-brain-plugin (optional — unlocks active_note, dataview_query, base_query)

Contents — Why · Quick start · What you get · How it works · Companion plugin · Troubleshooting · Recent releases

Why obsidian-brain?

  • Works without Obsidian running — unlike Local REST API-based servers, obsidian-brain reads .md files directly from disk. Obsidian can be closed; your vault is just a folder.
  • No Local REST API plugin required — nothing to install inside Obsidian for the core experience.
  • Chunk-level semantic search with RRF hybrid retrieval — embeddings at markdown-heading granularity, fused with FTS5 BM25 via Reciprocal Rank Fusion. Finds the exact chunk, ranks on meaning.
  • The only Obsidian MCP server with PageRank + Louvain + graph analytics — ask for your vault's most influential notes, bridging notes, theme clusters. Nobody else ships this.
  • Ollama provider for high-quality local embeddings — switch to qwen3-embedding:0.6b, nomic-embed-text, bge-m3, etc. with one env var.
  • All in one `npx` install — no clone, no build, no API key, no hosted endpoint. Vault content never leaves your machine.

Quick start

One-line install (macOS + Claude Desktop)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/sweir1/obsidian-brain/main/scripts/install.sh)"

Installs Homebrew + Node 20+ if you don't already have them, adds the /usr/local/bin symlinks that Claude Desktop needs, merges obsidian-brain into your claude_desktop_config.json, opens the Full Disk Access pane for you to toggle Claude on, and relaunches Claude. You'll be asked for your macOS password once (for Homebrew + the symlinks) and your vault path once. Everything else is automatic. Audit what it does: scripts/install.sh.

Manual install

Requires Node 20+ and an Obsidian vault (or any folder of .md files — Obsidian itself is optional).

Wire obsidian-brain into your MCP client. Example for Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{

"mcpServers": { "obsidian-brain": { "command": "npx", "args": ["-y", "obsidian-brain@latest", "server"], "env": { "VAULT_PATH": "/absolute/path/to/your/vault" } } } }

Quit Claude Desktop (⌘Q on macOS) and relaunch. That's it.

[!NOTE]

On first boot the server auto-indexes your vault and downloads a ~34 MB embedding model. Tools may take 30–60 s to appear in the client. Subsequent boots are instant.

[!TIP]

Not a developer? The macOS walkthrough covers Homebrew, Node, the GUI-app PATH fix, and Full Disk Access step-by-step.

For every other MCP client (Claude Code, Cursor, VS Code, Jan, Windsurf, Cline, Zed, LM Studio, JetBrains AI, Opencode, Codex CLI, Gemini CLI, Warp): see Install in your MCP client.

→ Full env-var reference: Configuration → Model / preset / Ollama details: Embedding model → Migrating from aaronsb's plugin: Migration guide

What you get

18 MCP tools grouped by intent:

  • Find & read — search, list_notes, read_note
  • Understand the graph — find_connections, find_path_between, detect_themes, rank_notes
  • Write — create_note, edit_note, apply_edit_preview, link_notes, move_note, delete_note
  • Live editor (requires companion plugin) — active_note, dataview_query, base_query
  • Maintenance — reindex, index_status

→ Arguments, examples, and response shapes: Tool reference

How it works

flowchart LR

Client[" MCP Client Claude Desktop · Claude Code Cursor · Jan · Windsurf · ..."]

subgraph OB ["obsidian-brain (Node process)"] direction TB SQL[" SQLite index nodes · edges FTS5 · vec0 embeddings"] Vault[" Vault on disk your .md files"] Vault -->|"parse + embed"| SQL SQL -.->|"writes"| Vault end

Client <-->|"stdio JSON-RPC"| OB

Retrieval and writes both go through a SQLite index: reads are microsecond-cheap, writes land on disk immediately and incrementally re-index the affected file. Embeddings are chunk-level (heading-aware recursive chunker preserving code + LaTeX blocks), and search's default hybrid mode fuses chunk-level semantic rank with FTS5 BM25 via Reciprocal Rank Fusion.

→ Deeper write-up — why stdio, why SQLite, why local embeddings: Architecture → Live watcher behaviour + debounces: Live updates → Scheduled reindex (macOS launchd / Linux systemd): Scheduled indexing (macOS) · (Linux)

Companion plugin (optional)

An optional Obsidian plugin at sweir1/obsidian-brain-plugin exposes live Obsidian runtime state — active editor, Dataview results, Bases rows — over a localhost HTTP endpoint. When installed and Obsidian is running, active_note, dataview_query, and base_query light up. Install via BRAT with repo ID sweir1/obsidian-brain-plugin.

Ship plugin and server at the same major.minor — server v1.7.x pairs with plugin v1.7.x. Patch-version drift is fine.

→ Security model, capability handshake, Dataview / Bases feature coverage: Companion plugin

Troubleshooting

Four most common:

  • "Connector has no tools available" in Claude Desktop — usually the server crashed at startup. Check ~/Library/Logs/Claude/mcp-server-obsidian-brain.log. Fix: npm install -g obsidian-brain@latest, quit Claude (⌘Q), relaunch.
  • `ERR_DLOPEN_FAILED` / `NODE_MODULE_VERSION` mismatch — better-sqlite3 built against a different Node ABI. Fix: PATH=/opt/homebrew/bin:$PATH npm rebuild -g better-sqlite3.
  • `Vault path not configured` — VAULT_PATH is unset. Set it in the env block of your client config or shell.
  • Old version loading via `npx` (your client still shows the previous release after a publish) — stale npx cache. Fix: rm -rf ~/.npm/_npx, then restart your client. Keeping @latest in your config prevents this.

→ Full troubleshooting guide (watcher not firing, stale index, running multiple clients, timeouts, embedding-dim mismatch, log locations): docs/troubleshooting.md

Recent releases

  • v1.7.24 (2026-05-16) — embeddings.md BYOM callout + 5 devDep bumps
  • v1.7.23 (2026-05-16) — BYOM Ollama auto-pull gate + logger sweep + SIGTERM unit test
  • v1.7.22 (2026-05-15) — structured stderr (NDJSON) + Ollama preparing-state + dependabot security bumps + SIGTERM drain integration test
  • v1.7.21 (2026-04-27) — install.sh vault-picker fix + auto ollama pull + docs/test polish
  • v1.7.20 (2026-04-27) — Ollama prefix-lookup bug + 13 audit polish items

→ Full changelog: docs/CHANGELOG.md · Forward plan: docs/roadmap.md · Build from source: docs/development.md

Credits

Thanks to obra/knowledge-graph and aaronsb/obsidian-mcp-plugin for the ideas and code this project draws on. Also Xenova/transformers.js (local embeddings), graphology (graph analytics), and sqlite-vec (vector search in SQLite).

Related projects

  • apple-notes-brain — sibling MCP server for Apple Notes on macOS: read, write, and search with full Markdown round-trip in both directions.

License

Apache License 2.0 — Copyright 2026 sweir1.

Ask PopNx