paulburgess1357/nvim-mcp

paulburgess1357/nvim-mcp

от paulburgess1357
nvim-mcp — MCP-сервер для подключения AI-агентов к работающему Neovim через msgpack-RPC без плагинов. Агенты видят буферы, диагностику, редактируют в памяти, выполняют Vim-команды и макросы. Полезе...

nvim-mcp

PyPI

An MCP server that gives AI agents first-class access to your running Neovim session. It connects through Neovim's native msgpack-RPC socket — no plugins required.

Works with Cursor, Claude Code, Codex, OpenCode, and any MCP-compatible client.

Before you connect an agent to Neovim, please read Working safely.

What agents can do

  • See what you see — editor mode, working directory, open buffers, window layout, cursor context, folds, selections, marks, and diagnostics.
  • Edit buffers in memory — find-and-replace or full rewrites with immediate feedback and full undo support. Nothing touches disk until you save.
  • Run any Vim command:w, :e, :vsplit, macros, or anything else you could type at the command line.
  • Send keystrokes — navigate, enter insert mode, trigger mappings.
  • Query LSP diagnostics — errors, warnings, and hints across one buffer or the whole session.
  • Annotate code with highlights and virtual text — colored line highlights and inline/above/below text notes that never touch the buffer's real content.
  • Work with multiple instances — auto-discovers running sessions and connects to the right one. See multiple instances.
add_virtual_text

Добавляет виртуальную текстовую аннотацию в буфер Neovim. Только визуально — фактическое содержимое буфера не меняется, ничего не записывается на диск. Аннотации накапливаются: несколько вызовов суммируются. file: путь относительно текущей рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращается ошибка. line: якорная строка с нумерацией от 1. Значения за границами диапазона прижимаются к краям. text: список строк, по одной на виртуальную строку. Должен быть непустым. Если position равно "eol", разрешён ровно один элемент. position: где появляется аннотация относительно якорной строки. Одно из значений: "eol" (после конца строки), "above" (между предыдущей и якорной строками) или "below" (между якорной и следующей строками). По умолчанию "eol". color: название группы подсветки Neovim (например, "Comment", "DiagnosticError") или шестнадцатеричный цвет (например, "#7a9ad4"). По умолчанию "Comment", адаптируется к цветовой схеме пользователя. Неизвестные названия (включая голые литералы цветов вроде "Red") возвращают ошибку. Используйте для одной аннотации. Для нескольких аннотаций за один вызов используйте `add_virtual_texts`. Чтобы удалить весь MCP-виртуальный текст из буфера, используйте `clear_virtual_texts`. При успехе возвращает {added: 1}, при ошибке — {error} с сообщением.

Добавляет виртуальную текстовую аннотацию в буфер Neovim. Только визуально — фактическое содержимое буфера не меняется, ничего не записывается на диск. Аннотации накапливаются: несколько вызовов суммируются. file: путь относительно текущей рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращается ошибка. line: якорная строка с нумерацией от 1. Значения за границами диапазона прижимаются к краям. text: список строк, по одной на виртуальную строку. Должен быть непустым. Если position равно "eol", разрешён ровно один элемент. position: где появляется аннотация относительно якорной строки. Одно из значений: "eol" (после конца строки), "above" (между предыдущей и якорной строками) или "below" (между якорной и следующей строками). По умолчанию "eol". color: название группы подсветки Neovim (например, "Comment", "DiagnosticError") или шестнадцатеричный цвет (например, "#7a9ad4"). По умолчанию "Comment", адаптируется к цветовой схеме пользователя. Неизвестные названия (включая голые литералы цветов вроде "Red") возвращают ошибку. Используйте для одной аннотации. Для нескольких аннотаций за один вызов используйте `add_virtual_texts`. Чтобы удалить весь MCP-виртуальный текст из буфера, используйте `clear_virtual_texts`. При успехе возвращает {added: 1}, при ошибке — {error} с сообщением.

Параметры

  • filestringобязательный
  • lineintegerобязательный
  • textstring[]обязательный
  • positionstring
  • colorstring
add_virtual_texts

Добавляет несколько виртуальных текстовых аннотаций в буферы Neovim за один вызов. Только визуально — содержимое буфера не меняется. Аннотации накладываются: при вызове добавляются новые, предыдущие не удаляются. `items`: список словарей. Каждый словарь требует: - `file`: путь относительно рабочей директории Neovim. Буфер должен быть открыт. - `line`: якорная строка с нумерацией от 1. Значения за границами диапазона прижимаются к границам. - `text`: список строк, по одной на виртуальную строку. Непустой. В позиции EOL требуется ровно один элемент. И опционально: - `position`: "eol" (по умолчанию), "above" или "below". - `color`: hex-цвет (например "#7a9ad4") или имя группы подсветки Neovim (например "Comment", "DiagnosticError"). По умолчанию "Comment". Неизвестные имена (включая цветовые литералы вроде "Red") возвращают ошибку. Используйте, когда нужно добавить сразу несколько аннотаций (возможно в разных файлах). Для одной аннотации используйте `add_virtual_text`. Для удаления всех MCP-виртуальных текстов из буфера используйте `clear_virtual_texts`. Возвращает список результатов вида `{added: 1}` в порядке входных данных. Вызывает `ValueError`, если в любом элементе отсутствует обязательный ключ. Итерация последовательная: если элемент N не проходит проверку или менеджер выдаёт ошибку, элементы 0..N-1 уже применены (вызовите `clear_virtual_texts`, чтобы откатить). Пример: `[{"file": "foo.py", "line": 10, "text": ["this is the bug"]}, {"file": "foo.py", "line": 20, "text": ["note one", "note two"], "position": "above", "color": "DiagnosticInfo"}]`

Добавляет несколько виртуальных текстовых аннотаций в буферы Neovim за один вызов. Только визуально — содержимое буфера не меняется. Аннотации накладываются: при вызове добавляются новые, предыдущие не удаляются. `items`: список словарей. Каждый словарь требует: - `file`: путь относительно рабочей директории Neovim. Буфер должен быть открыт. - `line`: якорная строка с нумерацией от 1. Значения за границами диапазона прижимаются к границам. - `text`: список строк, по одной на виртуальную строку. Непустой. В позиции EOL требуется ровно один элемент. И опционально: - `position`: "eol" (по умолчанию), "above" или "below". - `color`: hex-цвет (например "#7a9ad4") или имя группы подсветки Neovim (например "Comment", "DiagnosticError"). По умолчанию "Comment". Неизвестные имена (включая цветовые литералы вроде "Red") возвращают ошибку. Используйте, когда нужно добавить сразу несколько аннотаций (возможно в разных файлах). Для одной аннотации используйте `add_virtual_text`. Для удаления всех MCP-виртуальных текстов из буфера используйте `clear_virtual_texts`. Возвращает список результатов вида `{added: 1}` в порядке входных данных. Вызывает `ValueError`, если в любом элементе отсутствует обязательный ключ. Итерация последовательная: если элемент N не проходит проверку или менеджер выдаёт ошибку, элементы 0..N-1 уже применены (вызовите `clear_virtual_texts`, чтобы откатить). Пример: `[{"file": "foo.py", "line": 10, "text": ["this is the bug"]}, {"file": "foo.py", "line": 20, "text": ["note one", "note two"], "position": "above", "color": "DiagnosticInfo"}]`

Параметры

  • itemsobject[]обязательный
clear_highlights

Удаляет все MCP-подсветки из буфера Neovim. Снимает только те подсветки, которые добавлены через `highlight_range` или `highlight_ranges` — не трогает синтаксическую подсветку, LSP-подсветки и другие плагины. Содержимое буфера не меняется. Можно вызывать, даже если подсветок нет (в любом случае возвращает `{cleared: true}`). `file`: путь относительно текущей рабочей папки Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращает ошибку. Используйте это, чтобы очистить подсветки после рабочего процесса с аннотациями. Чтобы добавить подсветки, используйте `highlight_range` или `highlight_ranges`.

Удаляет все MCP-подсветки из буфера Neovim. Снимает только те подсветки, которые добавлены через `highlight_range` или `highlight_ranges` — не трогает синтаксическую подсветку, LSP-подсветки и другие плагины. Содержимое буфера не меняется. Можно вызывать, даже если подсветок нет (в любом случае возвращает `{cleared: true}`). `file`: путь относительно текущей рабочей папки Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращает ошибку. Используйте это, чтобы очистить подсветки после рабочего процесса с аннотациями. Чтобы добавить подсветки, используйте `highlight_range` или `highlight_ranges`.

Параметры

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

Удаляет все MCP виртуальные текстовые аннотации из буфера Neovim. Удаляются только аннотации, добавленные через `add_virtual_text` или `add_virtual_texts` — подсветка, LSP виртуальный текст, внутренние подсказки и аннотации других плагинов не затрагиваются. Содержимое буфера не меняется. Безопасно вызывать, даже если аннотаций нет (в любом случае возвращает {cleared: true}). file: путь относительно текущей рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращается ошибка. Используйте это для очистки после рабочего процесса с аннотациями. Для добавления аннотаций используйте `add_virtual_text` или `add_virtual_texts`.

Удаляет все MCP виртуальные текстовые аннотации из буфера Neovim. Удаляются только аннотации, добавленные через `add_virtual_text` или `add_virtual_texts` — подсветка, LSP виртуальный текст, внутренние подсказки и аннотации других плагинов не затрагиваются. Содержимое буфера не меняется. Безопасно вызывать, даже если аннотаций нет (в любом случае возвращает {cleared: true}). file: путь относительно текущей рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращается ошибка. Используйте это для очистки после рабочего процесса с аннотациями. Для добавления аннотаций используйте `add_virtual_text` или `add_virtual_texts`.

Параметры

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

Подключиться к работающему экземпляру Neovim через его Unix-сокет или TCP-адрес. Вызывайте этот инструмент перед любым другим, если агент ещё не подключён. Подключение сохраняется на всю сессию; достаточно вызвать его один раз, если только вы не хотите переключиться на другой экземпляр. Вызов без аргументов: автоматическое подключение, когда запущен ровно один экземпляр; при обнаружении нескольких экземпляров возвращает их список. Опциональный выбор (укажите не более одного): - index: выбор из перечисленных экземпляров (нумерация с 1). - socket_path: прямое подключение к известному Unix-сокету или host:port. - terminal_pid: найти экземпляр Neovim, в дереве процессов которого присутствует этот PID (удобно, когда Neovim запущен внутри конкретного терминала). Возвращает {connected, cwd, file} в случае успеха или {error} с подробностями при ошибке (например, экземпляры не найдены, таймаут подключения, неверный индекс).

Подключиться к работающему экземпляру Neovim через его Unix-сокет или TCP-адрес. Вызывайте этот инструмент перед любым другим, если агент ещё не подключён. Подключение сохраняется на всю сессию; достаточно вызвать его один раз, если только вы не хотите переключиться на другой экземпляр. Вызов без аргументов: автоматическое подключение, когда запущен ровно один экземпляр; при обнаружении нескольких экземпляров возвращает их список. Опциональный выбор (укажите не более одного): - index: выбор из перечисленных экземпляров (нумерация с 1). - socket_path: прямое подключение к известному Unix-сокету или host:port. - terminal_pid: найти экземпляр Neovim, в дереве процессов которого присутствует этот PID (удобно, когда Neovim запущен внутри конкретного терминала). Возвращает {connected, cwd, file} в случае успеха или {error} с подробностями при ошибке (например, экземпляры не найдены, таймаут подключения, неверный индекс).

Параметры

  • socket_pathany
  • terminal_pidany
  • indexany
find_and_replace_buf

Находит и заменяет текст в буфере Neovim. Правка происходит в памяти и полностью отменяема — ничего не записывается на диск, пока пользователь не сохранит. file: путь относительно рабочей директории Neovim (как показано в буферах `get_state`). old_string: точный текст для поиска. Должен совпадать ровно один раз в буфере; возвращает ошибку, если не найден или найдено несколько совпадений. Добавьте окружающие строки, чтобы устранить неоднозначность. new_string: текст для замены. Создаёт буфер, если его ещё нет. Используйте для точечных правок. Используйте `write_full_buf`, когда нужно заменить содержимое всего буфера. Сначала используйте `read_full_buf` или `read_buf_range`, если нужно увидеть текущее содержимое перед правкой. Возвращает {start_line, lines_removed, lines_added, total_lines} в случае успеха, или {error} с сообщением об ошибке.

Находит и заменяет текст в буфере Neovim. Правка происходит в памяти и полностью отменяема — ничего не записывается на диск, пока пользователь не сохранит. file: путь относительно рабочей директории Neovim (как показано в буферах `get_state`). old_string: точный текст для поиска. Должен совпадать ровно один раз в буфере; возвращает ошибку, если не найден или найдено несколько совпадений. Добавьте окружающие строки, чтобы устранить неоднозначность. new_string: текст для замены. Создаёт буфер, если его ещё нет. Используйте для точечных правок. Используйте `write_full_buf`, когда нужно заменить содержимое всего буфера. Сначала используйте `read_full_buf` или `read_buf_range`, если нужно увидеть текущее содержимое перед правкой. Возвращает {start_line, lines_removed, lines_added, total_lines} в случае успеха, или {error} с сообщением об ошибке.

Параметры

  • filestringобязательный
  • old_stringstringобязательный
  • new_stringstringобязательный
get_all_diagnostics

Получает LSP-диагностики из всех открытых буферов в Neovim. Только чтение. Используйте для общего обзора ошибок и предупреждений по всему проекту. Используйте `get_buf_diagnostics`, если нужны диагностики только для конкретного файла — он точнее и возвращает меньше данных. Возвращает список {file, line, col, severity, message, source}. severity — одно из: "error", "warning", "info", "hint". Возвращает пустой список, если диагностик нет. Результат зависит от того, какие LSP-серверы подключены и какие буферы загружены в Neovim.

Получает LSP-диагностики из всех открытых буферов в Neovim. Только чтение. Используйте для общего обзора ошибок и предупреждений по всему проекту. Используйте `get_buf_diagnostics`, если нужны диагностики только для конкретного файла — он точнее и возвращает меньше данных. Возвращает список {file, line, col, severity, message, source}. severity — одно из: "error", "warning", "info", "hint". Возвращает пустой список, если диагностик нет. Результат зависит от того, какие LSP-серверы подключены и какие буферы загружены в Neovim.

Параметры

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

get_buf_diagnostics

Получает LSP-диагностику для одного буфера Neovim. Только для чтения. file: путь относительно текущей рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращает ошибку. Используйте это, когда нужна диагностика для одного конкретного файла. Для общего обзора проекта используйте `get_all_diagnostics`. Возвращает список из {file, line, col, severity, message, source}. severity принимает одно из значений: "error", "warning", "info", "hint". Возвращает пустой список, если у буфера нет диагностики.

Получает LSP-диагностику для одного буфера Neovim. Только для чтения. file: путь относительно текущей рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращает ошибку. Используйте это, когда нужна диагностика для одного конкретного файла. Для общего обзора проекта используйте `get_all_diagnostics`. Возвращает список из {file, line, col, severity, message, source}. severity принимает одно из значений: "error", "warning", "info", "hint". Возвращает пустой список, если у буфера нет диагностики.

Параметры

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

Полный снимок текущей сессии Neovim. Только для чтения - не изменяет состояние редактора. Используйте `get_state_brief` для быстрой ориентации в начале шага. Используйте этот инструмент, когда нужна полная картина: все детали окон, свёртки, метки, сводки диагностики, подсветки, виртуальный текст и настройки отступов. Возвращает: режим (normal/insert/visual и т.д.), cwd, буферы (относительные пути всех перечисленных буферов), modified_buffers, current_tab, tab_count. windows - список видимых окон (только текущая вкладка). Активное окно всегда первое, альтернативное окно (предыдущее) - второе. Каждая запись окна содержит: file (путь относительно cwd), filetype, total_lines, modified, buftype ("file" для обычных буферов, "terminal" и т.д.), line, col, indent: {expandtab, shiftwidth, tabstop}. Необязательные поля для каждого окна (присутствуют, когда применимо): - role: "active" или "alternate". - context: нумерованные строки вокруг курсора. - selection: {start_line, start_col, end_line, end_col} в визуальных режимах. - folds: список закрытых диапазонов свёрток [start, end]. - diagnostics_summary: количество {error, warning, info, hint}. - marks: список {mark, line, col} для строчных (a-z) меток буфера. - mcp_highlights: список {start_line, end_line, color} для активных подсветок. - mcp_virtual_text: список {line, position, lines, color} для активного виртуального текста.

Полный снимок текущей сессии Neovim. Только для чтения - не изменяет состояние редактора. Используйте `get_state_brief` для быстрой ориентации в начале шага. Используйте этот инструмент, когда нужна полная картина: все детали окон, свёртки, метки, сводки диагностики, подсветки, виртуальный текст и настройки отступов. Возвращает: режим (normal/insert/visual и т.д.), cwd, буферы (относительные пути всех перечисленных буферов), modified_buffers, current_tab, tab_count. windows - список видимых окон (только текущая вкладка). Активное окно всегда первое, альтернативное окно (предыдущее) - второе. Каждая запись окна содержит: file (путь относительно cwd), filetype, total_lines, modified, buftype ("file" для обычных буферов, "terminal" и т.д.), line, col, indent: {expandtab, shiftwidth, tabstop}. Необязательные поля для каждого окна (присутствуют, когда применимо): - role: "active" или "alternate". - context: нумерованные строки вокруг курсора. - selection: {start_line, start_col, end_line, end_col} в визуальных режимах. - folds: список закрытых диапазонов свёрток [start, end]. - diagnostics_summary: количество {error, warning, info, hint}. - marks: список {mark, line, col} для строчных (a-z) меток буфера. - mcp_highlights: список {start_line, end_line, color} для активных подсветок. - mcp_virtual_text: список {line, position, lines, color} для активного виртуального текста.

Параметры

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

get_state_brief

Легковесный снимок сессии Neovim для быстрой ориентации. Только для чтения — не изменяет состояние редактора. Используйте это в начале каждого хода, чтобы увидеть, над чем работает пользователь. Вместо этого используйте `get_state`, когда нужна полная картина: все окна, складки, метки, сводки диагностики, подсветка, виртуальный текст и настройки отступов. Возвращает: режим (normal/insert/visual и т.д.), cwd, буферы (относительные пути всех перечисленных буферов), modified_buffers и active_window: {file, filetype, total_lines, modified, buftype, line, col, context}. context — это короткий список нумерованных строк вокруг курсора. Если существует альтернативное окно, также возвращает alternate_window с теми же полями.

Легковесный снимок сессии Neovim для быстрой ориентации. Только для чтения — не изменяет состояние редактора. Используйте это в начале каждого хода, чтобы увидеть, над чем работает пользователь. Вместо этого используйте `get_state`, когда нужна полная картина: все окна, складки, метки, сводки диагностики, подсветка, виртуальный текст и настройки отступов. Возвращает: режим (normal/insert/visual и т.д.), cwd, буферы (относительные пути всех перечисленных буферов), modified_buffers и active_window: {file, filetype, total_lines, modified, buftype, line, col, context}. context — это короткий список нумерованных строк вокруг курсора. Если существует альтернативное окно, также возвращает alternate_window с теми же полями.

Параметры

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

highlight_range

Добавляет подсветку цветной линией в буфере Neovim. Это только визуальная аннотация — содержимое буфера не меняется и на диск ничего не сохраняется. Подсветки накапливаются: при многократном вызове добавляются новые, а старые не удаляются. file: путь относительно рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращается ошибка. start_line: первая строка для подсветки (нумерация с 1, включительно). end_line: последняя строка для подсветки (нумерация с 1, включительно). Значения за границами диапазона обрезаются. Если start_line больше end_line, они меняются местами. color: шестнадцатеричный цвет (например "#3b4048") или название группы подсветки Neovim (например "Comment", "DiagnosticError"). Для групп итоговый цвет переднего плана становится цветом фона строки — подсветка подстраивается под цветовую схему пользователя. По умолчанию — "Comment". Неизвестные имена (включая литералы цвета вроде "Red") возвращают ошибку. Используйте для одной подсветки. Чтобы применить несколько подсветок за один вызов, используйте `highlight_ranges`. Чтобы убрать все подсветки с буфера, используйте `clear_highlights`. Возвращает {highlighted} с количеством подсвеченных строк или {error} с сообщением в случае ошибки.

Добавляет подсветку цветной линией в буфере Neovim. Это только визуальная аннотация — содержимое буфера не меняется и на диск ничего не сохраняется. Подсветки накапливаются: при многократном вызове добавляются новые, а старые не удаляются. file: путь относительно рабочей директории Neovim (как показано в буферах `get_state`). Буфер уже должен быть открыт в Neovim; иначе возвращается ошибка. start_line: первая строка для подсветки (нумерация с 1, включительно). end_line: последняя строка для подсветки (нумерация с 1, включительно). Значения за границами диапазона обрезаются. Если start_line больше end_line, они меняются местами. color: шестнадцатеричный цвет (например "#3b4048") или название группы подсветки Neovim (например "Comment", "DiagnosticError"). Для групп итоговый цвет переднего плана становится цветом фона строки — подсветка подстраивается под цветовую схему пользователя. По умолчанию — "Comment". Неизвестные имена (включая литералы цвета вроде "Red") возвращают ошибку. Используйте для одной подсветки. Чтобы применить несколько подсветок за один вызов, используйте `highlight_ranges`. Чтобы убрать все подсветки с буфера, используйте `clear_highlights`. Возвращает {highlighted} с количеством подсвеченных строк или {error} с сообщением в случае ошибки.

Параметры

  • filestringобязательный
  • start_lineintegerобязательный
  • end_lineintegerобязательный
  • colorstring
highlight_ranges

Добавляет цветную подсветку строк в один или несколько буферов Neovim за один вызов. Это только визуальная аннотация, она не изменяет содержимое буфера и не сохраняется на диск. Подсветки накапливаются: каждый вызов добавляет новые подсветки, не удаляя предыдущие. highlights: список словарей. Каждый словарь должен содержать: - file: путь относительно текущей рабочей директории Neovim (как показано в `get_state`). Буфер должен быть открыт в Neovim. - start_line: первая строка (нумерация с 1, включительно). - end_line: последняя строка (нумерация с 1, включительно). - color (необязательно): hex-цвет (например "#5f3a3a") или имя группы подсветки Neovim (например "Comment", "DiagnosticError"). Для групп цвет переднего плана становится фоном строки. По умолчанию "Comment". Неизвестные имена (включая строковые литералы цвета, например "Red") возвращают ошибку. Строки за пределами диапазона обрезаются до границ. Используйте это, когда нужно подсветить несколько диапазонов сразу (возможно, в разных файлах). Для одного диапазона используйте `highlight_range`. Чтобы удалить все подсветки из буфера, используйте `clear_highlights`. Возвращает список результатов {highlighted} в том же порядке, что и входные данные. Вызывает ошибку, если у любого элемента отсутствуют обязательные ключи. Пример: [{"file": "foo.py", "start_line": 1, "end_line": 3, "color": "DiagnosticError"}, {"file": "foo.py", "start_line": 10, "end_line": 12}]

Добавляет цветную подсветку строк в один или несколько буферов Neovim за один вызов. Это только визуальная аннотация, она не изменяет содержимое буфера и не сохраняется на диск. Подсветки накапливаются: каждый вызов добавляет новые подсветки, не удаляя предыдущие. highlights: список словарей. Каждый словарь должен содержать: - file: путь относительно текущей рабочей директории Neovim (как показано в `get_state`). Буфер должен быть открыт в Neovim. - start_line: первая строка (нумерация с 1, включительно). - end_line: последняя строка (нумерация с 1, включительно). - color (необязательно): hex-цвет (например "#5f3a3a") или имя группы подсветки Neovim (например "Comment", "DiagnosticError"). Для групп цвет переднего плана становится фоном строки. По умолчанию "Comment". Неизвестные имена (включая строковые литералы цвета, например "Red") возвращают ошибку. Строки за пределами диапазона обрезаются до границ. Используйте это, когда нужно подсветить несколько диапазонов сразу (возможно, в разных файлах). Для одного диапазона используйте `highlight_range`. Чтобы удалить все подсветки из буфера, используйте `clear_highlights`. Возвращает список результатов {highlighted} в том же порядке, что и входные данные. Вызывает ошибку, если у любого элемента отсутствуют обязательные ключи. Пример: [{"file": "foo.py", "start_line": 1, "end_line": 3, "color": "DiagnosticError"}, {"file": "foo.py", "start_line": 10, "end_line": 12}]

Параметры

  • highlightsobject[]обязательный
read_buf_range

Читает указанный диапазон строк из буфера Neovim. Только чтение; читает из оперативной памяти Neovim, содержимое может отличаться от файла на диске, если есть несохранённые изменения. file: путь относительно текущей рабочей директории Neovim (как указано в `get_state` buffers). Буфер уже должен быть открыт в Neovim; иначе возвращает ошибку. start_line: первая строка для чтения (нумерация с 1, включительно). end_line: последняя строка для чтения (нумерация с 1, включительно). Значения за пределами диапазона обрезаются по границам буфера. Если start_line > end_line, они автоматически меняются местами. Используйте это, когда вам нужна только часть файла. Используйте `read_full_buf`, если нужен весь буфер. Возвращает {lines, total_lines}. lines — список строк, каждая с префиксом — номером строки начиная с 1 (например, "10: some code").

Читает указанный диапазон строк из буфера Neovim. Только чтение; читает из оперативной памяти Neovim, содержимое может отличаться от файла на диске, если есть несохранённые изменения. file: путь относительно текущей рабочей директории Neovim (как указано в `get_state` buffers). Буфер уже должен быть открыт в Neovim; иначе возвращает ошибку. start_line: первая строка для чтения (нумерация с 1, включительно). end_line: последняя строка для чтения (нумерация с 1, включительно). Значения за пределами диапазона обрезаются по границам буфера. Если start_line > end_line, они автоматически меняются местами. Используйте это, когда вам нужна только часть файла. Используйте `read_full_buf`, если нужен весь буфер. Возвращает {lines, total_lines}. lines — список строк, каждая с префиксом — номером строки начиная с 1 (например, "10: some code").

Параметры

  • filestringобязательный
  • start_lineintegerобязательный
  • end_lineintegerобязательный
read_full_buf

Читает полное содержимое буфера Neovim. Только чтение; читает из оперативной памяти Neovim, которая может отличаться от файла на диске, если есть несохранённые изменения. file: путь относительно рабочей директории Neovim (как показано в `get_state` buffers). Буфер должен быть открыт в Neovim; иначе возвращает ошибку. Используйте эту функцию, чтобы увидеть весь файл. Если нужен только определённый участок, используйте `read_buf_range` — он возвращает меньше данных. Возвращает {lines, total_lines}. lines — список строк, каждая с префиксом номера строки, начиная с 1 (например, "1: first line").

Читает полное содержимое буфера Neovim. Только чтение; читает из оперативной памяти Neovim, которая может отличаться от файла на диске, если есть несохранённые изменения. file: путь относительно рабочей директории Neovim (как показано в `get_state` buffers). Буфер должен быть открыт в Neovim; иначе возвращает ошибку. Используйте эту функцию, чтобы увидеть весь файл. Если нужен только определённый участок, используйте `read_buf_range` — он возвращает меньше данных. Возвращает {lines, total_lines}. lines — список строк, каждая с префиксом номера строки, начиная с 1 (например, "1: first line").

Параметры

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

Выполняет одну или несколько команд Vim ex в Neovim. Это инструмент изменения состояния — команды могут менять буферы, файлы на диске, окна и состояние редактора. command: одна строка команды или список строк, без ведущего символа ':'. Например: "w", "e src/main.py", "42", "wincmd v", "lua vim.print(...)" или ["wincmd p", "e file.py", "wincmd p"]. Используйте для операций редактора, под которые нет отдельного инструмента (например, сохранение, открытие файлов, разделение окон, настройка опций). Если нужны движения в нормальном режиме или последовательности операторов — используйте `send_keys`. Для редактирования текста буфера используйте `find_and_replace_buf` или `write_full_buf` — они безопаснее и поддерживают отмену. Возвращает {output} с захваченным выводом команды или {error}, если команда завершилась ошибкой. При передаче списка возвращает список результатов в том же порядке; выполнение останавливается на первой ошибке.

Выполняет одну или несколько команд Vim ex в Neovim. Это инструмент изменения состояния — команды могут менять буферы, файлы на диске, окна и состояние редактора. command: одна строка команды или список строк, без ведущего символа ':'. Например: "w", "e src/main.py", "42", "wincmd v", "lua vim.print(...)" или ["wincmd p", "e file.py", "wincmd p"]. Используйте для операций редактора, под которые нет отдельного инструмента (например, сохранение, открытие файлов, разделение окон, настройка опций). Если нужны движения в нормальном режиме или последовательности операторов — используйте `send_keys`. Для редактирования текста буфера используйте `find_and_replace_buf` или `write_full_buf` — они безопаснее и поддерживают отмену. Возвращает {output} с захваченным выводом команды или {error}, если команда завершилась ошибкой. При передаче списка возвращает список результатов в том же порядке; выполнение останавливается на первой ошибке.

Параметры

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

Отправляет сырые нажатия клавиш в Neovim так, как если бы их вводил пользователь. Это мутирующий инструмент — клавиши могут изменять буферы, переключать режимы и вызывать действия редактора. `keys`: строка нажатий клавиш в формате Vim. `Esc` добавляется автоматически, так что ввод всегда начинается в нормальном режиме. Многомодовые последовательности нужно отправлять одним вызовом (например, `"17GVG"`, а не `"17GV"` и потом `"G"`). Для специальных клавиш используй нотацию Vim (например, `"<CR>"`, `"<C-w>v"`, `"<Tab>"`). Используй этот инструмент для движений в нормальном режиме, выделений в визуальном режиме или последовательностей операторов. Для `Ex`-команд используй `send_command`, а для правки текста — `find_and_replace_buf` или `write_full_buf`: они безопаснее и возвращают структурированный результат. Возвращает `{sent}` с подтверждением, какие клавиши были отправлены. Клавиши отправляются по принципу «забыл и полетело»; ошибки от последующих действий Vim в возвращаемое значение не попадают.

Отправляет сырые нажатия клавиш в Neovim так, как если бы их вводил пользователь. Это мутирующий инструмент — клавиши могут изменять буферы, переключать режимы и вызывать действия редактора. `keys`: строка нажатий клавиш в формате Vim. `Esc` добавляется автоматически, так что ввод всегда начинается в нормальном режиме. Многомодовые последовательности нужно отправлять одним вызовом (например, `"17GVG"`, а не `"17GV"` и потом `"G"`). Для специальных клавиш используй нотацию Vim (например, `"<CR>"`, `"<C-w>v"`, `"<Tab>"`). Используй этот инструмент для движений в нормальном режиме, выделений в визуальном режиме или последовательностей операторов. Для `Ex`-команд используй `send_command`, а для правки текста — `find_and_replace_buf` или `write_full_buf`: они безопаснее и возвращают структурированный результат. Возвращает `{sent}` с подтверждением, какие клавиши были отправлены. Клавиши отправляются по принципу «забыл и полетело»; ошибки от последующих действий Vim в возвращаемое значение не попадают.

Параметры

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

Заменяет всё содержимое буфера Neovim. Правка происходит в памяти и полностью отменяема: ничего не записывается на диск, пока пользователь не сохранит. file: путь относительно cwd Neovim (как показано в буферах `get_state`). content: полный новый текст для этого буфера. Создаёт буфер, если его ещё нет. Используйте это, когда нужно переписать весь файл. Вместо этого используйте `find_and_replace_buf` для точечных правок, которые сохраняют окружающий контент. Возвращает {total_lines}: количество строк.

Заменяет всё содержимое буфера Neovim. Правка происходит в памяти и полностью отменяема: ничего не записывается на диск, пока пользователь не сохранит. file: путь относительно cwd Neovim (как показано в буферах `get_state`). content: полный новый текст для этого буфера. Создаёт буфер, если его ещё нет. Используйте это, когда нужно переписать весь файл. Вместо этого используйте `find_and_replace_buf` для точечных правок, которые сохраняют окружающий контент. Возвращает {total_lines}: количество строк.

Параметры

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

Другие проверенные MCP-сервера

public-ui/kolibri

public-ui/kolibri

официальный

KoliBri - библиотека атомарных веб-компонентов для доступного HTML. Расширяет стандарт, не привязана к дизайну, подходит для любых проектов. Упрощает создание семантичных, валидных и доступных инте...

TypeScript273
haris-musa/excel-mcp-server

haris-musa/excel-mcp-server

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

Python4041
WayStation-ai/mcp

WayStation-ai/mcp

официальный

MCP сервер WayStation подключает Claude и другие ИИ к Notion, Monday, Jira и десятку сервисов через no-code интеграционный хаб. Поддерживает HTTPS и SSE, настройка через дашборд. Идеален для автоматизации задач и управления проектами без кода.

JavaScript57
InditexTech/mcp-server-simulator-ios-idb

InditexTech/mcp-server-simulator-ios-idb

официальный

MCP сервер для iOS симуляторов: управляй симуляторами, приложениями и UI через естественный язык. Поддерживает создание сессий, установку/запуск приложений, жесты, скриншоты, логи и отладку. Незаменим для iOS-разработчиков и QA.

TypeScript307
Exa MCP Server

Exa MCP Server

официальный

Exa MCP Server даёт AI-ассистентам доступ к веб-поиску, поиску кода и исследованию компаний через Exa. Сервер легко интегрируется в Cursor, VS Code и Claude, предоставляя готовые инструменты для разработчиков. Просто подключите API-ключ и получите актуальные данные.

TypeScript4742
Resend MCP

Resend MCP

официальный

MCP-сервер для подключения AI-агентов к Resend: отправляйте и получайте письма, управляйте контактами, рассылками и доменами. Работает из Claude, Cursor, Claude Code. Доступен удаленный сервер (OAuth) и локальный через npx с API-ключом.

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

Лука Никитин