У вас есть 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 может читать заметки, отвечать на вопросы на их основе, дополнять их новыми данными. И всё это через одно подключение.
Что нам понадобится
- 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 в свой стек — и выходите из копипастного каменного века. Ваш второй мозг заслуживает связи с первым.