Сервер Obsidian MCP
Сервер Model Context Protocol, разработанный для взаимодействия LLM с хранилищами Obsidian. Созданный с помощью TypeScript и обладающий защищенной связью API, эффективными файловыми операциями и комплексными возможностями поиска, он позволяет помощникам ИИ беспрепятственно управлять базами знаний с помощью чистого, гибкого интерфейса инструментов.
Протокол контекста модели (MCP) позволяет моделям ИИ взаимодействовать с внешними инструментами и ресурсами через стандартизированный интерфейс.
Требуется плагин Local REST API в Obsidian.
📋 Содержание
Возможности | Установка | Конфигурация | Инструменты | Ресурсы | Структура проекта | Участие | Публикация | Лицензия
Related MCP server: Obsidian iCloud MCP
✨ Особенности
Файловые операции : атомарные операции с файлами/каталогами с проверкой, мониторингом ресурсов и обработкой ошибок.
Поисковая система : полнотекстовый поиск с настраиваемым контекстом, расширенными запросами JsonLogic, шаблонами glob и поддержкой полей frontmatter.
Управление свойствами : анализ содержимого YAML, интеллектуальное слияние, автоматические временные метки и поддержка настраиваемых полей.
Безопасность и производительность : аутентификация по ключу API, ограничение скорости, параметры SSL, мониторинг ресурсов и плавное завершение работы.
🚀 Установка
Примечание: требуется Node.js и включенный плагин Local REST API в Obsidian.
Вариант 1: Клонировать и собрать (для разработки или прямого использования)
Включите плагин Local REST API в Obsidian.
Клонируйте репозиторий, установите зависимости и соберите проект:
git clone git@github.com:cyanheads/obsidian-mcp-server.git cd obsidian-mcp-server npm install npm run buildНастройте сервер с помощью переменных среды (см. раздел «Конфигурация» ниже).
Настройте параметры клиента MCP (например,
claude_desktop_config.jsonилиcline_mcp_settings.json), чтобы включить сервер. Подробности см. в разделе «Конфигурация».
Вариант 2: Установка через npm (как зависимость или глобально)
Включите плагин Local REST API в Obsidian.
Установите пакет с помощью npm:
# Install locally (e.g., within another project) npm install obsidian-mcp-server # Or install globally npm install -g obsidian-mcp-serverНастройте параметры клиента MCP (например,
claude_desktop_config.jsonилиcline_mcp_settings.json), чтобы включить сервер. Подробности см. в разделе «Конфигурация».
⚙️ Конфигурация
Добавьте в настройки клиента MCP (например, claude_desktop_config.json или cline_mcp_settings.json ):
Переменные среды:
OBSIDIAN_API_KEY(обязательно): ваш ключ API из настроек плагина локального REST API Obsidian.VERIFY_SSL(по умолчанию:false): включить проверку SSL. Установите значениеfalseдля самоподписанных сертификатов или локального использования.OBSIDIAN_PROTOCOL(по умолчанию:"https"): протокол (httpилиhttps).OBSIDIAN_HOST(по умолчанию:"127.0.0.1"): адрес хоста.OBSIDIAN_PORT(по умолчанию:27124): номер порта.REQUEST_TIMEOUT(по умолчанию:5000): время ожидания запроса (мс).MAX_CONTENT_LENGTH(по умолчанию:52428800[50 МБ]): максимальная длина содержимого ответа (байты).MAX_BODY_LENGTH(по умолчанию:52428800[50 МБ]): максимальная длина тела запроса (байты).RATE_LIMIT_WINDOW_MS(По умолчанию:900000[15 мин]): Окно ограничения скорости (мс).RATE_LIMIT_MAX_REQUESTS(по умолчанию:200): Максимальное количество запросов на окно.TOOL_TIMEOUT_MS(По умолчанию:60000[1 мин]): Время ожидания выполнения инструмента (мс).
🛠️ Инструменты
Инструмент | Описание | Параметры |
obsidian_list_files_in_vault | Перечисляет все файлы и каталоги в корне вашего хранилища Obsidian. Возвращает иерархическую структуру, детализирующую файлы, папки и их типы. | Никто |
obsidian_list_files_in_dir | Перечисляет файлы и каталоги в определенной папке в вашем хранилище Obsidian. Возвращает иерархическую структуру. Примечание: пустые каталоги могут не быть включены в результаты. Полезно для изучения организации хранилища. |
: Путь к списку файлов (относительно корня хранилища). Обратите внимание, что пустые каталоги не будут возвращены. |
obsidian_get_file_contents | Извлекает полное содержимое указанного файла в вашем хранилище Obsidian. Поддерживает различные читаемые форматы файлов. |
: Путь к соответствующему файлу (относительно корня вашего хранилища). |
obsidian_append_content | Добавляет предоставленное содержимое в конец указанного файла в хранилище. Если файл не существует, он будет создан. |
: Путь к файлу (относительно корня хранилища)
: Содержимое для добавления к файлу |
obsidian_update_content | Перезаписывает все содержимое указанного файла в хранилище предоставленным содержимым. Если файл не существует, он будет создан. |
: Путь к файлу (относительно корня хранилища)
: Новое, полное содержимое файла (перезаписывает существующее содержимое). |
obsidian_find_in_file | Выполняет полнотекстовый поиск по всем файлам в вашем хранилище Obsidian. Возвращает соответствующие файлы с контекстом вокруг каждого совпадения. Если совпадает более 5 файлов, возвращаются только имена файлов и количество совпадений, чтобы избежать избыточного вывода. Идеально подходит для поиска определенного текста, тегов или шаблонов. |
: Текстовый шаблон для поиска. Может включать теги, ключевые слова или фразы.
: Количество символов, окружающих каждое совпадение, для предоставления контекста (по умолчанию: 10). |
obsidian_complex_search | Находит файлы на основе шаблонов путей с использованием запросов JsonLogic. В первую очередь поддерживает
для сопоставления с шаблоном (например, '*.md') и
для доступа к переменной 'path'. Примечание: для поиска по содержимому (полный текст, теги внутри содержимого, даты) используйте
. |
: Объект запроса JsonLogic, нацеленный на пути к файлам. Пример:
соответствует всем файлам markdown. |
obsidian_get_tags | Извлекает все теги, определенные в YAML frontmatter файлов markdown в вашем хранилище Obsidian, вместе с их счетчиками использования и соответствующими путями к файлам. При желании можно ограничить поиск определенной папкой. |
: Необязательный путь к папке (относительно корня хранилища) для ограничения поиска по тегам. |
obsidian_get_properties | Извлекает свойства (например, заголовок, теги, статус) из YAML frontmatter указанной заметки Obsidian. Возвращает все определенные свойства, включая любые пользовательские поля. |
: Путь к файлу заметки (относительно корня хранилища) |
obsidian_update_properties | Обновляет свойства в YAML frontmatter указанной заметки Obsidian. По умолчанию свойства массива (такие как теги, тип, статус) объединяются; используйте опцию «replace», чтобы перезаписать их. Обрабатывает пользовательские поля и автоматически управляет временными метками. См. схему для поддерживаемых стандартных полей (название, автор, теги, статус и т. д.). |
: Путь к файлу заметки (относительно корня хранилища)
: Свойства для обновления
: Если true, свойства массива (например, теги, статус) будут полностью заменены предоставленными значениями вместо объединения с существующими значениями. По умолчанию false (объединение). |
🔗 Ресурсы
Ресурс | Описание | Возвраты |
обсидиан://теги | Список всех тегов, используемых в хранилище Obsidian, с указанием количества их использований. | приложение/json |
📁 Структура проекта
Проект имеет модульную архитектуру с четким разделением задач:
👥 Вклад
Форк репозитория
Создать ветку функций
Отправить запрос на извлечение
Для сообщений об ошибках и функциях создайте запрос по адресу https://github.com/cyanheads/obsidian-mcp-server/issues .
📄 Лицензия
Лицензия Apache 2.0