CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
es617 avatar

Obsidian Sync Mcp

es617/obsidian-sync-mcp
21authHTTPregistry active
Summary

Connects Claude or any MCP client to your Obsidian vault with eight tools for reading, writing, editing, moving, and deleting notes, plus listing folders, tags, and backlinks. Runs in filesystem mode against local markdown files or CouchDB mode with Self-hosted LiveSync for always-on cloud access. Deploy it on Fly.io with the included setup script for about $2-4/month, or run it locally with npx. Every response includes an Obsidian deep link so you can jump straight from Claude's answer into the note on Mac or iOS. Built-in OAuth provider handles authentication when you expose it over HTTPS.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →

Obsidian Sync MCP

MCP License: MIT Node TypeScript

Give any AI agent access to your Obsidian vault over MCP. Run it locally against your vault files, or pair it with Self-hosted LiveSync and deploy to the cloud so it works even when your machine is off.

Example: From your phone, ask your AI: "What's in my daily note for today?" — and get the full content back, with a link to open it in Obsidian.


How it works

The server connects to your vault in two ways:

  • Filesystem mode — reads .md files directly from your vault folder. No database needed.
  • CouchDB mode — reads from a CouchDB database, locally or in the cloud. Your vault syncs to CouchDB via Self-hosted LiveSync, the community Obsidian plugin (600k+ downloads). The MCP server reads from CouchDB directly using livesync-commonlib — the same library that powers the plugin — for proper chunk handling and E2E encryption support.

Both modes expose the same MCP tools over HTTP, so any MCP-compatible agent can connect: Claude, Copilot, custom agents, anything that speaks the Model Context Protocol.


Choose your setup

Need it always available?Have LiveSync?Go to
YesYesSetup A — add MCP alongside your existing CouchDB
YesNoSetup B — CouchDB + MCP + LiveSync from scratch
No—Setup C — filesystem or CouchDB, npx or Docker

A. Deploy MCP to the cloud

You already have LiveSync and CouchDB on an always-on server. You just need the MCP server deployed alongside it.

Using Fly.io setup script (macOS/Linux, or WSL on Windows):

git clone https://github.com/es617/obsidian-sync-mcp.git
cd obsidian-sync-mcp
./deploy/setup.sh    # choose option 2 (MCP only)

The script asks for your CouchDB connection details, vault name, and encryption passphrase.

Or run the Docker image on any always-on server:

docker run -p 8787:8787 \
  -v mcp-data:/data -e DATA_DIR=/data \
  -e COUCHDB_URL=https://your-couchdb:5984 \
  -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=yourpassword \
  -e COUCHDB_DATABASE=obsidian -e VAULT_NAME=MyVault \
  -e COUCHDB_PASSPHRASE=your-encryption-passphrase \
  -e COUCHDB_OBFUSCATE_PROPERTIES=false \
  -e MCP_AUTH_TOKEN=yourpassword \
  -e BASE_URL=https://your-server-url \
  ghcr.io/es617/obsidian-sync-mcp:latest

Set COUCHDB_PASSPHRASE if you use E2E encryption in LiveSync. Set COUCHDB_OBFUSCATE_PROPERTIES=true if "Obfuscate Properties" is also enabled in your LiveSync settings. For an existing vault the server detects the actual setting from the database at startup and corrects a mismatch with a warning; only for a brand-new empty database does the value need to match your LiveSync settings. Set BASE_URL to your public URL (required for OAuth callbacks when agents connect over HTTPS).

Your MCP endpoint is https://your-app.fly.dev/mcp (Fly.io) or https://your-server:8787/mcp (Docker behind HTTPS).

See Cost for Fly.io pricing.

Requires flyctl for the Fly.io path:

curl -L https://fly.io/install.sh | sh
export PATH="$HOME/.fly/bin:$PATH"  # add to ~/.zshrc or ~/.bashrc
fly auth login

B. Deploy everything to the cloud

Starting fresh — no LiveSync yet. Deploy CouchDB and MCP together, then set up LiveSync in Obsidian.

Using Fly.io setup script (macOS/Linux, or WSL on Windows):

git clone https://github.com/es617/obsidian-sync-mcp.git
cd obsidian-sync-mcp
./deploy/setup.sh    # choose option 1 (CouchDB + MCP)

The script generates credentials, creates the database, and deploys. Save the credentials it prints.

Or with Docker Compose on any always-on server:

git clone https://github.com/es617/obsidian-sync-mcp.git
cd obsidian-sync-mcp

cat > .env <<EOF
COUCHDB_PASSWORD=changeme
VAULT_NAME=MyVault
EOF

docker compose up -d

After deployment:

  1. In Obsidian, install Self-hosted LiveSync and configure it with the credentials from the setup output
  2. Your MCP endpoint is https://your-app.fly.dev/mcp (Fly.io) or http://your-server:8787/mcp (Docker)
  3. The MCP_AUTH_TOKEN is the password you enter when an agent connects
Always-on server
├── CouchDB + persistent storage
└── MCP server
      ↑                    ↑
Obsidian + LiveSync    AI agents

Requires flyctl for the Fly.io path:

curl -L https://fly.io/install.sh | sh
export PATH="$HOME/.fly/bin:$PATH"  # add to ~/.zshrc or ~/.bashrc
fly auth login

Cost (Fly.io)

Applies to both Setup A and Setup B.

ComponentCost
CouchDB + MCP VM (shared, 512MB)~$3-4/month (kept alive by LiveSync)
MCP-only VM (shared, 256MB)~$0-2/month (suspends when idle)
1GB persistent volume~$0.15/month

As of March 2026, Fly.io may waive charges under $5/month, which could make this effectively free with a shared IPv4. Either way, cheaper than Obsidian Sync ($4/month) and you own the data.


C. Run on your machine

Run the MCP server locally. Works with filesystem mode (reads vault files directly) or CouchDB mode (if you have LiveSync). Machine must stay on for agents to reach it.

Filesystem mode (simplest):

VAULT_PATH=~/Documents/MyVault \
VAULT_NAME=MyVault \
npx obsidian-sync-mcp

CouchDB mode (if you have LiveSync):

COUCHDB_URL=http://localhost:5984 \
COUCHDB_USER=admin \
COUCHDB_PASSWORD=yourpassword \
COUCHDB_DATABASE=obsidian \
COUCHDB_PASSPHRASE=your-encryption-passphrase \
COUCHDB_OBFUSCATE_PROPERTIES=false \
VAULT_NAME=MyVault \
npx obsidian-sync-mcp

Omit COUCHDB_PASSPHRASE if you don't use E2E encryption in LiveSync. Set COUCHDB_OBFUSCATE_PROPERTIES=true if "Obfuscate Properties" is also enabled in your LiveSync settings. For an existing vault the server detects the actual setting from the database at startup and corrects a mismatch with a warning; only for a brand-new empty database does the value need to match your LiveSync settings.

Or with Docker:

docker run -p 8787:8787 \
  -v mcp-data:/data -e DATA_DIR=/data \
  -e VAULT_PATH=/vault -v ~/Documents/MyVault:/vault \
  -e VAULT_NAME=MyVault \
  ghcr.io/es617/obsidian-sync-mcp:latest

Your MCP endpoint is http://localhost:8787/mcp.

Want remote access? Add a tunnel (machine must stay on):

cloudflared tunnel --url http://localhost:8787    # free
tailscale funnel 8787                             # or Tailscale
ngrok http 8787                                   # or ngrok

Set BASE_URL to the tunnel URL when using authentication.


Tools

ToolDescription
read_noteRead a note's markdown content by path
write_noteCreate or overwrite a note (replaces entire content)
edit_noteEdit a note without rewriting it — append, prepend (after frontmatter), or replace exact text
list_foldersList all folders in the vault with note counts — use to discover folder names
list_tagsList all tags in the vault with counts — use to discover tags before filtering
list_notesList notes with timestamps. Filter by folder, name, tag, or date. Sort by name or modified.
delete_noteDelete a note
move_noteMove or rename a note — works across folders, creates destination folders automatically
get_note_metadataGet frontmatter, tags, outgoing links, backlinks, size, and timestamps — navigate the knowledge graph

Every tool response includes an Obsidian deep link (obsidian://open?vault=...&file=...) that works on Mac and iOS.

"Add a bullet point to my daily note." "Find my notes about the MCP server and fix the typo in the second one."


Authentication

Set MCP_AUTH_TOKEN to a password to enable authentication:

MCP_AUTH_TOKEN=mysecretpassword npx obsidian-sync-mcp

The server includes a self-contained OAuth 2.1 provider. When an agent connects:

  1. A browser window opens with a password page
  2. Enter the MCP_AUTH_TOKEN password
  3. The agent gets an access token and refreshes it transparently

The session is shared across all your Claude interfaces (Desktop, Web, Mobile) and persists across server restarts. You'll need to re-enter the password after 14 days of inactivity (configurable via MCP_REFRESH_DAYS).

For non-OAuth clients (curl, MCP Inspector, custom agents), you can also pass the token directly as Authorization: Bearer <MCP_AUTH_TOKEN>.

Without MCP_AUTH_TOKEN, the server runs without authentication — suitable for local use or behind a private network.


Environment variables

VariableRequiredDefaultDescription
VAULT_PATHFilesystem mode—Path to your Obsidian vault directory
COUCHDB_URLCouchDB mode—CouchDB server URL
COUCHDB_USERCouchDB modeadminCouchDB username
COUCHDB_PASSWORDCouchDB mode—CouchDB password (required)
COUCHDB_DATABASECouchDB modeobsidianCouchDB database name
COUCHDB_PASSPHRASECouchDB mode—LiveSync E2E encryption passphrase (must match plugin setting)
COUCHDB_OBFUSCATE_PROPERTIESCouchDB modefalseSet to true if "Obfuscate Properties" is enabled in LiveSync (obfuscates file paths, sizes, dates in the database). For existing vaults the actual setting is auto-detected at startup; this value only decides the format for a brand-new empty database
VAULT_NAMEBothMyVaultVault name (used for deep links and index storage)
MCP_AUTH_TOKENOptional—Password for authentication
BASE_URLOptionalhttp://localhost:PORTPublic URL (for OAuth callbacks when using a tunnel)
PORTOptional8787HTTP port
HOSTOptional0.0.0.0Bind address (127.0.0.1 to restrict to localhost)
MCP_ALLOWED_HOSTSOptional—Comma-separated extra Host values accepted in no-auth mode (e.g. 192.168.1.5,mybox.local). No-auth mode rejects any other Host to block browser DNS-rebinding; localhost is always allowed. Ignored when MCP_AUTH_TOKEN is set.
DATA_DIROptional~/.obsidian-mcpDirectory for persisted data (metadata index, auth tokens)
LOG_LEVELOptional—Set to debug for verbose logging (library logs, change feed, index sync)
MCP_REFRESH_DAYSOptional14Days before auth session expires
READ_ONLYOptionalfalseSet to true to disable all write tools (write_note, edit_note, delete_note, move_note). Only read tools are exposed via MCP. Useful when sharing the server with multiple AI clients and write access should be opt-in.
WRITE_FOLDERSOptional—Comma-separated list of vault-relative folders where writes are allowed (e.g. MCP,Inbox). When set, the whole vault stays readable but write_note, edit_note, delete_note, and move_note refuse paths outside these folders (move_note requires both source and destination to be writable). Enforced server-side, unlike MCP_INSTRUCTIONS. Matching is case-sensitive and folder-boundary-aware (MCP matches MCP/note.md but not MCP-private/note.md). Ignored when READ_ONLY=true; unset means the whole vault is writable.
MCP_INSTRUCTIONSOptional—Extra text appended to the server's MCP instructions (the string clients inject into the system prompt). Use this to bake vault-specific conventions into the server — e.g. folder structure, naming rules, folders to avoid — so they apply across every MCP client without per-client config. Best-effort: not all clients respect instructions.
MCP_INSTRUCTIONS_FILEOptional—Path to a file (e.g. markdown) whose contents are appended to the MCP instructions. Easier than MCP_INSTRUCTIONS for multi-line conventions. If both are set, the file wins and MCP_INSTRUCTIONS is ignored (with a startup warning). Missing/unreadable file or files larger than 32 KB are fatal startup errors. Store this file somewhere only the service user can write (e.g. chmod 600) — its contents land in every MCP session's system prompt, so write access to it = prompt-injection access to every client.

Set VAULT_PATH for filesystem mode or COUCHDB_URL for CouchDB mode.


Try without an agent

Test the server interactively using the MCP Inspector:

VAULT_PATH=~/Documents/MyVault npx obsidian-sync-mcp &
npx @modelcontextprotocol/inspector

Set transport to Streamable HTTP, enter http://localhost:8787/mcp, and connect.


How to update

How you run itHow to update
npx obsidian-sync-mcpAutomatic — npx pulls latest
Fly.ioFrom the same directory where you ran setup: fly deploy. If you lost the fly.toml, run fly config save --app your-app-name to restore it.
Dockerdocker pull ghcr.io/es617/obsidian-sync-mcp:latest and restart

Known limitations

  • Single vault per instance. Each server connects to one vault. For multiple vaults, run multiple instances on different ports.
  • Single machine on Fly.io. Auth state is in-memory, so multiple machines break the OAuth flow. The setup script enforces this automatically.
  • No conflict resolution. If an agent and Obsidian edit the same note simultaneously, last write wins.
  • Text only. Binary attachments are not exposed through MCP tools.
  • Deep links depend on the client. Obsidian obsidian:// deep links are included in every tool response. They work on Claude Mobile and in browsers, but some clients (Claude Desktop) may not render them as clickable links.
  • Node 22+ required.
  • Setup script requires bash. The deploy/setup.sh script works on macOS and Linux. On Windows, use WSL or Git Bash.

Safety

This server gives an AI agent read/write access to your Obsidian vault.

Agents can modify and delete notes. Keep backups. Use tool approval deliberately.

Authentication is optional. Always set MCP_AUTH_TOKEN when exposing to the internet.

Use HTTPS in production. Use a tunnel or deploy behind a reverse proxy.

This software is provided as-is under the MIT license. You are responsible for what agents do with your vault.


Development

git clone --recursive https://github.com/es617/obsidian-sync-mcp.git
cd obsidian-sync-mcp
npm install && npm run build
npm test          # unit tests
npm run test:e2e  # integration tests

License

MIT — see LICENSE.

Acknowledgements

  • Self-hosted LiveSync by vrtmrz — the Obsidian plugin and CouchDB sync protocol
  • livesync-commonlib by vrtmrz — the shared library for reading/writing the LiveSync document format
  • FastMCP — TypeScript MCP framework
  • CouchDB — document database
  • Fly.io — deployment platform
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →

Configuration

VAULT_PATH

Path to your Obsidian vault directory (filesystem mode)

COUCHDB_URL

CouchDB server URL (CouchDB mode)

COUCHDB_USER

CouchDB username

COUCHDB_PASSWORDsecret

CouchDB password (required in CouchDB mode)

COUCHDB_DATABASE

CouchDB database name

COUCHDB_PASSPHRASEsecret

LiveSync E2E encryption passphrase (must match plugin setting)

COUCHDB_OBFUSCATE_PROPERTIES

Set to 'true' if 'Obfuscate Properties' is enabled in LiveSync (obfuscates file paths, sizes, dates)

VAULT_NAME

Vault name for deep links and index storage

MCP_AUTH_TOKENsecret

Password for OAuth authentication

BASE_URL

Public URL for OAuth callbacks (required when using a tunnel)

PORT

HTTP port

Categories
Documents & Knowledge
Registryactive
Packageobsidian-sync-mcp
TransportHTTP
AuthRequired
UpdatedMar 30, 2026
View on GitHub

More from es617

  • Ble Mcp Server13
  • Serial Mcp Server10
  • Dbgprobe Mcp Server6

Related Documents & Knowledge MCP Servers

View all →
pvliesdonk avatar
Markdown Vault MCP

pvliesdonk/markdown-vault-mcp

Markdown vault MCP server with FTS5 + semantic search and frontmatter indexing
16
jubakitiashvili avatar
Context Mem

jubakitiashvili/context-mem

Persistent memory for AI agents — 98%+ retrieval recall, 99% token savings, 44 tools
13
oleksandrkucherenko avatar
Obsidian Vault MCP Server

oleksandrkucherenko/mcp-obsidian-via-rest

Access Obsidian vaults via Local REST API - read, search, and interact with notes
13
foxitsoftware avatar
Foxit PDF API MCP Server

foxitsoftware/foxit-pdf-api-mcp-server

MCP server that exposes Foxit PDF API capabilities via stdio.
10
houtini-ai avatar
Google Knowledge Graph

io.github.houtini-ai/google-knowledge-graph

Search Google's Knowledge Graph for structured information about real-world entities
10
hint-services avatar
Hint Services Obsidian Github Mcp

ai.smithery/hint-services-obsidian-github-mcp

Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
9