Obsidian Vault MCP Server
Obsidian + Claude через Cloudflare
Получите доступ к своему Obsidian vault из Claude (веб, десктоп, Code) с помощью MCP-сервера на Cloudflare Workers + Containers.
Никаких NAS, Docker Compose или туннелей. Только инфраструктура Cloudflare с использованием Agents SDK для полноценного MCP-сервера.
Архитектура
Obsidian (phone, desktop)
│
│ Obsidian Sync (your existing subscription)
▼
Cloudflare Container (Node.js 22)
runs `ob sync --continuous`
serves vault files over HTTP API
▲
│ container fetch (native)
│
Cloudflare Worker (MCP server via Agents SDK)
tools: list, read, search, write, append, delete
auth via bearer token (or OAuth / Cloudflare Access)
▲
│ MCP over Streamable HTTP
│
Claude (web, desktop, Code)Контейнер является единственным источником истины. Он запускает obsidian-headless для синхронизации с Obsidian Sync и предоставляет HTTP API для файловых операций. Worker проксирует все вызовы инструментов MCP к API контейнера.
Related MCP server: obsidianMCP
Инструменты MCP
Инструмент | Описание |
| Список всех markdown-заметок с путями, размерами и датами |
| Чтение полного содержимого заметки по пути |
| Полнотекстовый поиск по всем заметкам с фрагментами |
| Создание или перезапись заметки |
| Добавление текста в существующую заметку (или создание новой) |
| Удаление заметки |
| Создание папки (включая промежуточные директории) |
| Удаление папки (пустой или рекурсивно) |
| Список вложенных папок по указанному пути |
Предварительные требования
Аккаунт Cloudflare с платным тарифом Workers ($5/мес)
Активная подписка Obsidian Sync
Node.js 22+ на вашей рабочей станции
CLI
wrangler:npm install -g wrangler
Настройка
0. Вход в Wrangler
wrangler loginВсе необходимые области доступа (scopes) предоставляются по умолчанию.
1. Генерация токена аутентификации Obsidian
Разовый шаг на вашей рабочей станции:
npm install -g obsidian-headless
ob login
# Enter email, password, MFA code if enabled
ob sync-list-remote
# Note your vault name2. Настройка окружения
Скопируйте пример файла окружения и заполните свои значения:
cp .dev.vars.example .dev.varsОтредактируйте .dev.vars, указав свои учетные данные Obsidian и опциональный токен аутентификации MCP. Этот файл используется wrangler dev для локальной разработки и скриптом настройки для отправки секретов в Cloudflare. Он уже добавлен в .gitignore.
3. Развертывание
Запустите скрипт настройки, чтобы отправить все секреты и выполнить развертывание:
./scripts/setup.shИли выполните шаги по отдельности:
./scripts/setup.sh secrets # Push secrets to Cloudflare
./scripts/setup.sh validate # Check prerequisites
./scripts/setup.sh deploy # Validate + install deps + deploy + restart container
./scripts/setup.sh status # Check sync container health
./scripts/setup.sh restart # Restart sync container
./scripts/setup.sh container-logs # View sync container logsВаш MCP-сервер доступен по адресу:
https://obsidian-mcp.<your-subdomain>.workers.dev/mcp
4. Подключение Claude
Claude.ai (веб)
Настройки → Коннекторы → Добавить пользовательский коннектор:
URL:
https://obsidian-mcp.<your-subdomain>.workers.dev/mcp?token=YOUR_MCP_AUTH_TOKENОставьте поля OAuth пустыми — токен в URL обрабатывает аутентификацию
Claude Code
claude mcp add \
--transport http \
--scope user \
obsidian-vault \
https://obsidian-mcp.<your-subdomain>.workers.dev/mcpClaude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"obsidian-vault": {
"url": "https://obsidian-mcp.<your-subdomain>.workers.dev/mcp"
}
}
}Как передаются данные
Вы редактируете заметку на телефоне:
Obsidian Sync отправляет изменения
ob sync --continuousв контейнере подтягивает их в/vaultПри следующем чтении или поиске Claude, Worker проксирует запрос к HTTP API контейнера, который считывает данные напрямую из
/vault
Claude создает заметку:
Worker получает вызов MCP
write_noteWorker проксирует его к HTTP API контейнера
Контейнер записывает файл в
/vaultob syncобнаруживает новый файл и отправляет его через Obsidian SyncОн появляется на вашем телефоне и компьютере
Разработка
# Local dev (MCP server only, no container)
npm run dev
# Deploy
npm run deployСтоимость
Сервис | Использование | Стоимость |
Платный тариф Workers | Уже оплачен | $5/мес (покрывает всё) |
Контейнер | 1 экземпляр, в основном простаивает | Включено в тариф Workers |
Итого дополнительно | $0 |
Структура проекта
obsidian-mcp/
├── src/
│ └── index.ts # MCP server (Agents SDK, proxies to container)
├── sync-container/
│ ├── Dockerfile # Headless sync container image
│ ├── entrypoint.sh # Auth, sync startup
│ └── server.js # HTTP API for vault file operations
├── scripts/
│ └── setup.sh # Push secrets, deploy
├── .dev.vars.example # Template for env vars / secrets
├── wrangler.jsonc # Worker + Container config
└── package.jsonДальнейшие шаги
Это упражнения для укрепления настройки под ваши нужды:
Усиление аутентификации
Включенная аутентификация (секрет MCP_AUTH_TOKEN) поддерживает как заголовки Authorization: Bearer, так и параметры запроса ?token=. Использование токена в URL удобно для коннекторов Claude.ai, где пользовательские заголовки не всегда доступны.
Для общих или публичных развертываний рассмотрите более надежные варианты:
Cloudflare Access: Установите Zero Trust Access перед Worker для SSO на основе идентификации с журналами аудита без изменения кода
OAuth: Интегрируйте
workers-oauth-providerдля потоков OAuth GitHub/Google
Аутентификация контейнера
Проверьте, поддерживает ли obsidian-headless аутентификацию через --token или переменные окружения для ob login, чтобы избежать интерактивных запросов. Если нет, сохраняйте сессию аутентификации после разового интерактивного входа и восстанавливайте её при запуске контейнера.
Устойчивость к перезапуску контейнера
Файл состояния sqlite ob находится на эфемерном диске контейнера. Перезапуск инициирует полную повторную синхронизацию. Чтобы исправить это: добавьте перехват SIGTERM в entrypoint.sh, который сохраняет файл состояния, и восстанавливайте его при запуске.
Производительность поиска
Поиск методом перебора считывает каждый файл .md при каждом запросе — это нормально для менее чем 500 файлов. Для больших хранилищ создайте поисковый индекс в D1 или Workers KV.
Вложения
В настоящее время фильтрует только .md. Расширьте функционал для поддержки изображений, PDF и других вложений хранилища с помощью дополнительных инструментов.
Устранение неполадок
Docker должен быть запущен — Контейнер синхронизации требует Docker. Запустите docker info для проверки. Подкоманда validate проверяет это автоматически.
Два пароля — OBSIDIAN_PASSWORD — это ваш пароль от аккаунта Obsidian (используется для входа на obsidian.md). VAULT_PASSWORD — это отдельный пароль сквозного шифрования (E2EE), установленный в Obsidian → Sync → Encryption. Оставьте VAULT_PASSWORD пустым, если ваше хранилище не использует E2EE.
Развертывание не перезапускает контейнеры — wrangler deploy не перезапускает запущенные контейнеры. Скрипт настройки делает это автоматически. При ручном развертывании перезапустите с помощью ./scripts/setup.sh restart.
Логи контейнера не отображаются в wrangler tail — Стандартный вывод контейнера не передается через wrangler tail. Используйте ./scripts/setup.sh container-logs вместо этого.
Справочник компонентов
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Cloudflare Workers MCP server: claude-skill-validator
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Related MCP Servers
- AlicenseAqualityBmaintenanceThis MCP server enables Claude to interact with an Obsidian vault for persistent, structured memory, providing tools for note creation, semantic search, graph traversal, and session memory.189 npm13MIT
- AlicenseNot gradedqualityDmaintenanceProvides Claude with read, search, and write access to an Obsidian vault through MCP tools.6,209 npmApache 2.0
- AlicenseAqualityCmaintenanceA local MCP connector that lets Claude read, write and search any Obsidian vault directly from disk.20MIT
- AlicenseNot gradedqualityDmaintenanceBidirectional MCP server that connects Claude with an Obsidian vault, enabling note management, full-text search, graph traversal, and daily notes operations.2,545 npmMIT