Obsidian MCP — read/write pe vault prin Local REST API

Wednesday lucrează în Nevermore tot timpul (citeşte note, scrie diary, modifică docs, append la journal-uri). În Claude Code asta merge direct prin Read/Edit/Write peste filesystem. Dar din alte surfaces (Telegram, Hermes gateway, IRC, web workspace, mobile) Wednesday n-are filesystem direct — atunci foloseşte MCP-ul Obsidian, care vorbeşte cu plugin-ul Local REST API & MCP Server (v4.0.2, coddingtonbear) ce rulează în Obsidian-ul tău local.

E avantajul de a folosi Obsidian’s view of the vault (live cache, link graph, frontmatter parser) în loc să trebuiască să-i facem singuri.

Ce face

Două MCP-uri suprapuse:

  1. obsidian (wrapper local pe Mac) — apelează plugin-ul Local REST API de pe https://127.0.0.1:27124 cu API key autentificat
  2. obsidian-local-rest-api (similar, pentru alte runtime-uri) — acelaşi endpoint, alt MCP server (pe Hermes/sidecar Jarvis)

Pe Mac e cel mai folosit obsidian.

Tool-uri exposed

Citit

  • obsidian_get_file_contents <path> — citeşte o notă (rendered, deci toate templater-urile + dataview-urile sunt expandate)
  • obsidian_batch_get_file_contents <paths> — multiplu (eficient)
  • obsidian_list_files_in_dir <path> — listare dintr-un folder
  • obsidian_list_files_in_vault — toate notele
  • obsidian_get_recent_changes — ce s-a modificat recent (urmăreşte ce-ai editat)
  • obsidian_get_periodic_note <type> — fetch direct la daily/weekly/monthly current

Scris

  • obsidian_append_content <path> <text> — adăugare la final
  • obsidian_patch_content <path> <heading> <text> — inserare sub o secţiune (## Daily Review etc.)
  • obsidian_delete_file <path>

Căutare

  • obsidian_simple_search <query> — full-text peste tot vault-ul
  • obsidian_complex_search <jsonlogic> — query avansat (frontmatter, paths, content)

Exemple de prompts

  • “Wednesday, ce am scris ieri în daily?” → obsidian_get_periodic_note type=daily offset=-1
  • “Append ## Daily Review la today’s daily cu 3 paragrafe” → obsidian_patch_content (asta foloseşte skill-ul daily-review)
  • “Caută în vault toate notele care menţionează Doctrine 338” → obsidian_simple_search
  • “Dă-mi toate notele din _raw/reviews/Daily_Evolution/ din ultima săptămână” → obsidian_complex_search cu filtru date
  • “Ce am editat în vault astăzi?” → obsidian_get_recent_changes

Credenţiale

_infra/config/.credentials/obsidian_api.env:

OBSIDIAN_API_KEY=<re-issued 05_19>
OBSIDIAN_HOST=https://127.0.0.1:27124
OBSIDIAN_VERIFY_SSL=false

Plugin-ul auto-generează cert self-signed → de aia verify_ssl=false.

Important: plugin-ul s-a redenumit 2026-05-19 din “Local REST API” în “Local REST API & MCP Server” v4.0.2, iar la rename a re-generat cheia. Cheia nouă e rotită deja peste ~/.mcp.json, ~/.hermes/config.yaml, ~/.grok/config.toml.

NU afectează sidecar-ul Obsidian de pe Jarvis (acela foloseşte backend S3/MinIO, nu Local REST API).

Când Obsidian MCP vs Read/Edit directly

  • Din sesiunea Claude Code activă pe Mac: foloseşte Read/Edit/Write direct. Mai rapid, fără overhead REST.
  • Din alte runtime-uri (Hermes, Grok agent, daemoni, Telegram bridge): MUST use Obsidian MCP. N-au filesystem.
  • Când trebuie să respecţi plugin-cache-ul Obsidian (link graph, frontmatter resolved, templater expandat): foloseşte MCP-ul. Read direct citeşte raw.
  • Periodic notes (daily/weekly): foloseşte obsidian_get_periodic_note — face logica de path + create-if-missing pentru tine.

Gotchas

  • Obsidian trebuie să ruleze pe Mac — plugin-ul e in-app. Dacă închizi Obsidian, MCP-ul cade. Wednesday primeşte connection refused.
  • Self-signed SSL — orice client trebuie să accepte certul (verify_ssl=false). Nu schimba asta fără să generezi un cert nou.
  • API key se invalidează la fiecare rename de plugin — dacă vezi 401, regenerează cheia din settings plugin şi rotează în .env
  • Path-urile sunt relative la vault root — NU absolute. “Daily/2026-05-28.md” nu “/Users/dexter/Nevermore/…“.
  • patch_content cu heading — trebuie să existe exact ## <heading>. Dacă scrii “Daily Review” şi în notă e “daily review” (lowercase), eşuează.
  • Sidecar Obsidian MCP pe Jarvis e diferit — acela e read-only peste un mirror S3, nu acelaşi cu MCP-ul local pe Mac