Skip to main content
Glama
Obsidian Vault MCP Server

Obsidian Vault MCP Server

by JonHollander

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: obsidian-mcp

Инструменты MCP

Инструмент

Описание

list_notes

Список всех markdown-заметок с путями, размерами и датами

read_note

Чтение полного содержимого заметки по пути

search_notes

Полнотекстовый поиск по всем заметкам с фрагментами

write_note

Создание или перезапись заметки

append_to_note

Добавление текста в существующую заметку (или создание новой)

delete_note

Удаление заметки

create_folder

Создание папки (включая промежуточные директории)

delete_folder

Удаление папки (пустой или рекурсивно)

list_folders

Список вложенных папок по указанному пути

Предварительные требования

  • Аккаунт 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 name

2. Настройка окружения

Скопируйте пример файла окружения и заполните свои значения:

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/mcp

Claude Desktop

Добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian-vault": {
      "url": "https://obsidian-mcp.<your-subdomain>.workers.dev/mcp"
    }
  }
}

Как передаются данные

Вы редактируете заметку на телефоне:

  1. Obsidian Sync отправляет изменения

  2. ob sync --continuous в контейнере подтягивает их в /vault

  3. При следующем чтении или поиске Claude, Worker проксирует запрос к HTTP API контейнера, который считывает данные напрямую из /vault

Claude создает заметку:

  1. Worker получает вызов MCP write_note

  2. Worker проксирует его к HTTP API контейнера

  3. Контейнер записывает файл в /vault

  4. ob sync обнаруживает новый файл и отправляет его через Obsidian Sync

  5. Он появляется на вашем телефоне и компьютере

Разработка

# 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 вместо этого.

Справочник компонентов

Компонент

Что он делает

obsidian-headless

Официальный CLI Obsidian, синхронизирует хранилище без графического интерфейса

McpAgent (Agents SDK)

Обрабатывает транспорт MCP, сессии, аутентификацию

McpServer (MCP SDK)

Регистрация инструментов, протокол JSON-RPC

Cloudflare Containers

Запускает процесс синхронизации вместе с Worker

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      This 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.
      18
      26 npm
      15
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Bidirectional MCP server that connects Claude with an Obsidian vault, enabling note management, full-text search, graph traversal, and daily notes operations.
      3,713 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Remote MCP server for Obsidian vaults, enabling secure access to markdown notes from Claude clients without the Obsidian desktop app. Provides tools for searching, reading, listing recent notes, resolving daily notes, and creating/appending notes via HTTPS.
      10 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables MCP-capable assistants to securely search, read, create, edit, move, and delete notes in a private Obsidian vault via Cloudflare, using official Obsidian Sync and OAuth-protected tools.
      421 npm
      AGPL 3.0