Obsidian + LLM через MCP: полный гайд 2026 | AiManual
AiManual Logo Ai / Manual.
13 Июн 2026 Гайд

Как подключить Obsidian к LLM через MCP: пошаговое руководство

Подключите нейросеть к заметкам Obsidian за 10 минут. Используйте Claude, локальную LLM или любую модель через MCP-протокол. Готовый код и репозиторий.

Реклама
cliv1

У вас есть Obsidian с кучей заметок. И есть умная LLM, способная читать, анализировать и генерировать текст. Но они живут в разных вселенных. Вы копипастите контекст вручную? Тратите время на Ctrl+C, Ctrl+V? Знакомо.

В 2026 году это дикость. MCP (Model Context Protocol) решает проблему раз и навсегда. Он превращает ваше хранилище заметок в инструмент, который LLM может вызывать напрямую. Никаких файловых менеджеров, никаких промежуточных скриптов — только команда и ответ нейросети.

Я собрал рабочую схему: Obsidian + MCP сервер + LLM (Claude, локальная модель или любая через Open Web UI). В этой статье — полный маршрут, от установки до боевого сценария. Без воды, с готовым репозиторием.

Если вы ещё не знакомы с MCP, сначала прочитайте гайд по MCP с локальными моделями. А для глубокого понимания связки Obsidian + Claude — вот подробная статья.

Что такое MCP и почему Obsidian без него — каменный век

MCP — это протокол, который даёт LLM доступ к внешним инструментам. Представьте: нейросеть может сама вызвать поиск по заметкам, создать новую запись, прочитать файл. Без костылей вроде RAG на коленке или загрузки whole vault в промпт.

Протокол работает через JSON-RPC и не привязан к языку. Сервер (наш Obsidian-адаптер) предоставляет инструменты, клиент (Claude Desktop, Cursor, Open Web UI) их вызывает. Железобетонно, масштабируемо, безопасно.

Obsidian сам по себе — мощная база знаний. Но без AI это просто Markdown-редактор. MCP превращает его в RAG-систему в реальном времени: LLM может читать заметки, отвечать на вопросы на их основе, дополнять их новыми данными. И всё это через одно подключение.

⚠️
Не путайте MCP с плагинами Obsidian. Плагины — для локального расширения. MCP — для внешнего AI-ассистента. Но они могут работать в тандеме, например, через Obsidian Hybrid Search для поиска.

Что нам понадобится

  • Obsidian — версия 1.8+ (в 2026 уже 1.10, но MCP работает на любой).
  • Node.js v20+ и npm/pnpm/yarn (на ваш вкус).
  • LLM-клиент с поддержкой MCP: Claude Desktop, Cursor, Open Web UI с MCP-плагином, или прямой вызов через llama-server (см. гайд по подключению MCP к llama-server).
  • MCP сервер для Obsidian — готовый репозиторий или напишем свой. Я дам оба варианта.
  • Локальная или облачная LLM — любой движок, поддерживающий стандартные API (Ollama, llama.cpp, OpenAI API).

Сразу отмечу: всё работает локально. Если вы параноик по части приватности (а это правильно), ставьте локальную модель через Ollama — все данные остаются у вас. Вот гайд по замене Gemini CLI на локальную LLM.

Шаг 1: Готовим MCP сервер для Obsidian

Самый простой путь — взять готовый пакет @blazickjp/obsidian-mcp (на июнь 2026 это стабильная версия 0.6.2). Но если хотите понимать механику до молекул, напишем свой сервер.

Важно: MCP сервер должен иметь доступ к файловой системе хранилища Obsidian. Не давайте ему лишние разрешения — только папку vault.

1 Установка готового сервера

Откройте терминал и выполните:

npx @blazickjp/obsidian-mcp --vault-path /путь/к/вашему/vault

Сервер запустится на порту 3142 (по умолчанию). Если хотите другой порт:

npx @blazickjp/obsidian-mcp --port 5000 --vault-path /home/user/notes

Что этот сервер умеет? По умолчанию — поиск по заголовкам, чтение заметки по названию, создание новой заметки. Расширяется плагинами. Идеально для быстрого старта. Но если хочется кастомных инструментов (например, семантический поиск) — пишем свой.

2 Свой MCP сервер на Node.js (для гиков)

Создайте папку obsidian-mcp-server, инициализируйте проект:

mkdir obsidian-mcp-server && cd obsidian-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk gray-matter glob

Создайте файл index.js:

import {
  McpServer,
  ResourceTemplate
} from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { readFileSync, readdirSync, statSync, writeFileSync } from "fs";
import { join, extname } from "path";

const vaultPath = process.env.VAULT_PATH || process.cwd();
const server = new McpServer({
  name: "Obsidian Vault Server",
  version: "1.0.0"
});

server.resource(
  "note",
  new ResourceTemplate("obsidian://{filename}", { list: undefined }),
  async (uri, { filename }) => {
    const filePath = join(vaultPath, filename);
    const content = readFileSync(filePath, "utf-8");
    return {
      contents: [{
        uri: uri.href,
        text: content
      }]
    };
  }
);

server.tool(
  "search_notes",
  { query: { type: "string" } },
  async ({ query }) => {
    const files = readdirSync(vaultPath).filter(f => extname(f) === ".md");
    const results = files.filter(f =>
      readFileSync(join(vaultPath, f), "utf-8").includes(query)
    );
    return {
      content: [
        { type: "text", text: results.join("\n") || "Ничего не найдено" }
      ]
    };
  }
);

server.tool(
  "create_note",
  { filename: { type: "string" }, content: { type: "string" } },
  async ({ filename, content }) => {
    const filePath = join(vaultPath, filename.endsWith(".md") ? filename : filename + ".md");
    writeFileSync(filePath, content, "utf-8");
    return { content: [{ type: "text", text: "Заметка создана" }] };
  }
);

const transport = new StdioServerTransport();
await server.connect(transport);
console.error("Obsidian MCP Server запущен через stdio");

Запустите:

VAULT_PATH=/путь/к/vault node index.js

Теперь сервер готов принимать MCP-запросы. Важно: я выбрал stdio-транспорт — он де-факто стандарт для MCP и легко интегрируется с любым клиентом.

🔥
Хотите добавить семантический поиск через эмбеддинги? Используйте @xenova/transformers для локального векторизации. Вставьте в search_notes — и у вас нормальный RAG внутри заметок. Подробнее в статье Obsidian Hybrid Search.

Шаг 2: Подключаем LLM-клиент к серверу

Сервер запущен, теперь нужно сказать LLM, что этот инструмент существует. Рассмотрим три популярных варианта.

A Claude Desktop (самый простой)

Откройте настройки Claude, создайте или отредактируйте файл claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": [
        "@blazickjp/obsidian-mcp",
        "--vault-path",
        "/Users/user/obsidian-vault"
      ]
    }
  }
}

Если используете свой Node.js сервер через stdio:

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/path/to/obsidian-mcp-server/index.js"],
      "env": {
        "VAULT_PATH": "/path/to/vault"
      }
    }
  }
}

Перезапустите Claude. Теперь в чате пишете “Найди заметку про MCP и перепиши её для блога” — и нейросеть сама полезет в Obsidian. Магия, да.

B Open Web UI (локальный веб-интерфейс)

Если используете Open Web UI с локальной моделью (Ollama), MCP-подключение делается через настройки инструментов. Подробно описано в статье про настройку MCP для локальных моделей. Кратко: заходите в Admin Panel -> Tools -> Add MCP Server, указываете URL вашего сервера (например, http://localhost:3142 или stdio:///path/to/server).

C Cursor (IDE)

В Cursor (v0.45+ на 2026) MCP поддерживается нативно. Откройте настройки Cursor, найдите “MCP Servers” и добавьте такой же JSON, как для Claude Desktop. После этого AI-ассистент в Cursor сможет читать ваш Obsidian vault — идеально для рефакторинга кода на основе ваших конспектов.

Что дальше: сценарии использования

Я уже две недели живу с этой связкой. Вот что реально работает:

  • Быстрый дашборд знаний: попросил Claude “сделай summary по всем заметкам за последние 7 дней” — он через MCP прочитал файлы, сгруппировал, выдал аннотацию. Экономит час каждое утро.
  • Генерация контента на основе заметок: пишу статью, LLM подтягивает релевантные заметки из vault, не отвлекая меня на поиск.
  • Автоматическое архивирование: через Telegram + AI или локальный агент (см. второй мозг на Obsidian и Claude Code).
  • Code review с контекстом: в Cursor AI видит мои заметки по архитектуре и даёт ревью на основе прошлых решений.

Ошибки, которые я совершил (и вы не повторите)

Ошибка 1: Дать MCP-серверу доступ ко всей файловой системе. Не надо. Укажите точно vault. Если сервер скомпрометирован (а такое бывает с npm-пакетами), злоумышленник сможет читать ваши SSH-ключи. Obsidian vault — и точка.

Ошибка 2: Игнорировать кодировку файлов. Markdown в Obsidian бывает в UTF-8 с BOM или без. MCP сервер, написанный на Python (если решите переписать), может споткнуться о BOM. На Node.js таких проблем нет, но проверьте.

Ошибка 3: Думать, что MCP заменит все плагины Obsidian. Нет. Синхронизация через Obsidian Sync, графы, daily notes — это лучше делать родными плагинами. MCP для взаимодействия с внешним AI.

Ошибка 4: Не очищать историю инструментов. LLM может зациклиться, если ей доступны сотни заметок. Лучше ограничить инструмент search_notes 20 результатами — точность выше.

Безопасность и локальные модели

Если вы используете облачные LLM (GPT-4o, Claude Sonnet), все данные vault уходят на сервер. Для большинства это ок. Но если vault содержит персональные данные, пароли, конфиденциальные планы — используйте локальные модели через Ollama или llama-server. MCP поддерживает и их. Читайте MCP с локальными моделями и Self-hosted MCP сервер (там пример с финансами, но подход тот же).

Чек-лист: что проверить после настройки

  • [ ] Сервер запущен и слушает порт/stdio.
  • [ ] В клиенте (Claude, Open Web UI, Cursor) появились инструменты (например, search_notes).
  • [ ] LLM может читать заметки (попробуйте: “прочитай заметку MCP.md”).
  • [ ] LLM может создавать заметки (проверьте: “создай заметку test.md с текстом Hello”).
  • [ ] Нет ошибок доступа — vaultPath указан корректно.
  • [ ] Логи сервера не содержат ошибок.

FAQ: вопросы, которые задают после гайда

❓ Можно ли подключить Obsidian к GPT-4o через MCP?

Да, GPT-4o поддерживает MCP через OpenAI API с расширением инструментов. Но напрямую в ChatGPT веб-интерфейс — пока нет. Используйте Open Web UI как прокси: подключите OpenAI API к Open Web UI, а затем добавьте MCP сервер.

❓ Как ограничить LLM доступ к определённым папкам vault?

В коде сервера добавьте проверку префикса пути. Например, разрешить только /project/ и /dairy/. В готовом пакете @blazickjp/obsidian-mcp есть флаг --allowed-folders.

❓ А что с синхронизацией между устройствами?

MCP сервер работает локально на одном устройстве. Чтобы LLM могла обращаться к vault на другом ПК, используйте Obsidian Sync (облачная папка монтируется как локальная) или поднимите MCP сервер на сервере с доступом по HTTP (не рекомендую для безопасности).

❓ У меня уже настроен RAG через LangChain. MCP заменяет его?

MCP — это не RAG-система, а протокол вызова инструментов. Вы можете завернуть RAG-пайплайн в MCP инструмент (например, search_with_embeddings) и использовать его — гибридный подход. Подробнее в Obsidian Hybrid Search.

Финальный совет: не делайте из Obsidian монстра

Самая частая ошибка после такого гайда — начать пихать в MCP всё: чтение, запись, удаление, листинг, семантический поиск, графовые запросы... Стоп. LLM не умеет пользоваться 20 инструментами — она запутается. Дайте ей 3-5 инструментов: поиск, чтение, создание. Этого достаточно для 90% задач. Остальное — через общение.

Лучше потратьте сэкономленное время на структурирование заметок. Потому что даже самый крутой MCP сервер не поможет, если в vault хаос. А когда порядок — AI превращает вашу базу знаний в настоящего помощника, а не в архив ссылок.

И напоследок: MCP — это не фича Obsidian. Это стандарт взаимодействия AI с любыми данными. Настроив один раз, вы сможете подключать к вашему vault любую LLM: хоть Claude, хоть локальную Qwen3-72B, хоть GPT-6 (когда выйдет). Встраивайте MCP в свой стек — и выходите из копипастного каменного века. Ваш второй мозг заслуживает связи с первым.

Подписаться на канал