Skip to main content
Glama
optimikelabs

Optimike Obsidian MCP

by optimikelabs

Optimike Obsidian MCP

Latest release French version: README.fr.md · Documentation hub: docs/README.md Operations: OPERATIONS.md Security: SECURITY.md

Overview of Optimike Obsidian MCP between agent clients, Obsidian and governed external documents

Optimike Obsidian MCP gives MCP clients a governed operational surface over an Obsidian vault. It combines live Desktop operations, resilient headless modes, structured task and Bases support, semantic search, runtime observability, and explicitly governed access to configured documents outside the vault.

Capability map

Area

What the MCP provides

Main dependency

Notes

Read, list, search, update, frontmatter and tags

Vault; Local REST API for the full live surface

Bases and Canvas

Bases query/write tools, format validation and bounded Canvas helpers

Bases Bridge for live Bases

Tasks

Obsidian Tasks-compatible list/query plus 23 governed Operon tools

Operon Developer API V1 through the Bridge

Semantic search

Smart Connections index search with durable metadata cache

.smart-env plus Ollama or OpenAI query embedding

Runtime

Shared SQLite cache, health, maintenance, degraded mode and exclusions

Local filesystem

External documents

Governed reads/handoff plus opt-in local move with exact link repair

Allowlist; local stdio for move

Headless administration

Guarded note, metadata and vault-filesystem operations

Guarded/filesystem mode on a copied vault

The current tool registry is documented in Tool Surface. Availability varies by runtime mode; use the Runtime Capability Matrix before enabling writes.

Related MCP server: obsidian-mcp-pro

Choose a profile

Need

Recommended profile

Posture

Codex (verified) or a local stdio client

dist/stdio-proxy.js

Default local profile

Obsidian Desktop automation

live or hybrid through the stdio proxy

Trusted Desktop

CI, server or synchronized vault copy

headless-readonly

Safest headless profile

Bounded writes on a copied/dedicated vault

headless-guarded then headless-filesystem

Explicit opt-in

Direct HTTP on the same machine

Authenticated loopback HTTP

Supported with limits

Remote HTTP

Reviewed TLS reverse proxy and private network controls

Pilot only

The Node server must never be exposed directly to the public internet. See Security and the HTTP delivery ADR.

Quick start from source

Requirements:

  • Node.js >=22.7.5;

  • Obsidian Desktop only when using live Desktop features;

  • capability-specific plugins listed below.

git clone https://github.com/optimikelabs/optimike-obsidian-mcp.git
cd optimike-obsidian-mcp
npm install
npm run build
node dist/stdio-proxy.js

For a package install, the explicit proxy binary is optimike-obsidian-mcp-proxy. The legacy optimike-obsidian-mcp binary still starts the backend directly.

Minimal Codex configuration:

[mcp_servers.optimike-obsidian-mcp-stdio]
command = "node"
args = ["/path/to/optimike-obsidian-mcp/dist/stdio-proxy.js"]

[mcp_servers.optimike-obsidian-mcp-stdio.env]
OBSIDIAN_VAULT = "/path/to/vault"
OBSIDIAN_RUNTIME_MODE = "live"
OBSIDIAN_BASE_URL = "http://127.0.0.1:27123"
OBSIDIAN_API_KEY = "<local-rest-api-key>"

Keep real paths, API keys and external-root configurations outside the repository and outside distributable vault content.

Optional Obsidian integrations

Enable only the surfaces you use:

  • Local REST API: live note, metadata and tag operations;

  • bundled Bases Bridge (REST): live .base operations;

  • bundled Optimike Atomic Write Bridge: opt-in SHA-256 compare-and-replace for the internal note-operation pilot;

  • Smart Connections: semantic index under .smart-env;

  • Operon Developer API V1 and the bundled Optimike Operon Bridge: governed live task operations through the official Developer API V1;

  • Kairélys compatibility remains available as a bounded legacy/rollback path, not as the production owner;

  • Obsidian Tasks: canonical Tasks parsing and configuration.

Operon apply requires two explicit opt-ins:

Optimike Operon Bridge setting: Allow task mutations
OPERON_MUTATIONS_ENABLED=true

Stale Operon snapshots remain read-only. Atomic note replacement has a separate default-off bridge setting and does not require Operon's Developer API grant.

The MCP exposes a curated agent surface rather than every Operon CLI function. Native diagnostics, finder/resolve, bounded relationships/context and timer state are available as read-only tools. Dedicated relationship and recurrence writes use official sealed preview/apply plans; destructive and operator commands stay in the CLI. Agents use MCP because it adds bounded schemas, least-privilege capability checks, dry-run, revision locking, durable idempotency, postflight verification and exact-plan recovery. A generic CLI passthrough would bypass those guarantees. See the Operon MCP contract and Operon CLI / Developer API audit. Transition apply is available through the Bridge. Elevated or destructive plans still require fresh confirmation in the owning Obsidian vault window and fail closed after 45 seconds when no confirmation can be presented.

Compatibility note: the adapter negotiates Operon Developer API V1 with contractVersion: 1 and runtimeApi: 1. Versions in the explicit certified set report certified; unknown non-denied versions exposing the accessor report compatible-provisional. Live use still requires developerApi, ok, index.ready, and the exact capability. Missing capabilities fail closed only for affected tools; known regressions remain denied. Operon 3.2.0 remains the earlier certified pilot baseline. Modified-time frontmatter settlement and multi-window consent were merged upstream before these releases. Saved-filter execution is available through the additive task-workflow Developer API after an exact grant, but the official API does not expose the saved-filter catalog: callers must supply an exact filterSetId obtained from Operon's UI/configuration or an operator workflow. Adoption remains unavailable on the official Developer API. Operon 3.3.0 passed the complete live pilot and remains admitted as compatible-provisional by the contract-first policy rather than a product-version allowlist. Operon still omits the declarative Settings renderer for Developer API grant controls; the fix is tracked in #145 and #146. No MCP route falls back to Markdown or private APIs. Implicit File Task renames remain tracked in #139, and the unscoped transition edge case remains tracked in #99 and #101.

External document roots

External roots are disabled by default. Their ordinary reads and handoffs form a default-deny authorization broker, not an external index, sync engine or backup system.

The same external_handoff tool selects a transport-aware delivery:

  • local stdio returns a verified short-lived local_path;

  • authenticated direct HTTP may return an opt-in, identity-bound, single-use http_ticket;

  • neither delivery mode discloses the physical source path or authorizes a mutation.

One deliberately narrow mutation exists outside the handoff path: local stdio through headless-filesystem on a copied or dedicated vault can move or rename one regular file within the same opted-in root and repair exact ÉLYSIA references. It requires an inventory and durable plan, explicit write gates, hash/CAS preconditions, a journal and compensating rollback. It is not exposed over direct HTTP and does not add create, replace, delete, upload or sync.

The MCP core does not embed PDF, Office or OCR engines. The calling client owns binary extraction and must verify size and SHA-256.

Start with External document roots — setup and operations.

smart_semantic_search searches a local Smart Connections index. Query embedding can remain local through Ollama or use OpenAI, depending on operator configuration. A configured OpenAI provider therefore makes this tool open-world even though the indexed vault data remains local.

See Operations for provider configuration and cache behavior.

Verification

npm run build
npm run test:runtime
npm run check:operon
npm run test:external-roots
npm run test:docs
npm run test:package
npm run audit:production

The runtime suites use disposable vaults and include Linux/Windows CI coverage. For production-like validation, keep the shared cache database outside the real synced vault.

Documentation

Credits

Created by Optimike — Mickaël Ahouansou.

License

See LICENSE.

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
4dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Provides an MCP server that allows AI assistants to interact with Obsidian vaults, enabling reading/writing notes, managing metadata, searching content, and working with daily notes.
    36
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    A local MCP server that wraps the Obsidian CLI to give AI assistants direct access to read, edit, and manage notes within an Obsidian vault. It enables advanced operations such as frontmatter property management, context-aware searching, and the execution of internal Obsidian commands.
    2
  • A
    license
    B
    quality
    D
    maintenance
    Local-first MCP server for Obsidian vaults with 66 tools for reading, writing, searching, and managing notes, tasks, graphs, and more. Works without Obsidian running and requires no plugins.
    66
    MIT

View all related MCP servers

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.

  • MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/optimikelabs/optimike-obsidian-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server