MCP
Панель умеет отдавать свои данные кодинг-агентам (OpenCode, Claude Code и любой MCP-клиент) через MCP-сервер на твоём dev-сервере. Роут выключен по умолчанию — включай осознанно:
vkmaDevtools({ mcp: true }); // или vkmaDevtoolsRsbuild({ mcp: true })Эндпоинт — Streamable HTTP по адресу <base>__mcp, по умолчанию http://localhost:5173/__vkma/__mcp. Источник данных тот же, что у панели: агенты видят ровно то, что видишь ты.
Режимы доверия
Заголовок раздела «Режимы доверия»Включение mcp: true даёт нулевую конфигурацию с двумя гейтами:
- Origin обязателен. Запрос без заголовка
Originполучает 403; с Origin — он должен быть loopback (localhost,127.0.0.1,::1). Это защита от DNS-rebinding: не-браузерный MCP-клиент обязан послать Origin явно. - Пир — loopback. Соединение должно прийти с твоей машины (адрес проверяется на сервере, подделать его нельзя).
Для туннелей и LAN расширь доверие объектом вместо true:
vkmaDevtools({ mcp: { allowedOrigins: ["https://my-tunnel.example"], // принять ещё и этот Origin authorization: "Bearer <твой-токен>", // проверить личность вызывающего },});allowedOrigins— список принимаемых Origin сверх loopback;falseвыключает проверку Origin целиком (не рекомендуется).authorization— bearer-токен (или callback), проверяется после origin-гейта: неверный кредшел — 401 сWWW-Authenticate: Bearer. Аутентифицированный вызывающий освобождается от loopback-ограничения.
Поля path (по умолчанию __mcp) меняет сегмент роута, instructions добавляет агенту подсказку в initialize.
Подключение агента
Заголовок раздела «Подключение агента»В конфиг MCP-клиента добавь сервер с заголовками; Authorization нужен только если задан токен:
{ "mcpServers": { "vkma": { "url": "http://localhost:5173/__vkma/__mcp", "headers": { "Origin": "http://localhost:5173", "Authorization": "Bearer <твой-токен>" } } }}Инструменты
Заголовок раздела «Инструменты»vkma:mcp-state(read). Подключённые клиенты (платформа, URL, online) и последние 500 событий моста, новые в конце. Полезные нагрузки санируются до plain JSON.vkma:mcp-execute(action). Выполняет метод VK Bridge на клиенте и ждёт результат round-trip. Вход:{ "clientId": "…", "name": "VKWebAppGetUserInfo", "params": {} }—clientIdиnameобязательны, id бери изvkma:mcp-state. Мутирует состояние работающего приложения.
Типовой сценарий: агент читает vkma:mcp-state, находит нужного клиента и воспроизводит или проверяет вызовы через vkma:mcp-execute, не открывая браузер.
В режиме hub эндпоинт агрегируется в /__devtools/__mcp — опция mcp игнорируется.
- Панель — те же данные для человека.
- Vite-плагин и Rsbuild-адаптер — установка.