rps321321/obsidian-mcp-pro

rps321321/obsidian-mcp-pro

от rps321321
Полнофункциональный MCP сервер для Obsidian с 41 инструментом: чтение, запись, поиск, теги, ссылки, canvas, семантический поиск и анализ графов. Дает AI-ассистентам глубокий доступ к хранилищу заметок через протокол MCP.

obsidian-mcp-pro: AI agents for your Obsidian vault

obsidian-mcp-pro

The most feature-complete MCP server for Obsidian vaults.

⭐ Please star us on GitHub, it helps us reach more users!

Patreon Ko-fi

💙 Support this project. obsidian-mcp-pro is free and open-source. If it saves you time, consider becoming a patron for ongoing support, or tipping on Ko-fi for a one-time thanks. Patrons get release notes early, priority on bug reports, and (optionally) their name in the README.

obsidian-mcp-pro MCP server

npm version npm downloads GitHub stars License: MIT Node >= 24 Tests Tool Quality

Give AI assistants deep, structured access to your Obsidian knowledge base. Read, write, search, tag, analyze links, traverse graphs, manipulate canvases, query Bases, edit by heading or block reference, run semantic search, and pull binary attachments. All through the Model Context Protocol.

41 tools, 5 prompts, 3 resources. Every tool ships with rich descriptions, typed schemas, human-readable titles, and safety annotations (readOnlyHint, destructiveHint, idempotentHint) so your agent picks the right tool, passes the right arguments, and handles results correctly. The original 23 tools earned an average 4.40/5 score and all-A grades on Glama's quality index; the 18 newer ones follow the same authoring conventions documented in docs/TOOL_AUTHORING.md.

Часто задаваемые вопросы

Инструменты были проиндексированы:
add_canvas_edge

Создает направленное ребро, соединяющее два существующих узла на холсте. Оба узла — fromNode и toNode — уже должны быть на холсте (используй read_canvas, чтобы получить список ID узлов, или запомни ID, который вернул add_canvas_node). Опциональные fromSide/toSide задают, к какой стороне каждого узла привязывается ребро. Возвращает сгенерированный UUID ребра.

Добавить окантовку холста

Параметры
  • canvasPathstringобязательный

    Относительный путь от корня хранилища до целевого файла .canvas

  • fromNodestringобязательный

    UUID исходного (базового) узла - должен уже существовать на холсте

  • fromSideenum

    Сторона исходного узла, из которой выходит ребро (по умолчанию: автоматически выбирается Obsidian).

  • labelstring

    Необязательная текстовая метка, отображаемая на краю.

  • toNodestringобязательный

    UUID целевого узла - должен уже существовать на холсте

  • toSideenum

    Сторона целевого узла, к которой подходит ребро (по умолчанию: выбирается автоматически в Obsidian)

add_canvas_node

Добавляет новый узел в холст Obsidian и сохраняет обновлённый файл. Поддерживает четыре типа узлов: 'text' (блок Markdown), 'file' (встроенная ссылка на заметку в хранилище), 'link' (внешняя ссылка) и 'group' (контейнер с подписью). Возвращает сгенерированный UUID узла, необходимый для соединения узлов через add_canvas_edge. Если не указаны ни x, ни y, новый узел автоматически размещается в позиции (50 * количество_существующих, 50 * количество_существующих), чтобы избежать наложения узлов с позицией по умолчанию в начале координат. Явное указание x или y всегда отменяет это смещение.

Добавить узел холста

Параметры
  • canvasPathstringобязательный

    Относительный путь от корня хранилища до целевого файла .canvas

  • colorstring

    Цвет: от «1» до «6» для предустановленной палитры Obsidian (красный/оранжевый/жёлтый/зелёный/голубой/фиолетовый) или hex-код, например «#ff5555»

  • contentstringобязательный

    Интерпретация зависит от типа: текстовая часть для 'text', относительный путь к заметке для 'file', URL для 'link', отображаемая метка для 'group'.

  • heightinteger

    Высота узла в пикселях (по умолчанию: 60, максимум: 10000)

  • typeenumобязательный

    Тип узла: 'text' = блок Markdown, 'file' = ссылка на заметку в хранилище, 'link' = внешний URL, 'group' = контейнер с меткой.

  • widthinteger

    Ширина узла в пикселях (по умолчанию: 250, максимум: 10000)

  • xnumber

    Координата X на холсте. Если она не указана (и Y тоже не указан), узел автоматически разносится, чтобы избежать скопления у начала координат; явно заданное значение всегда имеет приоритет.

  • ynumber

    Y-координата на холсте. Если она не указана (и x тоже не указан), узел автоматически располагается в шахматном порядке, чтобы избежать нагромождения в начале координат; явное значение всегда имеет приоритет.

append_to_note

Добавляет текст в конец существующей заметки, не меняя предыдущее содержимое. По умолчанию вставляет перенос строки в начале, если файл ещё не заканчивается на него, чтобы добавляемый контент шёл с новой строки. Используйте для логов, текущих списков или добавления новых разделов. Завершается ошибкой, если заметка не существует — сначала создайте новую заметку через create_note.

Добавить к заметке

Параметры
  • contentstringобязательный

    Текст Markdown для добавления в конец заметки. Начальный перенос строки автоматически вставляется, если файл уже не заканчивается на него.

  • pathstringобязательный

    Относительный путь от корня хранилища до целевой заметки (например, 'journal/2026-04-15.md'). Расширение необязательно.

create_daily_note

Создаёт ежедневную заметку для сегодняшнего дня (или указанной даты) в настроенной папке для ежедневных заметок хранилища, используя настроенный формат имени файла. При необходимости можно заполнить заметку из файла шаблона с подстановкой плейсхолдеров в стиле Obsidian: {{date}} и {{title}} → отформатированная дата; {{time}} → местное время в формате HH:mm; {{date:FORMAT}} / {{time:FORMAT}} → пользовательский формат в стиле moment. Завершается ошибкой, если ежедневная заметка уже существует.

Создать ежедневную заметку

Параметры
  • contentstring

    Начальное содержимое в формате Markdown для ежедневной заметки. Игнорируется, если указан templatePath.

  • datestring

    Целевая дата в формате ГГГГ-ММ-ДД (по умолчанию — сегодня). Определяет имя файла и подстановку {{date}}.

  • templatePathstring

    Относительный путь к заметке-шаблону. Его содержимое копируется в новую ежедневную заметку с заменой заполнителей в стиле Obsidian: {{date}}/{{title}} → форматированная дата, {{time}} → локальное время в формате ЧЧ:мм, а {{date:FORMAT}}/{{time:FORMAT}} → пользовательский формат в стиле moment.

create_note

Создаёт новую заметку в формате Markdown по указанному пути с содержимым тела и опциональным YAML-заголовком. Завершается ошибкой (не перезаписывает), если заметка уже существует по этому пути — для существующих заметок используйте append_to_note, prepend_to_note или update_frontmatter. Отсутствующие директории создаются автоматически, а расширение .md добавляется, если опущено.

Создать заметку

Параметры
  • contentstringобязательный

    Основное содержимое заметки в формате Markdown (отображается ниже блока frontmatter, если он есть)

  • frontmatterstring

    Строка JSON-объекта с парами ключ-значение frontmatter (например, '{"status":"draft","tags":["idea"]}'). Отображается как YAML в верхней части заметки.

  • pathstringобязательный

    Относительный путь от корня хранилища, например 'folder/note.md' или 'note' (.md добавляется автоматически).

delete_note

Удаляет заметку. По умолчанию файл перемещается в папку .trash хранилища (можно восстановить внутри Obsidian); передайте permanent=true, чтобы сразу удалить его с диска. Если permanent=true, вы также можете передать removeReferences=true, чтобы удалить вики-ссылки и markdown-ссылки на удалённый файл по всему хранилищу (вставки удаляются полностью; обычные ссылки заменяются на их видимый текст). Ссылки никогда не перезаписываются при перемещении файла в .trash, так как удалённые файлы можно восстановить.

Удалить заметку

Параметры
  • confirmboolean

    Предохранитель: должен быть установлен в true, когда permanent=true, чтобы подтвердить, что вызывающий код намерен выполнить необратимое удаление. Игнорируется, когда permanent=false (удаление в корзину обратимо). Если permanent=true и confirm не равен true, инструмент возвращает ошибку без удаления.

  • pathstringобязательный

    Относительный путь от корня хранилища до удаляемой заметки (например, 'archive/old.md'). Расширение необязательно.

  • permanentboolean

    Если true, файл удаляется навсегда; если false (по умолчанию), он перемещается в папку .trash, чтобы его можно было восстановить.

  • removeReferencesboolean

    Если значение истинно (и permanent=true), удаляет вики-ссылки и markdown-ссылки, указывающие на удалённый файл, по всему хранилищу. Встроенные объекты удаляются полностью; обычные ссылки заменяются на их отображаемый текст (псевдоним, если он есть, иначе — имя удалённого файла без расширения). Не учитывается, если permanent=false. По умолчанию — false: включайте явно, потому что изменение необратимо.

edit_blockидемпотентный

Заменяет содержимое блока, помеченного ^id. Конечная метка ^id сохраняется в последней строке нового содержимого, чтобы существующие включения (![[note#^id]]) продолжали работать. Используйте для обновления одного абзаца или элемента списка, на которые ссылаются другие заметки.

Редактировать блок

Параметры
  • blockstringобязательный

    Идентификатор блока с ведущим символом ^ или без него (например, myid или ^myid).

  • newContentstringобязательный

    Заменяющее содержимое. Якорь ^id добавляется автоматически.

  • pathstringобязательный

    Путь к заметке относительно Vault.

find_broken_linksтолько чтениеидемпотентный

Проверяет заметки на наличие вики-ссылок ([[цель]]), цель которых не ведёт к существующей заметке в хранилище. Показывает отчёт с группировкой по источнику: для каждой заметки указан текст битой ссылки и номера строк, а также общее количество. Используйте после переименования, перемещения или удаления заметок, чтобы выявить оборванные ссылки. При разрешении ссылок проверяется всё хранилище, даже если анализ ограничен одной папкой, поэтому сообщается только о ссылках, которые действительно не удаётся разрешить.

Найти битые ссылки

Параметры
  • folderstring

    Ограничьте сканирование заметками в этой папке (при разрешении по-прежнему используется всё хранилище). Оставьте пустым, чтобы сканировать все заметки.

  • maxResultsinteger

    Максимальное количество записей о битых ссылках для отображения (1-1000, по умолчанию: 200). Сгруппировано по примечанию источника. Оставшиеся совпадения обобщаются.

find_orphansтолько чтениеидемпотентный

Определяет изолированные заметки в графе связей хранилища, разделённые на три группы: полностью изолированные (нет ни входящих, ни исходящих ссылок), без обратных ссылок (на них никто не ссылается) и без исходящих ссылок (они ни на кого не ссылаются). Возвращает количество заметок по каждой категории и примеры для каждой, ограничиваясь параметром maxResults. Помогает выявить заброшенные заметки, недостающие страницы-хабы или кандидаты на архивирование.

Найти осиротевшие заметки

Параметры
  • includeOutlinksCheckboolean

    Если значение true (по умолчанию), также сообщается о заметках без исходящих ссылок; если false, сообщается только о полностью изолированных заметках и заметках без обратных ссылок.

  • maxResultsinteger

    Максимальное общее количество путей заметок для вывода по всем категориям (1-1000, по умолчанию: 200). Полные значения всегда сообщаются независимо от этого.

find_similar_notesтолько чтениеидемпотентный

По заданному пути заметки верните K наиболее семантически похожих заметок из индекса (исключая исходную заметку). Использует существующие эмбеддинги чанков исходной заметки и привязывает исходный запрос к чанкам, соответствующим начальной теме заметки, без вызова API к провайдеру эмбеддингов, поэтому это быстро и бесплатно. Сначала запустите index_vault, чтобы заполнить эмбеддинги для исходной заметки и кандидатов.

Найти похожие заметки

Параметры
  • limitinteger

    Максимальное количество похожих заметок для возврата (1-100, по умолчанию: 10).

  • pathstringобязательный

    Путь к исходной заметке относительно хранилища, например 'projects/atlas.md'.

find_unused_attachmentsтолько чтениеидемпотентный

Находит вложения, на которые не ссылается ни одна заметка — ни через вставки ![[file]], ни через markdown-ссылки [text](file). Полезно для гигиены хранилища перед архивацией или синхронизацией. Объединяйте вывод с операциями delete из вашей оболочки, так как этот инструмент намеренно не удаляет файлы.

Найти неиспользуемые вложения

Параметры
  • includeBytesboolean

    Если значение true, также выполните stat для каждого неиспользуемого вложения и сообщите общий объем reclaimable байт.

  • limitinteger

    Максимальное количество возвращаемых путей неиспользуемых вложений (1-10000, по умолчанию: 200). Общее количество всё равно сообщается.

get_attachmentтолько чтениеидемпотентный

Читает файл вложения и возвращает его байты клиенту. Изображения возвращаются как блоки содержимого image (отображаются внутри строки Claude / Cursor), аудио — как блоки audio, всё остальное — как блок resource в base64 с URI vault://. По умолчанию ограничение 5 МБ, чтобы не тратить токены впустую; можно увеличить через maxBytes до 50 МБ. Вложение должно находиться внутри хранилища: заметки markdown (.md), канвасы (.canvas) и Bases (.base) намеренно отклоняются, чтобы вызывающие случайно не вытянули текстовые файлы через этот бинарный путь; используйте get_note / read_canvas / read_base.

Получить вложение

Параметры
  • maxBytesinteger

    Максимальный размер файла для загрузки в байтах (по умолчанию: 5,242,880, жёсткий предел: 52,428,800).

  • pathstringобязательный

    Относительный путь к вложению в Vault, например 'assets/diagram.png'.

get_backlinksтолько чтениеидемпотентный

Выводит список всех заметок, содержащих вики-ссылку на указанную заметку. Каждый результат включает путь к исходной заметке, номер строки и окружающий текст строки для контекста. Используйте, чтобы понять, какие заметки ссылаются на тему, или оценить последствия переименования или удаления заметки. Принимает пути с расширением .md и без него; если точное совпадение не найдено, выполняет поиск по базовому имени.

Получить обратные ссылки

Параметры
  • pathstringобязательный

    Путь к целевой заметке относительно корня хранилища (например, 'folder/note.md' или 'note'). Расширение необязательно.

get_daily_noteтолько чтениеидемпотентный

Читает ежедневную заметку за сегодня или за указанную дату, определяя её по настроенным в хранилище папке и формату имени файла. Возвращает путь к заметке, разобранный frontmatter (как блок с заголовками) и тело. Выдаёт ошибку, если ежедневной заметки на эту дату нет — используй create_daily_note, чтобы её создать.

Получить ежедневную заметку

Параметры
  • datestring

    Целевая дата в формате ГГГГ-ММ-ДД (по умолчанию используется сегодняшняя локальная дата)

get_graph_neighborsтолько чтениеидемпотентный

Обходит граф вики-ссылок наружу от начальной заметки и возвращает все заметки, достижимые в пределах N переходов, сгруппированные по уровню глубины, с визуализацией в виде вложенного дерева. Каждый сосед помечается расстоянием в переходах и направлением (inbound — достигнут через обратную ссылку, outbound — достигнут через прямую ссылку). Используется для исследования тематического кластера, построения карты локального окружения заметки или поиска связанных заметок за пределами прямых ссылок. Принимает пути с расширением .md и без него.

Получить соседей графа

Параметры
  • depthinteger

    Максимальное число переходов по ссылкам от начальной заметки (1-3, по умолчанию: 1). Более высокие значения исследуют экспоненциально больше заметок.

  • directionenum

    Направление обхода: 'outbound' следует по исходящим ссылкам, на которые указывает начальная заметка, 'inbound' следует по обратным ссылкам, указывающим на начальную заметку, 'both' следует в любом направлении (по умолчанию)

  • maxResultsinteger

    Максимальное количество соседних заметок для возврата (1-1000, по умолчанию: 200). При достижении этого предела обход прекращается досрочно, и добавляется уведомление об усечении.

  • pathstringобязательный

    Начальный путь заметки относительно корня хранилища (например, 'projects/alpha.md'). Расширение необязательно; в этом случае выполняется сопоставление по базовому имени.

get_noteтолько чтениеидемпотентный

Читает заметку целиком или фрагментом. Без опций фрагмента возвращает разобранный frontmatter (в виде помеченного заголовка), плоский список inline-тегов # и тело заметки. С опцией section возвращает только тело под этим заголовком (поддерживается путь вида 'Tasks/Today'). С опцией block возвращает абзац или блок с тегом ^id. С опцией lines возвращает диапазон строк включительно с индексацией от 1. Режимы фрагмента пропускают заголовок frontmatter/тегов и возвращают сырой текст - используйте их, чтобы экономить токены на длинных заметках.

Get Note

Параметры
  • blockstring

    Идентификатор блока (без ведущего символа ^). Возвращает только абзац или блок, помеченный этим идентификатором.

  • linesstring

    Диапазон строк, начиная с 1 и включительно (например, '10-25' или '42'). Возвращает только эти строки.

  • pathstringобязательный

    Относительный путь от корня хранилища до заметки (например, 'folder/note.md'). Расширение обязательно.

  • sectionstring

    Путь к заголовку (например, 'Tasks' или 'Project A/Status'). Возвращает только содержимое этого раздела.

get_outlinksтолько чтениеидемпотентный

Выводит список всех исходящих wikilink из заметки, разбивая их на валидные ссылки (ведут на существующую заметку), битые ссылки (цель не найдена) и файловые вставки (![[...]]). Возвращает исходный текст ссылки и разрешённые пути. Используйте, чтобы проверить ссылки заметки, найти битые ссылки или отследить downstream-зависимости.

Получить исходящие ссылки

Параметры
  • pathstringобязательный

    Путь к исходной заметке относительно корня хранилища (например, 'folder/note.md'). Расширение необязательно.

get_recent_notesтолько чтениеидемпотентный

Выводит заметки, отсортированные по дате последнего изменения — сначала новые. Опциональный фильтр since принимает дату в формате ISO (например, '2026-04-01') или относительный промежуток ('7d', '24h', '2w'); возвращаются только заметки, изменённые в указанное время или позже. Используйте, чтобы посмотреть, над чем вы работали, собрать дайджест «что изменилось на этой неделе» или выбрать заметки для повторения.

Получить последние заметки

Параметры
  • folderstring

    Ограничьте поиск заметками в этой папке (относительно корня хранилища). Оставьте пустым, чтобы сканировать всё хранилище.

  • limitinteger

    Максимальное количество заметок для возврата (по умолчанию: 5)

  • sincestring

    Фильтрует заметки, изменённые в этот момент времени или позже. Принимает ISO 8601 (ГГГГ-ММ-ДД или полную метку времени) или относительный интервал, например '7d', '24h', '2w'.

get_vault_statsтолько чтениеидемпотентный

Возвращает быстрый снимок состояния хранилища: количество заметок, общее количество байт, общее количество слов, количество уникальных тегов, количество заметок без тегов и самую недавно изменённую заметку. Полезно для дашбордов и проверок 'здорово ли это хранилище?'. Читает через кеш mtime, поэтому повторные вызовы дёшевы.

Получить статистику Vault

Параметры
  • folderstring

    Ограничьте статистику этой папкой (путь указывается относительно корня хранилища). Если не указано, статистика будет по всему хранилищу.

index_vaultидемпотентныйвнешний мир

Строит или обновляет индекс эмбеддингов, используемый search_semantic и find_similar_notes. Разбивает читаемые заметки на фрагменты с учётом заголовков, отправляет эти фрагменты настроенному провайдеру эмбеддингов (по умолчанию Ollama, OpenAI опционально) и сохраняет индекс в <хранилище>/.obsidian/cache/mcp-pro-embeddings.json. Требует confirm: "send-vault-text-to-embedding-provider", чтобы вызывающие явно подтверждали, что текст из хранилища покинет границы этого инструмента. Инкрементально: заметки, чей хеш содержимого совпадает с предыдущим проходом, пропускаются. Используйте force: true, чтобы перестроить все эмбеддинги (например, после смены моделей). Отправляет уведомления о прогрессе, если клиент подписался.

Index Vault для Semantic Search

Параметры
  • confirmstring

    Обязательный предохранитель. Установите точно "send-vault-text-to-embedding-provider", чтобы подтвердить, что читаемые фрагменты заметок будут отправлены настроенному эмбеддинг-провайдеру.

  • folderstring

    Ограничьте проход индексации этой папкой. Заметки за её пределами остаются нетронутыми.

  • forceboolean

    Если true, повторно внедряйте каждую заметку, даже если её хеш содержимого совпадает с кэшированным.

insert_at_section

Вставляет содержимое в конкретный раздел, не заменяя его. position определяет, куда вставлять: 'before' - перед заголовком, 'after-heading' - сразу под строкой заголовка (в начало тела раздела), 'append' - в конец тела раздела, перед следующим заголовком. Используйте, чтобы добавить новый пункт или абзац без переписывания раздела.

Вставить в раздел

Параметры
  • contentstringобязательный

    Вставляемый контент. Завершающий перенос строки нормализуется.

  • pathstringобязательный

    Путь к заметке относительно Vault.

  • positionenum

    Вставьте перед строкой заголовка, сразу после заголовка или в конце тела раздела.

  • sectionstringобязательный

    Путь заголовка, определяющий раздел.

list_attachmentsтолько чтениеидемпотентный

Перечислить все файлы в хранилище, не являющиеся markdown: изображения, PDF, аудио/видеоклипы, любые вставленные файлы помимо заметок/канвасов/Bases. Возвращает отсортированный список относительных путей и сводку количества по расширениям. Используйте для аудита активов, поиска дубликатов по имени или выбора целей для find_unused_attachments.

Вывести список вложений

Параметры
  • extensionstring

    Ограничься одним расширением (например, 'png' или '.png'). Опускай для каждого вложения.

  • limitinteger

    Максимальное количество путей вложений для возврата (1-10000, по умолчанию: 200). Общее количество по-прежнему сообщается.

list_basesтолько чтениеидемпотентный

Перечисляет все файлы Obsidian Bases (.base) в хранилище. Bases: YAML-определённые представления базы данных над заметками (фильтры, свойства, табличные/календарные/канбан-представления). Возвращает отсортированный список относительных путей и общее количество. Используется вместе с read_base или query_base.

Список баз

Параметры

Без параметров.

list_canvasesтолько чтениеидемпотентный

Перечисляет все файлы холстов Obsidian (.canvas) в любом месте хранилища, возвращая нумерованный список относительных путей и общее количество. Не принимает параметров — сканирует всё хранилище. Используйте для обнаружения доступных холстов перед вызовом read_canvas, add_canvas_node или add_canvas_edge.

Список канвасов

Параметры

Без параметров.

list_notesтолько чтениеидемпотентный

Перечисляет все заметки Markdown в хранилище (или отдельной папке), возвращая отсортированный список относительных путей вместе с общим количеством. Урезает вывод до limit записей, но всё равно сообщает общее число. Используйте для просмотра структуры хранилища, создания файлового пикера или перечисления целей для пакетной обработки.

List Notes

Параметры
  • folderstring

    Папка относительно корня хранилища для ограничения списка (если не указано, будет показано всё хранилище)

  • limitinteger

    Максимальное количество путей к заметкам для возврата (1-10000, по умолчанию: 50). Полное общее количество при этом сообщается отдельно.

list_sectionsтолько чтениеидемпотентный

Выводит все заголовки в заметке в виде дерева путей (с указанием глубины). Полезно для поиска допустимых значений аргумента section перед вызовом get_note, update_section или insert_at_section.

Список разделов

Параметры
  • pathstringобязательный

    Путь к заметке относительно Vault.

list_tagsтолько чтениеидемпотентный

Перечисляет все уникальные теги, используемые в хранилище, и количество заметок, в которых встречается каждый тег. Распознаёт теги как из инлайн #хэштегов, так и из YAML фронтматера, нормализует их без учёта регистра, возвращает отсортированный список и общее количество уникальных тегов. Используйте для построения облака тегов, выбора категорий, аудита таксономии или обнаружения доступных тегов перед вызовом search_by_tag.

Список всех тегов

Параметры
  • sortByenum

    Порядок сортировки: 'count' - по количеству использований по убыванию (сначала самые используемые, по умолчанию), 'name' - по алфавиту по имени тега.

move_note

Перемещает или переименовывает заметку в хранилище, полностью сохраняя её содержимое. Родительские папки по пути назначения создаются при необходимости. По умолчанию обновляет вики-ссылки и ссылки на файлы — так же, как в Obsidian при включённой опции «Автоматически обновлять внутренние ссылки»; для этой перезаписи требуется, чтобы confirmPath совпадал с путём назначения после нормализации .md. Укажите updateLinks: false, чтобы пропустить перезапись (быстрее в больших хранилищах; если нужно потом проверить — используйте find_broken_links). Расширение .md добавляется автоматически, если его нет ни в одном из путей.

Переместить/Переименовать заметку

Параметры
  • confirmPathstring

    Требуется, когда updateLinks имеет значение true: повторно введите путь назначения после нормализации .md, чтобы подтвердить переписывание ссылок по всему хранилищу.

  • newPathstringобязательный

    Путь назначения относительно корня хранилища (например, 'projects/idea.md'). Создает промежуточные папки при необходимости.

  • oldPathstringобязательный

    Текущий относительный путь заметки от корня хранилища (например, 'inbox/idea.md')

  • updateLinksboolean

    Если true (по умолчанию), обновляет каждый викилинк, markdown-ссылку и ссылку на канвас-узел по всему хранилищу, чтобы они указывали на новый путь. Задайте false, чтобы пропустить этап перезаписи.

prepend_to_note

Вставляет содержимое в начало тела существующей заметки, сразу после блока YAML frontmatter, если он есть (чтобы метаданные оставались в начале файла). Используйте для добавления новых элементов в начало списка, закрепления контекста или вставки разделов TL;DR. Завершается ошибкой, если заметка не существует.

Добавить в начало заметки

Параметры
  • contentstringобязательный

    Текст в формате Markdown для вставки в начало тела документа, после любого frontmatter.

  • pathstringобязательный

    Относительный путь от корня хранилища до целевой заметки (например, 'notes/log.md'). Расширение необязательно.

query_baseтолько чтениеидемпотентный

Запускает фильтры Base-файла по хранилищу и возвращает пути совпадающих заметок. Опционально можно выбрать именованное представление, чтобы применить фильтры и порядок этого представления поверх фильтров базового уровня. Поддерживаемый синтаксис фильтров (подмножество полного DSL Obsidian): цепочки методов file.hasTag("tag"), file.hasProperty("key"), file.inFolder("path"), file.linksTo("target"), file.name.contains("x")/.startsWith/.endsWith/.equals, плюс .isEmpty/.isNotEmpty для любого значения; устаревшая форма функции taggedWith(file, "tag"); сравнения key == "val", key != x, key contains x, >=, <=, >, <; комбинаторы and:, or:, not:. Распознаваемые свойства файла: file.name, file.basename, file.folder, file.ext, file.path, file.size, file.ctime, file.mtime, file.tags, file.properties, file.links, file.embeds, file.backlinks. Неподдерживаемые условия выводятся как предупреждения и считаются несовпадением.

Query Base

Параметры
  • includeFrontmatterboolean

    Если true, включайте frontmatter каждой строки в вывод.

  • limitinteger

    Максимальное количество совпадающих заметок для возврата (1-1000, по умолчанию: 100).

  • pathstringобязательный

    Путь к файлу .base относительно Vault.

  • viewstring

    Необязательное имя представления (или тип представления), применяемое поверх базовых фильтров.

read_baseтолько чтениеидемпотентный

Возвращает разобранное содержимое файла Base: фильтры, свойства, определения представлений и любые нераспознанные поля. Используется для выяснения того, какие запросы поддерживает Base, перед вызовом query_base.

Прочитать базу

Параметры
  • pathstringобязательный

    Путь к файлу .base относительно Vault.

read_canvasтолько чтениеидемпотентный

Читает файл Obsidian canvas (.canvas, формат JSON) и возвращает краткое человекочитаемое описание его структуры: общее количество узлов и связей, до 200 узлов с id/типом/позицией/размером/превью содержимого и до 200 связей с id исходного и целевого узлов, плюс необязательная метка. Используйте для просмотра или навигации по canvas перед вызовом add_canvas_node или add_canvas_edge.

Read Canvas

Параметры
  • pathstringобязательный

    Относительный путь от корня хранилища до файла .canvas (например, 'boards/roadmap.canvas')

rename_tag

Переименовывает тег везде, где он встречается в хранилище — и в инлайн-тегах #тег, и в полях tags: в frontmatter. Для записи (не сухой прогон) требуется, чтобы confirmTag совпадал с новым именем тега. Если hierarchical: true (по умолчанию), вложенные теги тоже перебазируются: переименование project в client также переименует project/alpha → client/alpha. Если dryRun: true, возвращает планируемое количество изменений без записи. Отбрасывайте ведущий # у oldName/newName — это имена тегов, а не токены тегов.

Переименовать тег

Параметры
  • confirmTagstring

    Требуется, если dryRun имеет значение false: повторно введите новое имя тега, чтобы подтвердить перезапись тегов во всем хранилище.

  • dryRunboolean

    Если true, подсчитывает совпадения, не изменяя никаких заметок.

  • hierarchicalboolean

    Также переименовывает вложенные подтеги (по умолчанию: true).

  • newNamestringобязательный

    Новое имя тега (без # в начале), например 'client'.

  • oldNamestringобязательный

    Существующее имя тега (без # в начале), например, 'project'.

replace_in_note

Поиск и замена в пределах одной заметки. Поддерживает буквальные строки или регулярные выражения. С параметром expectedCount операция отказывается выполняться, пока не найдено указанное количество совпадений — это защищает от случайной перезамены, когда LLM составляет слишком широкий шаблон. Возвращает количество сделанных замен.

Заменить в заметке

Параметры
  • expectedCountinteger

    Если задано, прерывает выполнение, если найдено не ровно столько совпадений.

  • findstringобязательный

    Литеральная строка (по умолчанию) или регулярное выражение для сопоставления.

  • flagsstring

    Флаги регулярных выражений (например, 'gi'). По умолчанию используется 'g', поэтому заменяются все совпадения.

  • pathstringобязательный

    Путь к заметке относительно Vault.

  • regexboolean

    Обрабатывайте find как JavaScript-регулярное выражение (многострочное, чувствительное к регистру по умолчанию).

  • replacestringобязательный

    Текст замены. С regex: true поддерживает обратные ссылки $1, $2.

resolve_aliasтолько чтениеидемпотентный

Ищет все заметки, у которых в frontmatter поле aliases: содержит указанное имя (без учёта регистра). При includeBasename: true также находит заметки, чьё имя файла (без .md) совпадает с именем: это запасной вариант разрешения в Obsidian, когда ни один псевдоним не совпадает. Используйте, чтобы преобразовать человекочитаемый заголовок, например 'My Project', в реальный путь к заметке перед вызовом get_note.

Разрешить псевдоним

Параметры
  • includeBasenameboolean

    Если значение true (по умолчанию), также сопоставляются заметки, имя файла которых (без расширения) равно name.

  • namestringобязательный

    Алиас или отображаемое имя, которое нужно разрешить, например 'My Project'.

search_by_frontmatterтолько чтениеидемпотентный

Находит заметки, в YAML frontmatter которых содержится заданная пара свойство/значение. Имена свойств и значения сравниваются без учёта регистра; для свойств-массивов совпадение засчитывается, если совпадает хотя бы один элемент. Возвращает пути к подходящим заметкам вместе с их полным frontmatter. Используйте для фильтрации заметок по метаданным в frontmatter — статусу, типу, тегам и т.п.

Поиск по Frontmatter

Параметры
  • folderstring

    Ограничьте поиск этой папкой относительно корня хранилища (оставьте пустым для поиска по всему хранилищу)

  • maxResultsinteger

    Максимальное количество совпадающих заметок для возврата (1-1000, по умолчанию: 100).

  • propertystringобязательный

    Ищет ключ frontmatter без учета регистра (например, 'status', 'type', 'author')

  • valuestringобязательный

    Значение для сопоставления со свойством (без учёта регистра; соответствует любому элементу массива)

search_by_tagтолько чтениеидемпотентный

Находит все заметки, отмеченные определённым тегом, включая вложенные подтеги (поиск 'project' находит и #project, и #project/alpha). Распознаёт теги как в инлайн-хэштегах, так и в YAML frontmatter. Возвращает пути к найденным заметкам с опциональным предпросмотром содержимого. Используйте для сбора заметок по теме, области или этапу рабочего процесса.

Поиск по тегу

Параметры
  • includeContentboolean

    Если true, включает первые 200 символов каждой подходящей заметки в качестве предпросмотра (по умолчанию: false)

  • maxResultsinteger

    Максимальное количество совпадающих заметок для возврата (1-1000, по умолчанию: 100).

  • tagstringобязательный

    Тег для поиска, с префиксом # или без него (например, project или #project). Учитывает вложенные теги, такие как project/alpha.

search_notesтолько чтениеидемпотентный

Полнотекстовый поиск по всем заметкам в хранилище. Ранжирует точные совпадения с фокусом на заголовке/пути и подавлением повторяющихся строк, затем возвращает пути совпавших заметок, сгруппированные с номерами строк и содержимым сниппета вокруг запроса для каждой совпавшей строки. Используйте для поиска заметок, содержащих фразу, ключевое слово или фрагмент кода; используйте вместе с get_note для получения полного текста.

Поиск заметок

Параметры
  • caseSensitiveboolean

    Если true, учитывать регистр точно; в противном случае без учёта регистра (по умолчанию: false)

  • folderstring

    Ограничьте поиск этой папкой относительно корня хранилища (оставьте пустым для поиска по всему хранилищу)

  • maxResultsinteger

    Максимальное количество совпадающих заметок для возврата (1-1000, по умолчанию: 100).

  • querystringобязательный

    Строка поиска сопоставляется с текстом заметки буквально (не регулярное выражение)

search_semanticтолько чтениеидемпотентныйвнешний мир

Ищет заметки по смыслу, а не по ключевым словам. Встраивает запрос с помощью настроенного провайдера, оценивает каждый фрагмент в сохранённом индексе по косинусному сходству, ранжирует по одному результату на заметку, используя лучший фрагмент плюс небольшой сигнал фокуса на верхнем фрагменте, и возвращает лучший фрагмент как источник отрывка. Сначала выполните index_vault, чтобы заполнить индекс — этот инструмент не индексирует автоматически, потому что пользователь должен знать, что оплачивает стоимость встраивания. Используйте вместе с get_note, чтобы получить полный текст заметки после выбора совпадения.

Семантический поиск

Параметры
  • folderstring

    Ограничивает поиск до папки относительно корня хранилища.

  • includeSnippetboolean

    Если true (по умолчанию), включает короткий фрагмент соответствующего блока под каждым совпадением.

  • limitinteger

    Максимальное количество заметок для возврата (по умолчанию: 5)

  • querystringобязательный

    Описание на естественном языке того, что вы ищете, например «заметки о найме новых сотрудников».

update_frontmatterидемпотентный

Добавляет новые пары ключ-значение в YAML-шапку заметки, сохраняя все неупомянутые ключи и не трогая содержимое тела. Ключи из payload перезаписывают существующие значения. Создаёт блок шапки, если у заметки его нет. Возвращает количество записанных свойств. Используйте, чтобы задавать поля статуса, массивы тегов или другие метаданные без перезаписи тела. Примечание: YAML-блок пересоздаётся при каждом обновлении — комментарии, пользовательские кавычки, стиль многострочных скаляров, пустые строки и порядок ключей внутри блока нормализуются. Наличие ключей и значения сохраняются; форматирование — нет.

Обновить Frontmatter

Параметры
  • pathstringобязательный

    Относительный путь от корня хранилища до заметки (например, 'projects/alpha.md'). Расширение необязательно.

  • propertiesstringобязательный

    JSON-строка объекта с ключами frontmatter для установки, например, '{"status":"done","priority":1,"tags":["review"]}'. Существующие ключи, которых нет в payload, сохраняются.

update_sectionидемпотентный

Заменяет тело указанной секции (всё между заголовком и следующим заголовком любого уровня). Строка заголовка сохраняется. section — это путь к заголовку: 'Tasks', 'Project A/Status' и т.д. — без учёта регистра и пробелов. Используйте это вместо перезаписи всего файла, когда нужно обновить только одну секцию.

Обновить раздел

Параметры
  • newBodystringобязательный

    Заменяемое основное содержимое. Строка заголовка остается без изменений.

  • pathstringобязательный

    Путь к заметке относительно хранилища (например, 'folder/note.md'). Расширение обязательно.

  • sectionstringобязательный

    Путь заголовка, определяющий раздел для замены (например, 'Tasks' или 'Daily/Today').

4.0.1основная
4.0.0
3.0.0
2.1.0
2.0.0
1.9.0
1.8.6
1.8.5
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.2
1.7.1
1.7.0
1.6.0
1.5.3
1.5.2
1.5.1
1.5.0
1.4.1
1.4.0
1.3.3
1.3.2
1.3.1
1.3.0
1.2.0
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0

Выберите клиент, чтобы установить rps321321/obsidian-mcp-pro:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "rps321321-obsidian-mcp-pro-77t3o9o588": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-pro"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "rps321321-obsidian-mcp-pro-77t3o9o588": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-pro"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "rps321321-obsidian-mcp-pro-77t3o9o588": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-pro"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"rps321321-obsidian-mcp-pro-77t3o9o588\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"obsidian-mcp-pro\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "rps321321-obsidian-mcp-pro-77t3o9o588": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-pro"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add rps321321-obsidian-mcp-pro-77t3o9o588 -- npx -y obsidian-mcp-pro

Либо через JSON-конфиг:

claude mcp add-json rps321321-obsidian-mcp-pro-77t3o9o588 "{\"command\":\"npx\",\"args\":[\"-y\",\"obsidian-mcp-pro\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add rps321321-obsidian-mcp-pro-77t3o9o588 -- npx -y obsidian-mcp-pro

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.rps321321-obsidian-mcp-pro-77t3o9o588]
command = "npx"
args = ["-y", "obsidian-mcp-pro"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите rps321321/obsidian-mcp-pro, а в поле команды запуска — строку ниже:
npx -y obsidian-mcp-pro

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "rps321321-obsidian-mcp-pro-77t3o9o588": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-pro"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "rps321321-obsidian-mcp-pro-77t3o9o588": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-pro"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например rps321321-obsidian-mcp-pro-77t3o9o588.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: rps321321-obsidian-mcp-pro-77t3o9o588
    command: npx
    args:
      - "-y"
      - "obsidian-mcp-pro"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "rps321321-obsidian-mcp-pro-77t3o9o588": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-pro"
      ]
    }
  }
}

Похожие MCP-сервера

smith-and-web/obsidian-mcp-server

smith-and-web/obsidian-mcp-server

от smith-and-web

MCP-сервер для интеграции AI-ассистентов с Obsidian: создавайте, читайте, редактируйте заметки, управляйте тегами и ищите по хранилищу через естественный язык. Полезен для автоматизации работы с за...

TypeScript⭐ 19
louis030195/easy-obsidian-mcp

louis030195/easy-obsidian-mcp

от louis030195

MCP-сервер для подключения AI-ассистентов (Claude, ChatGPT) к Obsidian: поиск, чтение и анализ связей между заметками. Полезен для пользователей Obsidian, которые хотят задействовать ИИ для работы ...

TypeScript⭐ 17
vasylenko/claude-desktop-extension-bear-notes

vasylenko/claude-desktop-extension-bear-notes

от vasylenko

MCP инструмент для Bear Notes с релевантным поиском по заголовкам, тексту и тегам. Работает полностью локально — читает данные из SQLite без запуска Bear, запись через URL-схему. Подходит для точного поиска и управления заметками в офлайн-режиме.

TypeScript⭐ 205
aliasunder/vault-cortex

aliasunder/vault-cortex

от aliasunder

Сервер Vault Cortex предоставляет AI-ассистентам полнотекстовый поиск и структурированную память в Obsidian vault через Docker. 25 инструментов работают с заметками, ссылками и свойствами без плагинов.

TypeScript⭐ 30
mlorentedev/hive

mlorentedev/hive

от mlorentedev

Hive — MCP-сервер, который подключает AI-ассистента к Obsidian-хранилищу. Вместо загрузки всего контекста он запрашивает только нужное, экономя токены и сохраняя знания между сессиями. Полезен разр...

Python⭐ 11
MarkusPfundstein/mcp-obsidian

MarkusPfundstein/mcp-obsidian

от markuspfundstein

Управляет заметками Obsidian: ищет по ключевым словам, читает, дополняет и создаёт новые. Требуется плагин Local REST API.

Python⭐ 4482
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин