Игорь Градов
Игорь Градов
6 мин
ai

Obsidian + LLM без копипаста: открытый MCP-сервер связал заметки с нейросетью за 15 минут

Русский разработчик собрал открытый MCP-сервер, который позволяет любому LLM-клиенту напрямую читать, искать и редактировать заметки в хранилище Obsidian, и опубликовал пошаговую инструкцию на Хабре.

Почему это важно

До сих пор работа с личной базой знаний и нейросетью выглядела как ручной конвейер: открыл заметку, скопировал фрагмент, вставил в чат, перенёс ответ обратно. MCP-сервер убирает этот конвейер: модель сама видит структуру ваших файлов и достаёт нужный контекст без переключения окон.

Зачем это нужно и откуда взялось?

Автор проекта хранит в Obsidian рабочие заметки, черновики статей, техническую документацию и планы проектов. При работе в Cursor или ChatGPT вся эта база для модели не существовала: приходилось вручную вспоминать, где лежит файл, копировать фрагмент и вставлять в LLM-клиент. Несколько раз в день.

Вместо очередного плагина внутри Obsidian он написал внешний MCP-сервер. MCP (Model Context Protocol, протокол контекста модели) позволяет LLM-клиенту подключать внешние инструменты по единому стандарту: один сервер, любые клиенты. Сервер работает напрямую с файловой системой, потому что хранилище Obsidian это обычная папка с Markdown-файлами. Сам Obsidian при этом не обязан быть запущен.

Репозиторий проекта открыт: github.com/tenqz/obsidian-agent.

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

  • Obsidian с локальным хранилищем (vault) на вашем компьютере
  • Docker и Docker Compose для запуска сервера в контейнере
  • LLM-клиент с поддержкой MCP: Cursor, Claude Desktop, ChatGPT с MCP-плагином или любой совместимый
  • Python 3 (если хотите запускать без Docker)
  • Примерное время на настройку: 15 минут при установленном Docker, до 30 минут с нуля

Шесть инструментов, которые получает модель

Сервер предоставляет LLM-клиенту ровно шесть команд:

  • vault_ls показать содержимое папки
  • vault_read прочитать конкретный Markdown-файл
  • vault_write создать или перезаписать заметку
  • vault_glob найти файлы по шаблону имени (glob-паттерн, маска вроде *.md или projects/**/*.md)
  • vault_tree получить дерево всего хранилища
  • vault_search полнотекстовый поиск по всем Markdown-файлам

Набор сознательно минимальный. Как поясняет автор, если дать модели двадцать похожих методов, она начинает выбирать непредсказуемо. Шесть понятных операций дают стабильное поведение.

Пошаговая инструкция

  1. Клонируйте репозиторий проекта:
git clone https://github.com/tenqz/obsidian-agent.git
cd obsidian-agent
  1. Укажите путь к вашему vault в файле docker-compose.yml. Замените путь к папке на свой:
volumes:
  - /путь/к/вашему/obsidian-vault:/vault:ro

Флаг :ro означает «только чтение». Если хотите, чтобы модель могла создавать и редактировать заметки, уберите :ro.

  1. Выберите режим подключения. Их два:
  2. stdio для локальных клиентов (Cursor, Claude Desktop). Клиент сам запускает контейнер и общается через стандартный ввод-вывод. Отдельный порт открывать не нужно.
  3. SSE (Server-Sent Events, потоковые события от сервера) для сетевого доступа. Подходит для ChatGPT MCP или удалённого подключения. Сервер слушает на указанном порту.

  4. Запустите контейнер:

docker compose up -d
  1. Подключите MCP-сервер в вашем LLM-клиенте. В настройках клиента добавьте новый MCP-инструмент и укажите параметры подключения (адрес и порт для SSE или команду запуска для stdio). Конкретные поля зависят от клиента.

  2. Проверьте связь: задайте модели вопрос, который требует содержимого ваших заметок, например: «Покажи структуру моего vault» или «Найди всё, что я писал про архитектуру проекта X».

Как это применить

Вот пример реального сценария. Вместо старого способа (открыть Obsidian, найти папку «Проекты», скопировать фрагмент, вставить в чат) вы пишете прямо в LLM-клиенте:

Посмотри мои заметки в папке projects, найди всё, что я писал про архитектуру бэкенда, и собери короткое резюме на один экран.

Модель сама вызывает vault_ls, затем vault_search, читает нужные файлы через vault_read и возвращает сводку. Вы не переключали окно, не искали файл вручную и не копировали ничего.

Другой сценарий: «Создай заметку в папке drafts с планом статьи про MCP-серверы на основе моих заметок из папки ideas». Модель читает идеи, компилирует план и записывает через vault_write.

Частые ошибки

Монтирование не той папки. Путь в docker-compose.yml должен вести именно к корню vault (там, где лежат ваши .md-файлы), а не к папке с самим приложением Obsidian. Проверьте, что внутри контейнера по пути /vault видны ваши заметки.

Режим «только чтение» при попытке записи. Если оставили флаг :ro в настройках тома, команды vault_write будут падать с ошибкой. Убедитесь, что режим соответствует вашим задачам.

Слишком большое хранилище без фильтра. Если в vault тысячи файлов, полнотекстовый поиск может работать медленно и тратить много токенов (единиц текста, за которые платит клиент). Начинайте запросы с конкретной папки или шаблона, а не с корня хранилища.

Сервер не видит изменений. Файловая система монтируется при запуске контейнера. Если вы переместили vault в другую папку после запуска, перезапустите контейнер.

Ожидание «магии Obsidian». Сервер работает с файлами, а не с внутренним состоянием приложения. Открытые вкладки, граф связей, плагины Obsidian ему недоступны. Это не баг, а осознанное решение: vault доступен, даже если Obsidian не запущен.

Что с этого прямо сейчас, по ролям?

Автору Дзена. Если вы ведёте базу идей, заготовок и черновиков в Obsidian, теперь можно просить нейросеть найти релевантные наброски, собрать план из разрозненных заметок и даже создать черновик, не выходя из LLM-клиента. Связка Obsidian и LLM (obsidian llm) через MCP превращает папку с файлами в личного ассистента с памятью.

Маркетологу. Контент-планы, брифы, результаты исследований, всё это можно хранить в одном vault и дёргать контекст прямо во время работы с нейросетью. Больше не нужно держать десять вкладок, чтобы собрать фактуру.

Предпринимателю в РФ и СНГ. Проект открытый, работает локально, данные не покидают ваш компьютер. Это важно, если в заметках коммерческая информация. Из доступных в РФ LLM-клиентов с поддержкой MCP пока удобнее всего Cursor. Для моделей без MCP-поддержки придётся ждать обновлений или использовать промежуточные обёртки.

Мнение редакции dzen.guru

Мне нравится сам подход: не пытаться встроить ИИ внутрь Obsidian очередным плагином, а сделать наоборот, дать любой нейросети доступ к вашим файлам. Это принципиально гибче, потому что завтра появится новый клиент, и он тоже будет работать.

По моим наблюдениям, главная проблема связки obsidian llm не техническая, а организационная. Если ваши заметки хаотичны, модель тоже будет путаться. Прежде чем подключать MCP, стоит навести минимальный порядок: разложить файлы по папкам с понятными именами и убрать мусорные черновики.

Честная оговорка: сервер пока не поддерживает работу с метаданными Obsidian (теги в YAML-шапке, обратные ссылки через граф). Для простого поиска и чтения этого достаточно, но если ваш рабочий процесс построен вокруг графа связей, часть контекста модель не увидит.

Курс по нейросетям для авторов

Учим подключать ИИ к реальным рабочим задачам, от генерации контента до автоматизации рутины

Узнать подробности

Проект решает конкретную боль: ваша личная база знаний наконец становится видимой для нейросети, а не лежит мёртвым грузом в соседнем окне. Если вы давно хотели, чтобы ИИ работал с вашим контекстом, а не с абстрактным «средним интернетом», пятнадцать минут на настройку Docker-контейнера того стоят.

По материалам Habr AI

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Нейросеть для создания видео за $0,005 в секунду: Avataar AI генерирует в 20 раз дешевле конкурентов
ai

Нейросеть для создания видео за $0,005 в секунду: Avataar AI генерирует в 20 раз дешевле конкурентов

Индийский стартап Avataar AI выпустил нейросеть для создания видео Varya, которая генерирует ролики в 10 раз быстрее базовой модели и стоит 0,5 цента за…

6 мин
Claude Code: 25 функций агента, пошаговая настройка и примеры для GitLab
ai

Claude Code: 25 функций агента, пошаговая настройка и примеры для GitLab

Claude Code из терминального помощника вырос в агентную систему с 25 задокументированными возможностями, и если вы подключите её к привычному стеку (GitLab,…

6 мин
AI-агенты за 15 минут: как развернуть QwenPaw в Google Colab с кастомными скиллами
ai

AI-агенты за 15 минут: как развернуть QwenPaw в Google Colab с кастомными скиллами

QwenPaw позволяет развернуть полноценного ИИ-агента (программу, которая сама выполняет цепочку действий по вашему запросу) прямо в Google Colab за один сеанс,…

5 мин