VisBug MCP Bridge
This server bridges VisBug visual edits made in Chrome on localhost and the Cursor AI editor, managing captured CSS/DOM mutations for code patching. You can:
Retrieve visual changes (via
get_changes) with details like CSS selector, property, old/new values, HTML tag, and page URL, optionally filtering by change type (style, attribute, text, node-added, node-removed).Mark changes as applied (via
apply_changes) in the local buffer (~/.visbug-mcp/changes.json) by specifying indices or marking all pending changes—this does not modify project files; actual source editing is done manually or by the Cursor agent.Clear all captured changes (via
clear_changes) to reset the buffer for the current project.
Captures visual CSS and text edits made in VisBug on localhost and applies them as structured CSS diffs to project files.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@VisBug MCP Bridgeapply my latest VisBug edits"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Что это
Recorder-only (модель mambari/visbug-mcp): расширение не пишет в файлы проекта. VisBug меняет DOM на странице → bridge сохраняет сырые мутации → вы копируете буфер → Cursor вносит правки в код по контракту.
Было (до v0.13) | Сейчас (v0.19) |
auto-apply, Actions v2, undo | Удалено (recorder-only) |
«Начать запись» / «Стоп» | Не нужно — live-захват при drag |
Только inline | + |
Длинный селектор | Короткий селектор + write-recipes v0.26 ( |
| Не нужно — вставка буфера в чат |
Related MCP server: MC Figma Bridge
Архитектура
Chrome (VisBug + расширение)
│ WebSocket ws://127.0.0.1:4844
▼
┌─────────────────┐ ~/.visbug-mcp/projects/<id>/changes.json
│ ws-daemon.js │ ◄──────────────────────────────► src/server.js (MCP stdio)
│ (фон) │ └─ опционально в Cursor
└─────────────────┘src/ws-daemon.js— WebSocket на127.0.0.1:4844. Принимает live-мутации от content-script, дедуплирует, пишет в per-project store.src/server.js— MCP (stdio):get_changes/apply_changes/clear_changes. Запись в файлы не выполняет.extension/— Chrome MV3: observer наlocalhost, popup «Скопировать» / «Очистить», красные направляющие с px.
Безопасность
WebSocket только
127.0.0.1— данные не уходят в интернетStore:
~/.visbug-mcp/projects/<projectId>/changes.jsonна вашем ПКВнешних HTTP-запросов нет
Установка
Полная инструкция: docs/INSTALL.ru.md
В Cursor: /visbug-mcp-start
git clone https://github.com/samsebeingener/visbug-mcp-ru.git
cd visbug-mcp-ru
npm install
npm run setupnpm run setup регистрирует workspace + localhost origin, запускает daemon и копирует в проект:
команды
/visbug-mcp-start,/visbug-mcp-update;rule
.cursor/rules/visbug-buffer-apply.mdc— подсказка агенту при вставке буфера.
Расширения Chrome
VisBug (официальный)
visbug-mcp —
chrome://extensions→ режим разработчика → Загрузить распакованное → папкаextension/в клоне репо
Демон (если setup не запустил)
Windows:
powershell -ExecutionPolicy Bypass -File scripts/start-ws-daemon.ps1macOS / Linux:
npm run daemon
# или pm2 start src/ws-daemon.js --name visbug-wsMCP в Cursor (опционально)
npm run setup добавляет запись в ~/.cursor/mcp.json. Для записи VisBug MCP не обязателен — достаточно popup «Скопировать».
После правок — Reload Window в Cursor.
Обновление
npm run updategit pull, npm install, перезапуск daemon, копирование недостающих команд и rule во все workspace из config (без перезаписи существующих).
Как пользоваться
Рабочий цикл (v0.13)
Запустите сайт на
http://localhost:…, откройте в Chrome.Убедитесь, что origin зарегистрирован (
/visbug-mcp-startилиnpm run setup).Popup: зелёная точка = daemon online.
Правьте layout в VisBug (красные направляющие с px — в расширении).
Popup → «Скопировать правки» → вставьте в чат Cursor.
Агент правит исходники (см. apply-buffer-contract).
Popup → «Очистить правки» (опционально).
Отдельная команда для apply не нужна.
Как Cursor понимает буфер
Слой | Где |
Футер в буфере | Добавляется при «Скопировать» (путь к контракту) |
Rule |
|
Контракт |
Кратко для агента: контейнер vs ребёнок, фильтр шума VisBug, bake left/top/transform, не копировать left 1:1 в transform.
Несколько проектов
Bridge сопоставляет точный origin с workspace. Пример: localhost:3001 → Next, localhost:3002 → static HTML. Незарегистрированный origin — запись блокируется.
Popup
Индикатор | Значение |
🟢 Bridge подключён | Можно править в VisBug |
🔴 Daemon не запущен |
|
| Накопленные мутации |
Кнопка | Действие |
Скопировать правки | Буфер + футер для Cursor |
Очистить правки | Сброс store текущего проекта |
MCP-инструменты (опционально)
Инструмент | Назначение |
| Текст буфера (как в popup) |
| Пометить индексы как применённые в store (после ручного patch в коде) |
| Очистить буфер |
Пример строки в буфере:
[0] section.hero-section … > h1… → стиль: left = -163px (было: не задано)Техническое поведение
Live-захват + layout-delta (v0.14)
Content-script пишет inline-мутации VisBug. При отпускании drag дополнительно:
[#method-quote] → смещение: Δx=0px Δy=-65px (viewport 1440×900)Δ — разница getBoundingClientRect() до/после drag; не зависит от того, писал ли VisBug только top без left. Агент: apply-buffer-contract.md.
Auto-stamp (v0.26)
Если у элемента, получившего записанную мутацию, нет ни id, ни data-vb*, content-script сам ставит ему data-visbug-id="vb-<tag>-<NN>" (например vb-div-01) — атрибут вне фильтра обсервера, петли нет. В буфере появляется секция stamps: (vb-div-01 → исходный DOM-path), рецепт идёт на стабильный #vb-div-01 с confidence high и warning stamp-pending. При первом apply агент обязан перенести этот id в исходный HTML (и использовать #vb-* в CSS) — с этого момента цель стабильна навсегда, без ручной разметки. Подробности: §11 apply-buffer-contract.md.
Store (v2)
~/.visbug-mcp/projects/<projectId>/changes.json:
{
"version": 2,
"workspace": "/abs/path/to/site",
"changes": [ … ]
}Парсер и шум
src/parser.js — дедуп по selector|type|property, фильтр overlay #visbug-mcp-guides-root и UI VisBug. Сырые left/top/transform не переводятся автоматически — bake делает агент по контракту.
Полезные команды
npm run health # daemon, extension version, config
npm run setup # первичная настройка + rule в workspace
npm run update # git pull + sync commands/rule
npm run daemon # foreground daemon
npm run daemon:watch # разработка с --watch
npm test # unit-тестыСтруктура проекта
visbug-mcp-ru/
├── src/
│ ├── ws-daemon.js # WebSocket, буфер
│ ├── server.js # MCP stdio
│ ├── parser.js # мутации → changes, формат буфера
│ ├── project-store.js # per-project store v2
│ └── config.js
├── extension/ # Chrome: content-script, popup, guides
├── shared/
│ └── apply-buffer-contract.md # контракт для Cursor-агента
├── prompts/
│ └── buffer-for-cursor.md
├── .cursor/
│ ├── commands/ # visbug-mcp-start, visbug-mcp-update
│ └── rules/ # visbug-buffer-apply.mdc → копируется в workspace
├── scripts/
│ ├── setup.mjs
│ ├── update.mjs
│ ├── sync-cursor-artifacts.mjs
│ └── start-ws-daemon.ps1
├── docs/
│ ├── INSTALL.ru.md
│ └── archive/ # старые спеки auto-apply (не актуальны)
└── test/Roadmap / архив
Идеи auto-apply, layout-solver, data-visbug-src — в docs/archive/ и ROADMAP. В v0.13 не реализованы.
Что на русском
Popup расширения
Строки буфера («стиль», «было», «текст»)
Описания MCP-инструментов
Лицензия и upstream
Разработка Никита Куликов на базе идей mambari/visbug-mcp.
VisBug — GoogleChromeLabs/ProjectVisBug.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceBridges Chrome DevTools with Cursor AI to enable debugging and monitoring, including console logs, network requests, screenshots, and element inspection.Last updated494MIT
- FlicenseBqualityCmaintenanceEnables Cursor (MCP client) to interact with an active Figma document through a local WebSocket bridge and Figma plugin, providing tools to read and modify canvas elements like text and frames.Last updated6
- Alicense-qualityAmaintenancePlaywright-powered browser automation and debugging for VS Code and Cursor via the Model Context Protocol (MCP).Last updated53MIT
- Alicense-qualityCmaintenanceMCP bridge from OpenCode to Cursor agent CLI, enabling code review, debugging, and planning via Cursor cloud.Last updated38MIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
MCP for Yandex Direct: manage ad campaigns & analytics from Claude or ChatGPT
MCP-native collaborative markdown editor with real-time AI document editing
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/samsebeingener/visbug-mcp-ru'
If you have feedback or need assistance with the MCP directory API, please join our Discord server