Mycelium · for Obsidian v1.3.0 · MIT
Install Self-hosted · runs locally ~ two minutes

Point it at
your vaults.

Mycelium runs on your machine and talks to your MCP client over stdio. On Claude Desktop for macOS Apple Silicon, use the one-click bundle. Everywhere else, use npx — no clone, no build. Name your vaults, restart your client, then ask your assistant to call get_started.

00 — Need

What you need first.

Two essentials, one optional. Mycelium stays local; model traffic depends on the AI client you connect.

Node.jsrequired · 18+
Mycelium is a lightweight MCP published to npm; npx fetches and runs it. Any recent LTS Node works — the 74 filesystem tools run on Node alone.
Obsidian + a vaultrequired
One or more vaults — just folders of markdown. The 28 CLI tools need Obsidian 1.12+ running with the CLI enabled; if it’s closed, they error cleanly and the 74 keep working.
Local Ollamaoptional
Only for meaning-based search (nomic-embed-text). Without it, every other way in — keyword, link-reading, structured query — still works.
01 — Setup

Add Mycelium to Claude.

Claude Desktop on macOS Apple Silicon gets the one-click bundle. Other platforms can use npx — no clone, no build. Building from source is the contributor path, further down.

Claude Desktop — one click

Download mcp-obsidian.mcpb, double-click it, enter your vault paths, and restart Claude Desktop. Then ask your assistant to call get_started.

The one-click bundle is built and tested on macOS Apple Silicon. It ships a prebuilt native module for that platform. On Intel Mac, Windows, or Linux, use npm/npx below instead; npm compiles the native module for your platform at install time.

Or add it with one command

Claude Code can register it directly. The npx runner fetches and runs the published package — nothing to build. Pick clear vault names; the names you choose are exactly what the AI sees.

terminalbash
$ claude mcp add obsidian \
    -e OBSIDIAN_VAULTS='{"Work":"/path/to/work","Personal":"/path/to/personal"}' \
    -- npx @wickedevolutions/mcp-obsidian

Or add it by hand

Any MCP client (Claude Desktop, Cursor, …) takes the same shape in its config. OBSIDIAN_VAULTS is a JSON object of name → path — use neutral, real names.

claude_desktop_config.jsonjson
{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": ["@wickedevolutions/mcp-obsidian"],
      "env": {
        "OBSIDIAN_VAULTS": "{\"Work\":\"/Users/you/vaults/work\",\"Personal\":\"/Users/you/vaults/personal\"}"
      }
    }
  }
}

Restart — then ask it to orient

Config is read once at startup, so restart the client after any change. Then ask your assistant to call get_started first — it returns your vaults, the tool categories, and the resolver-first workflow before it touches a note.

ask your assistantmcp
"Call get_started, then work from there."

 get_started()  returns:
  configured_vaults      your vaults, by exact name
  tool_categories        what exists, grouped
  recommended_steps      resolver-first, link syntax, safety

Optional — turn on more reach

App tools: run Obsidian 1.12+ with the CLI enabled to unlock the 28 CLI-tier tools. Meaning-based search: run local Ollama with nomic-embed-text and index a vault. Both are optional; the 74 filesystem tools work on their own.

optional · semantic searchbash
$ ollama pull nomic-embed-text
 index_vault(vault="Work")   # then semantic_search is live
Contributor path

Build from source.

Hacking on Mycelium itself? Clone, install and build, then point your client at the local dist/ instead of npx.

terminalbash
$ git clone https://github.com/Wicked-Evolutions/Mycelium-for-Obsidian
$ cd Mycelium-for-Obsidian
$ npm install && npm run build
# then in your client config use:
#   "command": "node", "args": ["/path/to/Mycelium-for-Obsidian/dist/index.js"]
02 — Surface

102 tools, grouped so an AI can find them.

Ask for get_started and it hands over orientation; discover_tools browses the surface by category, compact by default. The full, searchable reference lives on the Toolset page.

102
tools total
17 categories
74
filesystem tier
app closed
28
CLI tier
needs the app
1
MCP
many vaults
03 — Honest

Clear boundaries make it more trustworthy.

What works without anything extra, what needs the app, and the two tools to handle deliberately.

Always

74 work app-closed

The filesystem tier runs on plain Node and markdown. Obsidian doesn’t need to be open for these.

App

28 need the app

The CLI tier needs Obsidian 1.12+ running with the CLI enabled. If it’s closed, they fail cleanly — the 74 keep going.

Optional

Semantic is opt-in

Meaning-based search needs local Ollama and an index. Everything else works without it.

Care

Two power tools

update_file replaces the body; update_section on an H1 reaches end-of-file. Try them on a test note and keep vaults under git.

Control

Disable any tool

Remove risky or unwanted tools from the exposed surface with OBSIDIAN_DISABLED_TOOLS.

Sovereign

Local-first

Mycelium runs locally; vault, config and optional embeddings stay on your machine. What leaves depends on the AI client you connect.