# Periscope

Связывает агента с живым Neovim: тот же LSP, форматтеры, линтеры и DAP, что вы настроили сами. Один источник конфигурации вместо копий.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed
- Автор: qompassai
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/qompassai/periscope
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/mcp/periscope

## Что делает

Periscope — один бинарник на Rust. Со стороны клиента он общается по MCP через stdio, со стороны редактора — по msgpack-RPC. По умолчанию сервер поднимает собственный `nvim --headless --listen <tmp socket>` с рабочим каталогом проекта. Ваш конфиг загружается так же, как при обычном запуске, а интерактивный редактор брокер не трогает. Выполнение проектного конфига отключено через `--cmd "set noexrc"`. Режим `--attach <socket>` цепляется к уже запущенному Neovim: закрывать или трогать чужой процесс сервер не станет.

Инструменты — небольшие Lua-программы, которые исполняются внутри редактора через `nvim_exec_lua` и работают только с нативными API. Настройки из ваших `lsp/*.lua` наследуются целиком, включая намеренные решения вроде отключённых нативных диагностик rust-analyzer в пользу bacon-ls. Чтение: `broker_status`, `get_hover`, `get_definition`, `get_references`, `get_diagnostics`, `get_document_symbols`, `list_servers`, `list_formatters`, `list_linters`, `list_dap`. Две команды исполнения — `run_format` и `run_lint` — гоняют пайплайны конфига. Форматирование меняет буфер брокерского редактора и возвращает текст: на диск ничего не пишется, `written` всегда `false`. Линт только читает.

Ещё четыре инструмента `attention_*` держат доску координации между агентами по протоколу MATE. Агент публикует упорядоченный фокус, читает чужой, спрашивает оценку совпадения или решение о согласовании.

## Требования
- Нужно: готовый бинарник из релизов репозитория

## Установка

### Claude Code (родная платформа)

**Установка**
- Команды запуска нет в реестре MCP — смотрите README репозитория

## Когда брать
- запросить у агента диагностики из тех же линтеров, что видит редактор
- прогнать форматирование файла пайплайном конфига Neovim без записи на диск
- получить список LSP-серверов и модулей DAP прямо из дерева конфигурации
- согласовать фокус нескольких агентов на одних и тех же целях
- подключиться к уже запущенному Neovim, не поднимая второй

## Примеры запросов агенту
- Покажи диагностики текущего буфера через `get_diagnostics`
- Отформатируй файл через `run_format` и верни текст, на диск не пиши
- Опубликуй мой фокус и запроси решение по партнёрскому агенту через `attention_decide`

## Похожие
- [golang-gopls](https://affpapa.org/nevibecode/skills/golang-gopls.md) — скилл · 11000 установок
- [rust-symbol-analyzer](https://affpapa.org/nevibecode/skills/rust-symbol-analyzer.md) — скилл · 3100 установок
- [platform-lsp-integrate](https://affpapa.org/nevibecode/skills/platform-lsp-integrate.md) — скилл · 2600 установок
- [lsp-code-analysis](https://affpapa.org/nevibecode/skills/lsp-code-analysis.md) — скилл · 920 установок
- [periscope-mcp](https://affpapa.org/nevibecode/mcp/periscope-mcp.md) — MCP-сервер · ★ 10
- [surrealql-functions](https://affpapa.org/nevibecode/skills/surrealql-functions.md) — скилл · 413 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
