Skip to main content
Glama
BartK1990

obsidian-mcp-server

by BartK1990

obsidian-mcp-server

Минимальный плагин для Obsidian, который запускает MCP-сервер (Model Context Protocol) прямо внутри Obsidian, используя транспорт Streamable HTTP. Он предоставляет четыре инструмента: list_notes, read_note, write_note, search_notes.

Работает полностью на вашей машине (привязка к 127.0.0.1) — никакие данные не покидают ваш компьютер, если только вы не направите на сервер удалённый клиент, чего делать не стоит.

Почему такой подход

Десктопное приложение Obsidian — это Electron с интеграцией Node, доступной плагинам, поэтому плагин может открыть настоящий http.Server и общаться по MCP напрямую — без внешнего процесса и без отдельного npx-сервера, который нужно держать запущенным.

Related MCP server: obsidian-mcp

Сборка (Windows)

# 1. Put this folder inside your vault's plugin directory, e.g.:
#    <vault>\.obsidian\plugins\obsidian-mcp-server\

cd <vault>\.obsidian\plugins\obsidian-mcp-server
npm install
npm run build

В результате появится main.js рядом с manifest.json. Затем в Obsidian: Настройки → Сторонние плагины → включите «MCP Server». Вы должны увидеть уведомление: MCP server listening on http://127.0.0.1:8123/mcp.

Откройте настройки плагина, чтобы изменить порт или задать bearer-токен.

Подключение Claude Desktop

Локальный конфиг mcpServers в Claude Desktop ожидает команду stdio, а не прямой URL, поэтому подключитесь к HTTP-эндпоинту через mcp-remote (устанавливается через npx по требованию, нужен Node.js):

Отредактируйте %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://127.0.0.1:8123/mcp"]
    }
  }
}

Если вы задали bearer-токен в настройках плагина, передайте его в заголовке:

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "http://127.0.0.1:8123/mcp",
        "--header", "Authorization:Bearer YOUR_TOKEN"
      ]
    }
  }
}

Завершите работу Claude Desktop через значок в трее и откройте его заново. Должна появиться иконка с четырьмя инструментами Obsidian.

Отладка

  • Используйте MCP Inspector, чтобы проверить сервер напрямую, без Claude Desktop: npx @modelcontextprotocol/inspector и подключитесь к http://127.0.0.1:8123/mcp.

  • Консоль разработчика Obsidian (Ctrl+Shift+I) показывает вывод console.error из плагина, включая ошибки запросов.

Расширение

Добавляйте новые инструменты в buildMcpServer() в main.ts — например, оберните app.metadataCache для запросов по frontmatter/тегам или app.workspace для определения «какая заметка сейчас открыта». Каждый инструмент — это просто имя, схема входных данных zod и асинхронный обработчик, возвращающий { content: [...] }.

Примечания / предостережения

  • isDesktopOnly: true в манифесте — плагин не загрузится в мобильной версии Obsidian, поскольку там нет низкоуровневого модуля http.

  • Используемый здесь режим транспорта без сохранения состояния (новый StreamableHTTPServerTransport на каждый запрос) — самый простой вариант, и его вполне достаточно для одного локального клиента. Если вам нужно несколько одновременных клиентов с корректной поддержкой непрерывности сессий, вам пришлось бы добавить карту транспортов с ключом Mcp-Session-Id — см. пример «with session management» из MCP TypeScript SDK.

  • Bearer-токен — это простая проверка общего секрета, а не настоящая аутентификация. Поскольку сервер привязывается только к 127.0.0.1, основная модель угроз — «другие локальные процессы на вашей машине», и токен как раз от них защищает.

Related MCP Connectors

Related MCP Servers