freshcrate
Skin:/
Home > MCP Servers > obsidian-sync-mcp

obsidian-sync-mcp

Give any AI agent access to your Obsidian vault over MCP

Why this rank:Recent releaseStrong adoptionHealthy release cadence

Description

Give any AI agent access to your Obsidian vault over MCP

Release History

VersionChangesUrgencyDate
v0.10.0 This release hardens the default Docker and docker-compose deployment and speeds up startup on large CouchDB vaults. **It contains breaking changes to the Docker/compose defaults** — see the upgrade note. ### Security - docker-compose now **requires** `MCP_AUTH_TOKEN` and publishes the MCP port on `127.0.0.1` only. Previously the token defaulted to empty and the port bound all interfaces, which could leave an unauthenticated vault reachable from other machines (#40). Contributed by @bruno-b-maHigh10/14/2026
v0.9.0 ### Features - **LiveSync "independent ID derivation" is now supported (#47).** Vaults created with LiveSync 1.0.33+ and path obfuscation derive obfuscated document IDs from a saved key instead of the passphrase, so `read_note` and `get_note_metadata` — and writes — returned "Note not found" for every path. Set `COUCHDB_ID_DERIVATION_KEY` to your LiveSync recovery code (`sls-id-v1:...`, from LiveSync's "Show current recovery code") and reads and writes resolve. Older passphrase-derived vaults aHigh10/9/2026
v0.8.0 ### Features - **`search_notes` — find notes by what they say, not just their name.** `search_notes(terms, folder?, tag?, modified_after?, limit ≤ 20)` scans the text of your notes, which the server already keeps in memory, so there's no new dependency, no on-disk index, and note text is never written to disk. It runs a catch-up against CouchDB before each search so a result can never predate the vault, and opens with a status line describing what was searched. `terms` is OR over case-insensitiHigh10/8/2026
v0.7.3 ### Security - **Note tools are now restricted to real vault note paths (GHSA-hfcr-mrh3-c584).** Write, move, and delete accepted any path, so a prompt-injected agent could overwrite LiveSync control files (e.g. `redflag.md`, `flag_rebuild.md`) and trigger a vault-wide rebuild or fetch, or escape the vault via `..`, dot-folders (`.obsidian`), absolute paths, or symlinks. All note operations in both the CouchDB and local-filesystem backends now go through a shared validator that requires a vaultHigh10/4/2026
v0.7.1 ### Security - **Fixed a critical authentication bypass in password-gated OAuth (GHSA-cc9w-6w4g-hqv7).** `/oauth/token` issued an access token for any authorization code that was in flight, without checking that the password step had completed. Because the code is created and shown on the authorize page before any password is entered, anyone who could reach a server started with `MCP_AUTH_TOKEN` could read the code and redeem it directly, gaining full vault access without the password. The codeHigh10/1/2026
v0.7.0 ### Features - `list_notes` responses now open with a status line so an LLM client can never mistake a truncated, filtered, or still-indexing listing for a complete one: total counts, active filters, and sort order come first, and truncated listings name the omitted folders with counts (e.g. `Omitted 106: work/ (41), recipes/ (9), ...`) instead of a trailing "... and N more" line that was easy to miss (#19). Contributed by @andreasd083. - The search index now exposes its lifecycle state (`buildHigh9/18/2026
v0.6.5 ### Fixes - Revert the mcp-proxy 6.7.11 bump from 0.6.4, which broke every MCP session for clients speaking protocol revision 2026-07-28 (current Claude clients): mcp-proxy 6.7.x routes modern-protocol requests through `@modelcontextprotocol/server` 2.0, which is incompatible with the SDK 1.x server that fastmcp 3.x provides, crashing with a TypeError before the session is usable (#18). Back on mcp-proxy 6.4.4, the known-good version from 0.6.3. **If you are on 0.6.4, upgrade immediately (or roMedium8/30/2026
v0.6.4 ### Fixes - Bump mcp-proxy to 6.7.11 so MCP responses declare `charset=utf-8` in `Content-Type`, fixing mojibake for non-ASCII note content (Cyrillic, CJK) in clients that fall back to Latin-1 when charset is omitted (#16). Fixed upstream by @Zombiehamser. High8/29/2026
v0.6.2 ### Fixes - OAuth client registrations are no longer evicted when their tokens expire (#13). AI clients cache their `client_id` and present it again after the 14-day refresh-token expiry; the periodic cleanup used to delete the registration in the meantime, leaving the client permanently stuck on "Unknown client" until the connector was deleted and re-added. Registrations now live until the 100-client cap is reached, at which point the oldest registration without live tokens is evicted at regisHigh8/15/2026
v0.6.1 ### Changes - Switch the vendored livesync-commonlib to upstream main (0.1.1): the enumerate-metaonly fix is now merged upstream (vrtmrz/livesync-commonlib#22), so the fork pin is retired. Also picks up upstream's trailing-slash `couchDB_URI` fix (avoids double-slash 401s against CouchDB) and `DirectFileManipulator` path/watch-semantics fixes. High8/2/2026
v0.5.8 ### Features - Auto-detect LiveSync's "Obfuscate Properties" setting from the vault's document IDs at startup. A `COUCHDB_OBFUSCATE_PROPERTIES` value that doesn't match the vault could never work — `list_notes` and search would succeed while `read_note` returned "Note not found" for every path and writes produced documents LiveSync clients ignore (#4, #10). On mismatch the server now warns and corrects the setting automatically; an obfuscated vault without `COUCHDB_PASSPHRASE` fails fast at staHigh7/21/2026
v0.5.7 ### Security - Fix unauthenticated vault access via DNS rebinding and cross-origin browser requests when running without `MCP_AUTH_TOKEN` (GHSA-mx6p-3fg7-v6pj, CWE-350). In no-auth mode the MCP endpoint now validates the `Host` and `Origin` headers and rejects any request not from `localhost`/`127.0.0.1`/`::1` (extend with `MCP_ALLOWED_HOSTS`). Previously, a malicious web page the operator visited could reach the full tool surface — reading and modifying the vault — with no credential. DeploymeMedium7/10/2026
v0.5.6 ### Fixes - Empty (zero-byte) notes were dropped from the search index instead of being indexed, so a title-only note with no body never appeared in `list_notes` or search, and a fresh CouchDB vault of mostly empty notes cold-started with only the non-empty ones indexed. The index now distinguishes deleted notes from empty-but-present ones (#5, #6). - Bump transitive deps (`form-data`, `hono`, `undici`) to clear high-severity npm audit advisories (CRLF injection, CORS wildcard reflection). High7/7/2026
v0.5.5 ### Features - New `MCP_INSTRUCTIONS` and `MCP_INSTRUCTIONS_FILE` env vars append vault-specific conventions (folder structure, naming rules, folders to avoid) to the server-side MCP `instructions` string, so they apply across every MCP client without per-client config. Append-only to preserve the built-in deep-link rendering rule; file wins if both are set. 32 KB cap on file size; missing/unreadable file is a fatal startup error. High6/5/2026
v0.5.4 ### Fixes - Bump transitive deps (`fast-uri`, `hono`, `ip-address`, `qs`, `express-rate-limit`) to clear high-severity npm audit advisories (path traversal, host confusion). Refreshes the published Docker image with patched deps. ### Docs - Surface `COUCHDB_OBFUSCATE_PROPERTIES` in quickstart snippets so encrypted-vault users don't silently fail to sync when "Obfuscate Properties" is enabled in LiveSync (#4) High6/3/2026
v0.5.3 ### Features - New `READ_ONLY=true` env var disables write tools (`write_note`, `edit_note`, `delete_note`, `move_note`) — useful when exposing the server to multiple AI clients (#1, #3) ### Fixes - Bump axios (1.13.6 → 1.16.0) and other transitive deps to clear high-severity npm audit advisories (SSRF, prototype pollution) High5/5/2026
0.5.2Imported from npm (0.5.2)Low4/21/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Medium3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Low3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Low3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Low3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Low3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Low3/30/2026
v0.5.2 ### Fixes - Fix HKDF decryption error after Obsidian "Overwrite remote" rebuild — MCP was caching a stale PBKDF2 salt, causing notes written by MCP to be unreadable by the LiveSync plugin - Clear encryption key cache before each write/delete to always use the current salt from CouchDB - Add `E2EEAlgorithm: "v2"` to generated Setup URIs Low3/30/2026
v0.5.1 ### Features - Setup script generates LiveSync Setup URIs (admin + livesync user) for one-paste Obsidian configuration - Correct LiveSync client settings (chunk size, sync mode, obfuscation) baked into URI — prevents config mismatches between devices ### Fixes - Add missing `[httpd] enable_cors = true` to CouchDB config (fixes mobile sync) - Add `max_age = 3600` to CORS config Medium3/28/2026
v0.5.0 ### Breaking Changes - Remove `search_vault` tool and FlexSearch dependency — full-text search caused OOM on large encrypted vaults - `list_notes` gains `name` parameter (case-insensitive substring match on path) as replacement for finding notes ### Changes - Metadata index only: paths, mtimes, tags, links, backlinks (no full-text content indexing) - Dramatically reduced memory usage — works on 512MB containers with any vault size - Faster startup — no FlexSearch rebuild needed Medium3/28/2026
v0.4.10 ### Fixes - Remove Node.js heap cap (256MB too small for large encrypted vaults with FlexSearch) Medium3/28/2026
v0.4.9 ### Fixes - Start server before indexing — tools available immediately, search fills in progressively - Fixes health check timeout loop on Fly.io with large vaults Medium3/28/2026
v0.4.8 ### Fixes - Stop persisting FlexSearch index (was 53MB, caused OOM on load). Only metadata persisted now. - FlexSearch rebuilt from vault on every cold start - Clear library chunk cache between catch-up batches - Cap Node.js heap to 256MB in mcp-with-db deploy - Remove stale entries from persisted metadata on filesystem restart Medium3/28/2026
v0.4.7 ### Fixes - Clear library chunk cache between batches during catch-up (prevents unbounded memory growth) - Cap Node.js heap to 256MB in mcp-with-db deploy (leaves room for CouchDB in 512MB container) Medium3/28/2026
v0.4.6 ### Fixes - Skip non-markdown attachments during catch-up by decrypting path before fetching chunks - Prevents loading large binary files (PDFs, images) into memory during initial index build Medium3/28/2026
v0.4.5 ### Fixes - Fix OOM crash on first startup with large vaults — paginate `_changes` catch-up in batches of 50 - Save index checkpoint after each batch so crashes resume from last progress, not from zero Medium3/28/2026
v0.4.4 ### Changes - Add `mcpName` field to package.json for MCP registry publishing Medium3/27/2026
v0.4.3 ### Fixes - Coerce `limit` and `include_snippets` params from string to number/boolean (Anthropic proxy sends all values as strings) - Add tool call logging with args and execution time (`LOG_LEVEL=debug`) Medium3/27/2026
v0.4.2 ### Features - New `COUCHDB_OBFUSCATE_PROPERTIES` env var for vaults with "Obfuscate Properties" enabled in LiveSync - Setup script asks about property obfuscation when passphrase is set ### Fixes - Fix reading/writing notes in vaults with property obfuscation enabled (path obfuscation regression in livesync-commonlib service refactor) - Suppress replicator service logs in production Medium3/26/2026
v0.4.1 ### Fixes - Catch decryption errors in CouchDB watcher instead of crashing (wrong passphrase skips the doc) - Fix DirectFileManipulator initialization bugs in latest livesync-commonlib (addLog handler, settings, database service registration) - Print version at startup for easier debugging - Add global unhandled rejection handler as safety net - Add Docker volume to README examples for index persistence Medium3/26/2026
v0.4.0 ### Features - New `edit_note` tool — append, prepend (after frontmatter), or replace exact text without rewriting the whole note - New `list_folders` tool — lists all folders with note counts so the agent can discover folder names - New `list_tags` tool — lists all tags with counts, sorted by frequency - `list_notes` and `search_vault` now support `tag` filter parameter - `get_note_metadata` now returns backlinks (notes that link to this one) for knowledge graph navigation - `list_notes` now iMedium3/26/2026
v0.3.0 - Restructured deploy into `deploy/mcp-only` and `deploy/mcp-with-db` - Setup script asks which mode, vault name, and encryption passphrase - MCP-only gets persistent volume (fixes auth state loss and 2-machine split) - Single machine enforced on Fly.io (in-memory auth requires it) - Shared IPv4 allocated by default (free instead of $2/month dedicated) - README rewritten with decision table and three clear setup paths - Agent instructions show deep links with visible URLs Medium3/25/2026
v0.2.2 ### Fixes - Add shebang to dist/main.js so `npx obsidian-sync-mcp` works - Fix npm bin path normalization Medium3/25/2026
v0.2.1 ### Fixes - Add shebang to dist/main.js so `npx obsidian-sync-mcp` works Medium3/25/2026
v0.2.0 ### Features - README rewrite: "Already have LiveSync?" as first-class path for 600k+ existing users - Standalone MCP-only Fly.io deploy documented (no CouchDB needed) - Multi-line YAML tag parsing (`tags:\n - foo\n - bar`) - Deep link moved before note content (prevents link from polluting written notes) ### Refactoring - Extracted VaultBackend interface to shared module with compile-time checks - Extracted tools to separate tools.ts (main.ts reduced from 335 to 166 lines) - Extracted extraMedium3/25/2026
v0.1.3Release v0.1.3Medium3/25/2026
v0.1.2 ### Fixes - Fly.io deployment: bind to 0.0.0.0 (was localhost-only, unreachable by Fly proxy) - Fly.io deployment: CouchDB readiness check accepts 401 (auth-required means ready) - Fly.io deployment: set COUCHDB_URL in entrypoint - Fly.io deployment: use CouchDB base image (fixes missing libmozjs on amd64) - Fly.io deployment: override ENTRYPOINT to avoid CouchDB entrypoint conflict - CSP fix: removed form-action 'self' that blocked OAuth redirects in Claude's browser - Persist data to Fly.io vMedium3/24/2026
v0.1.1 Same as 0.1.0 with CI and publishing fixes. Medium3/24/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

minutes-sdkConversation memory SDK — query meeting transcripts, decisions, and action items from any AI agent or applicationv0.30.10
agent-link-mcpMCP server for bidirectional AI agent collaboration — spawn and communicate with any AI coding agent CLIv0.5.3
automagik-genieSelf-evolving AI agent orchestration framework with Model Context Protocol supportv6.261015.3
flutter-skillMCP Server for app automation - Give your AI Agent eyes and hands inside any app (Flutter, React, Web, Native)v0.9.37
@tankpkg/mcp-serverMCP server for Tank - scan and publish AI agent skills from your editorv0.16.5

More from GitHub Actions

paperclipaiPaperclip CLI — orchestrate AI agent teams to run a business
@aaif/gooseGoose - an open-source AI agent
@n8n-as-code/skillsAI Agent skills library for n8nac (internal — use npx n8nac skills)
@zhin.js/agentZhin AI Agent — session, ZhinAgent, init; composes @zhin.js/core providers and tools

More in MCP Servers

litellmPython SDK, Proxy Server (AI Gateway) to call 100+ LLM APIs in OpenAI (or native) format, with cost tracking, guardrails, loadbalancing and logging. [Bedrock, Azure, OpenAI, VertexAI, Cohere, Anthropi
claude-plugins-officialOfficial, Anthropic-managed directory of high quality Claude Code Plugins.
mcp-for-beginnersThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for
casdoorAn open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA,