Содержание
В этой статье я расскажу, как усилить процесс разработки с применением ИИ на базе Obsidian и любого ИИ-агента, который умеет работать с MCP. В качестве примера будем использовать Claude.
Статья практическая. Покажу, как организовать базу знаний для проекта, как настроить нужные плагины и как конфигурировать Obsidian с Claude. Решение подойдет как для новых проектов, так и для существующих.
План действий:
Скачаем и настроим Obsidian
Создадим структуру базы знаний
Интегрируем Obsidian с Claude
Разберём, как писать код с ИИ в команде с другими разработчиками
Проблема и решение
Немного о проблемах, с которыми каждый из нас сталкивается при работе с ИИ:
Потеря памяти - при разработке проекта с агентом вы наверняка устали от переполнения контекста. А если начать новый чат, так и вообще приходится заново всё объяснять.
Лимиты на токены быстро исчерпываются даже на небольших задачах.
На просторах интернета вы наверняка уже видели, как многие говорят о волшебной связке ИИ с Obsidian.
Ключевая идея: вместо того чтобы каждый раз задавать контекст вашему агенту и погружать его в каждую задачу, мы даём ИИ базу знаний, к которой агент самостоятельно обращается и дополняет.
Такой подход даёт множество преимуществ:
Можно начинать новый чат на каждую новую задачу, и модель не будет терять контекст.
Расход токенов падает в разы, так как ИИ не анализирует весь код при каждом запросе.
Можно работать с ИИ в команде с другими разработчиками (базу знаний легко интегрировать в отдельный Git-репозиторий)
У вас появляется полноценная документация по проекту
И многое другое. От ускоренного онбординга новых разработчиков до чат-ботов для клиентов (только не отдавайте клиентам бота со всей базой знаний, а то ваш сервис долго не проживёт)
Что такое Obsidian
Для тех забыл или не знаком с Obsidian.
Obsidian - небольшое и удобное приложение для ведения заметок. Если ещё проще - это набор обычных текстовых файлов. В последнее время все активно используют его вместе с ИИ-агентом для создания так называемого "второго мозга". Идея простая: мы даём информацию или вопрос ИИ, а агент использует и наполняет локальную базу знаний для ответа.
Основная польза - это ссылки. Именно благодаря связям между файлами ИИ не читает большой объём кода, а ищет по ссылкам только нужную для конкретной задачи информацию.
Настройка Obsidian
Первым шагом скачиваем Obsidian с официального сайта.

После скачивания открываем и нажимаем на Create.
Агенты будут работать с Obsidian через MCP. Для этого в Obsidian есть отдельный плагин. Открываем настройки, проваливаемся в Community Plugins, нажимаем Browse и ищем плагин Local REST API (прямая ссылка на расширение - obsidian://show-plugin?id=obsidian-local-rest-api). Устанавливаем и включаем его.

Теперь задаём структуру базы знаний. Создавайте древовидную структуру, в каждой папке желательно иметь index-файл с ссылками на дочерние файлы, кратким описанием и, при необходимости, особыми инструкциями для агентов по работе с этим разделом. Адаптируйте её под свои нужды. Можно использовать ИИ для генерации основных разделов и корневых файлов.
Рассмотрим абстрактный пример под разработку интернет-магазина.
. |-- daily-changes | |-- index.md | └-- YYYY-MM-DD.md |-- context | |-- index.md | |-- техническое задание | |-- index.md | |-- термины и сокращения.md | |-- технологические требования.md | |-- описание задачи.md | └-- ... | └-- записи встреч | |-- index.md | |-- kik-off по реализации с командой.md | |-- обсуждение 1-го экрана.md | └-- ... |-- structure | |-- index.md | |-- client | |-- index.md | |-- components | |-- features | |-- ... | |-- server | |-- index.md | |-- database | |-- index.md | |-- ... | |-- endpoints | |-- ... |-- README.md
daily-changes - логирование изменений агентом и разработчиком
В файлеindex.mdопишите агенту что и в каком формате надо логировать. Сделайте пустую таблицу формата ссылка + краткое описание. Поможет агенту помнить что происходило на той неделе.context - полезная информация о проекте
В файлеindex.mdсделайте таблицу ссылка + краткая информация о документе. Также опишите в этом файле характер информации.-
structure - структура кодовой базы + документация к ней
Вindex.mdопишите ключевую техническую информацию. Добавьте ссылки на отдельные сервисы вашего проекта: в текущем примере это папки client и server.Внутри у вас должна получиться полная документация на каждый раздел вашего проекта. Делать это руками не нужно, сделайте пустую заготовку, а позже отдадите эту задачу агенту. В идеале структура файлов должна повторять структуру вашей кодовой базы, но без фанатизма.
Это основной раздел, с которым будет работать агент. Потому информация в нём должна полностью отражать текущее состояние вашего кода.
Следите за размером файлов в этом разделе, и время от времени просите ИИ дробить файлы на части если агент сильно увлечется очередной фичей.
README.md - корневой файл
В нём нужно указать ссылки на корневые файлы всех ваших разделов и дать описание к ним. Агент должен чётко понимать, какую роль выполняет каждый из них. Также опишите особые инструкции по работе с базой знаний.
Пример README.md
# Содержание - [[context/index|context]] - Глобальная информация о проекте. Технические задания, референсы, требования к проекту, и другая полезная информация - [[daily-changes/index|daily-changes]] - Сводки изменений в процессе разработки проекта и изменений в базе знаний - [[structure/index|structure]] - Структура проекта, описывающая все части данной программы/сервиса. Необходимо учитывать при внесении изменений, и актуализировать при каждом изменении. Информация в этой папке должна полностью отвечать на вопросы как и для чего написан каждый отдельный файл в проекте. ## Для агентов В каждом разделе есть index файл с описанием раздела и требованиям к работе с ним. При добавлении артефакта, необходимо следить за его размером, большие файлы нужно выносить в отдельные папки и разбивать на небольшие файлы При внесении изменений в базу знаний нужно задокументировать внесённые изменения в раздел [[daily-changes/index|daily-changes]] (требования к документированию этого раздела внутри).
Обязательно поэкспериментируйте с промптом. От качества ваших инструкций зависит качество работы ИИ, не забывайте это.
Для небольшого проекта можно начать с простой версии:
README.mdcontext.mdstructure.md
Настройка проекта
Переходим к вашему проекту. Заходите в директорию проекта из которой вы планируете работать с Claude или другим агентом.
CLAUDE.md
Создайте в корне проекта файл CLAUDE.md (или AGENTS.md, если используете не Claude). Этот файл будет по умолчанию включаться в ваш запрос к ИИ. С Claude это работает достаточно стабильно, если ваш агент что-то делает не так, попробуйте явно сослаться на этот файл.
Здесь мы напишем основной промпт, который опишет агенту, как работать с вашими запросами.
Пример:
# Роль и задача Ты - профессиональный Software Developer, работающий в рамках одного конкретного проекта. Твоя задача - на основе базы знаний Obsidian (доступно по MCP) и полученной команды внести требуемые изменения в кодовую базу, и, при необходимости, в саму базу знаний. ## Как отвечать на задачу пользователя При первом получении запроса изучи README файл в Obsidian. Найди и прочитай информацию, которая поможет тебе в решении задачи. ### Пример реализации технической задачи `Корневая архитектура базы знаний (по разделам, предположим, что в каждом разделе глубокая древовидная структура со всей необходимой информацией) (может отличаться в проекте, актуальная структура находится в README Obsidian):` - Контекст (данные о проекте, технические задания, бизнес-требования, записи встреч, просьбы заказчика) - Стек (базовые технические требования, общий/клиентский/серверный стек технологий) - Структура (техническая документация о всём проекте, структурно повторяет технический проект, описывает его функционал и объясняет почему функционал реализован тем или иным образом) `Запрос пользователя:` Создай форму авторизации в приложении и напиши запрос на сервер. `Твои действия (пример):` 1. Зашёл в Obsidian, увидел что в базе знаний есть информация о стеке, структуре проекта, и раздел с контекстной информацией 2. Прочитал информацию о стеке клиента и о стеке сервера; 3. В разделе контекста находишь информацию о требованиях к авторизации из технического задания 4. В базе знаний из раздела структуры находишь конкретное места в клиенте где необходимо внести изменения, а так же находишь реализованный механизм на сервере. 5. Вносишь изменения в кодовую базу на клиенте, основываясь на полученной информации. 6. Дополняешь в Obsidian раздел структуры, так как ты внес изменения и добавил новый функционал. 7. Задача выполнена (если нет дополнительных требований от базы знаний, или от пользователя) ### Пример реализации задачи связанной с базой знаний `Корневая архитектура базы знаний (по разделам, предположим, что в каждом разделе глубокая древовидная структура со всей необходимой информацией):` - Данные (данные о проекте, технические задания, бизнес-требования, записи встреч, просьбы заказчика) - разделен на сырые данные (docx файлы, аудиозаписи) и на *parsed*-данные (md файлы с древовидной структурой) - Список изменений (логирование вносимых изменений в базу знаний, ежедневная разбивка и отдельно разбивка по версиям) `Требования к работе с базой знаний:` Все файлы хранятся в древовидной структуре. От корневого файлы должна быть возможность по ссылкам попасть в любой дочерний файл. `Запрос пользователя:` Прочитай docx файл ТЗ и преобразуй его в новый модуль базы знаний в контексте. `Твои действия: ` 1. Прочитал README Obsidian 2. Узнал что в базе знаний есть раздел `Данные`, где предположительно должно быть ТЗ. Там две ссылки, на разделы parsed и на раздел raw. Файл ТЗ предположительно должен быть в raw. 3. По ссылкам в данных нашёл техническое задание в raw данных. 4. Начинаешь обработку задания и преобразование его в удобный, древовидный формат чтения в базе знаний 5. Создаешь папку 'ТЗ' в parsed, и index.md файл в ней 6. В новом index.md файле описываешь разделы ТЗ и ссылки на дочерние документы. Создаешь дочерние папки и файлы если требуется 7. В parsed/index.md добавляешь ссылку на корневой раздел ТЗ (так как это написано в требованиях базы знаний) 8. Задача выполнена (если нет дополнительных требований от базы знаний, или от пользователя)
Рекомендую указывать примеры запрос/ответ чтобы добиться наилучшего результата. Промпт-инженеры - ваш выход.
Этот файл можно коммитить в ваш проект, если не боитесь общественного осуждения.
Настройка .mcp.json
Ваш агент будет общаться с базой знаний через MCP благодаря установленному в Obsidian плагину.
Ниже процесс настройки MCP для Claude, для других агентов изучите их техническую документацию.
Для этого, в корне проекта создайте файл .mcp.json
{ "mcpServers": { "obsidian": { "command": "npx", "args": ["-y", "obsidian-semantic-mcp"] } } }
PS. на момент написания статьи obsidian-semantic-mcp находится в архиве и считается deprecated. Разработчики рекомендуют переходить на obsidian-mcp-plugin (GitHub) - но он пока в бета-версии, рекомендую открыть ссылку и проверить, не вышла ли стабильная версия.
Теперь вернёмся в Obsidian
В настройках проваливаемся в Community plugins
Ещё раз проверяем что плагин Local REST API включен
Нажимаем на настройки плагина
Копируем API-ключ и хост (обычно это https://127.0.0.1:27124/)
Скачиваем и устанавливаем сертификат либо включаем Non-encrypted HTTP Server и копируем соответствующий адрес

Теперь надо настроить окружение. Тут два варианта:
Создать/дополнить ваш файл
.envВписать окружение прямо в
.mcp.json(Obsidian у нас развёрнут локально, потому раскрыть API-ключ в целом не страшно)
Первый вариант через .env в корне проекта
OBSIDIAN_API_KEY=Скопированный ключ OBSIDIAN_API_URL=Скопированный хост OBSIDIAN_VAULT_NAME=Название вашего хранилища obsidian, которое вы задавали при его создании
Второй вариант, прямо в .mcp.json
{ "mcpServers": { "obsidian": { "command": "npx", "args": ["-y", "obsidian-semantic-mcp"], "env": { "OBSIDIAN_API_KEY": "Скопированный ключ", "OBSIDIAN_API_URL": "Скопированный хост", "OBSIDIAN_VAULT_NAME": "Название вашего хранилища Obsidian, которое вы задавали при его создании" } } } }
Если переменные окружения вынесены в .env, файл .mcp.json можно коммитить. В противном случае - лучше не надо, так как у OBSIDIAN_API_KEY слишком низкий шанс совпасть с ключом вашего коллеги.
Настройка Claude в проекте (опционально)
Для удобства, можно сразу в корне проекта сделать папку .claude и записать в неё settings.json. Не нужно будет каждый раз подтверждать операции с Obsidian и указывать MCP.
{ "permissions": { "allow": [ "mcp__obsidian__vault", "mcp__obsidian__edit", "mcp__obsidian__view" ] }, "enabledMcpjsonServers": [ "obsidian" ] }
Файл можно коммитить, и лучше сразу расширить ваш .gitignore
.claude !.claude/settings.json
Установка Claude
Если вы ещё не скачали Claude, переходите на официальный сайт.
Для VS Code у них есть неплохое расширение, рекомендую его установить. В остальных случаях скачиваем утилиту для терминала.
Проверяем настройки
Перезапустите VS Code чтобы Claude увидел свои настройки.
В новом чате напишите команду /mcp

Поздравляю, вы всё правильно настроили.
Для финального теста уточните в чате, видит ли агент ваш Obsidian. Если всё хорошо, то начните с формирования базы знаний.
Как работать ещё эффективнее?
Рекомендую давать агенту данные небольшими объемами и давать подробные инструкции по ведению базы знаний (особенно в первое время).
Для нового проекта - загружайте в модель информацию по-этапно, лучше начинать от самой общей и заканчивать более конкретной.
Для существующего проекта - постарайтесь самостоятельно дать как можно больше вводных в чате и кусочками задокументировать весь проект. Проверяйте и поправляйте модель сразу, не ждите пока она опишет всё неверно.
А ещё:
Проверяйте на каждом этапе что именно пишет модель в базу знаний. Плохие данные = плохие ответы. Не превращайте базу знаний в мусорку мыслей ИИ.
Помните, что база знаний будет приносить пользу в первую очередь вам.
Формируйте базу знаний как документацию по проекту, не делайте упор на работу с ИИ.
Пишите подробные промпты. В каждом разделе базы знаний можно в самом низу написать заголовок Для агентов и дать более конкретные инструкции.
Старайтесь всегда давать модели подробные инструкции.
Если вы пишите часть кода самостоятельно, дайте агенту задачу проанализировать ваши действия и актуализировать базу знаний.
Работа в команде
Данный подход хорошо укладывается в командную разработку. Но закладывать фундамент базы знаний лучше одному разработчику.
Базу знаний Obsidian добавьте в отдельный Git-репозиторий, не забывайте обновляться и грамотно решать конфликты версий.
Частые ошибки
ИИ не вносит необходимые изменения? Вероятно, нужно поработать с промптами, попробуйте более подробно описать работу с частью, в которой возникают проблемы. При грамотных инструкциях внесение изменений будет работать стабильно, по крайней мере мне удалось этого достичь в крупном монорепозитории с тремя приложениями и пятью пакетами.
Не подключается MCP? Проверьте, что Obsidian и плагин Local REST API запущены, откройте хост в браузере, в ответе должен быть
status: ok. Нажмите кнопку Reconnect или выполните командуnpx -y obsidian-semantic-mcp(не забудьте добавить необходимые переменные окружения, если вы не создавали файл.env). Лог ошибки поможет понять в чём дело.ИИ не видит инструкций? Явно укажите на ваш файл
CLAUDE.md
Всегда ли это нужно?
Такой подход даёт максимум преимуществ в крупных и средних проектах. Если вы делаете небольшой лендинг, то базового контекстного окна вам будет достаточно. Но если проект разросся и вы уже сами иногда забываете, что и где лежит, это решение вас точно спасёт.
Комментарии (13)

RooTooZ
30.04.2026 21:17А почему просто не дать клоду доступ к md файлам на прямую? Зачем лишняя прослойка в виде mcp?

maksim_bashkardinov Автор
30.04.2026 21:17Чуть выше ответил. Если коротко: вам не нужен mcp, если ваш проект ограничивается одной папкой, в противном случае - это удобнее, чем создавать разрозненные файлы документации в каждой части большого проекта

proDan0
30.04.2026 21:17Да незачем походу. Единственный плюс который можно придумать - это +- удобный кросплатформенный клиент для md файлов. А так между папочками агенты и сами ходить умеют.
(у себя пользуем Azure инфраструктуру и весь контекст лежит в AzureDevops wiki. Она как раз md.)

Evgvfv
30.04.2026 21:17Очень много слышал тезисов, что такие вещи помогают экономить на расходы токенов. Но не понимаю самой механики экономии. За счет чего она достигается ? По сути агенту сразу в промпт каждый мы грузим инструкцию и явно не контролируем что он будет забирать себк в контекст. Вот если мы явно скажем действуй в рамках такого домена, он не будет лезть в сторону, а в обсидиан (в данном примере) нам необходимо контролировать связи между документами, чтобы делая уловную корзину из за кривой связи агент не начал выкачивать в контекст то как устроены каталоги
Статья хорошая, я как раз ищу сейчас как грамотно использовать обсидиан в жизни, но хотелось бы больше понять механику экономии, илм может подкрепление статьи какими то исследованиями в этой области, а то слово "экономия" выглядит просто как кликбейт)

maksim_bashkardinov Автор
30.04.2026 21:17Экономия достигается за счет структурирования файлов в Obsidian. Для этого нужно в промптах к каждому разделу вики грамотно указать каким образом с ним работать, а так же время от времени просить модель разбивать крупные файлы.
Таким образом модель будет изучать проект по кусочкам, отбирая только необходимый для задачи контекст.
Модель сама будет формировать грамотную структуру Obsidian при хорошем промпте, но надо не забывать периодически контролировать её работу
aytugan
Интересно, спасибо за детальную инструкцию.
Вопрос - а в чем преимущество mcp, по сравнению с прямым доступом агента к файлами?
cemick
Скорее всего для повышения качества и минимизации потребления токенов. Но есть cli https://obsidian.md/cli и даже eval и доступ js объектам есть доступ.
maksim_bashkardinov Автор
MCP это протокол разработанный специально для ИИ-моделей, он упрощает взаимодействие с данными и может снабжать каждый запрос дополнительными инструкциями
Finesse
Тоже интересно, почему бы не хранить этот набор md-файлов не отдельно в Obsidian, а прямо в репозитории.
Насколько я понимаю, Claude не читает весь код при каждом запросе. Он читает отдельные файлы, которые необходимы для контекста конкретного запроса. Соответственно, чтение файлов напрямую или из Obsidian MPC различается только протоколом. Поправьте меня, если я ошибаюсь.
angry_stitch
Поддерживаю. Мало того подключение связки obsidian -mcp и локальными ключами api надо каждому участники подпрыгивать, раздувается зоопарк инструментов, к эффект тот же - текстовые файлике а гите
maksim_bashkardinov Автор
Если проект ограничивается одной папкой, то это действительно не нужно. Но если проект больше, разработчиков несколько, то этот вариант удобнее, так как у каждого будет одна общая база знаний и одинаковый набор промптов.
Это позволит не плодить инструкции и не воссоздавать контекст в каждом отдельном модуле вашего сервиса.
В целом и в этом случае можно создать отдельную папку и ссылаться на неё, но Obsidian в этом случае это просто удобный инструмент, который настраивается один раз и работает одинаково в каждой части проекта.
Imaginarium
Но обязательно нужно всё очень тщательно оттестировать, потому что mcp сам по себе требует довольно много токенов от модели, насколько я понимаю