sncro.net MCP Server

официальный

Живая отладка браузера для ИИ-ассистентов — DOM, консоль, сеть через MCP.

Документация

sncro-relay

Компоненты с открытым исходным кодом sncro — MCP-ретранслятор, браузерный агент и плагины фреймворка, позволяющие AI-ассистентам для написания кода инспектировать работающий браузер.

Содержимое репозитория

ПутьОписание
relay/Приложение FastAPI, предоставляющее сервер MCP и конечные точки long-poll для agent.js
relay/static/agent.jsСкрипт на стороне браузера, внедряемый промежуточным ПО; отправляет данные консоли и DOM ретранслятору
middleware/sncro_middleware.pyПлагин FastAPI / Starlette — встраиваемое промежуточное ПО для приложений FastAPI
middleware/sncro_flask.pyПлагин Flask — встраиваемое промежуточное ПО для приложений Flask
trysncro/try.sncro.net — намеренно сломанное демо-приложение для сквозного тестирования sncro

Как это работает

 ┌──────────────┐    MCP     ┌──────────┐   long-poll   ┌─────────────┐
 │ Claude Code  │──tools────▶│  relay   │◀──────────────│  agent.js   │
 │ (or other    │            │ (relay/) │   snapshots   │ (injected   │
 │  MCP client) │◀──results──│          │──────────────▶│  by plugin) │
 └──────────────┘            └──────────┘               └─────────────┘
                                                              ▲
                                                              │ same-origin
                                                              │ cookies
                                                       ┌─────────────┐
                                                       │  your app   │
                                                       │ (plugin is  │
                                                       │  installed) │
                                                       └─────────────┘
  1. Claude вызывает create_session (инструмент MCP) → ретранслятор возвращает 9-значный ключ сессии + URL
  2. Пользователь переходит по URL в браузере, где запущено его приложение → подтверждает через «Разрешить отладку sncro?»
  3. Плагин устанавливает cookie, agent.js внедряется в последующие HTML-ответы для этого источника
  4. agent.js отправляет базовые данные (консоль, ошибки) и выполняет long-poll для запросов по требованию (query_element, get_page_snapshot и т. д.)

Использование sncro

Большинству пользователей не нужно запускать ретранслятор самостоятельно — размещённая версия на relay.sncro.net подходит для бесплатного использования. Зарегистрируйте свой проект на sncro.net и получите ключ проекта.

FastAPI: добавьте middleware/sncro_middleware.py в свой проект, затем:

from middleware.sncro_middleware import SncroMiddleware, sncro_routes

app = FastAPI(debug=True)  # sncro only loads when debug=True
if app.debug:
    app.include_router(sncro_routes)
    app.add_middleware(SncroMiddleware, relay_url="https://relay.sncro.net")

Flask: добавьте middleware/sncro_flask.py в свой проект, затем:

from sncro_flask import init_sncro

app = Flask(__name__)
if app.debug:
    init_sncro(app, relay_url="https://relay.sncro.net")

Оба промежуточных ПО активируются только в режиме отладки — нулевые накладные расходы в production.

Участие в разработке

Мы приветствуем новые плагины для фреймворков. В CONTRIBUTING.md содержится полная спецификация того, что должен делать плагин — cookies, маршруты, заголовки безопасности — а также шаблон для тестирования. Django, Rails, Express, Next.js, ASP.NET, Go — все приветствуются.

Отчёты об ошибках и вопросы безопасности: смотрите SECURITY.md.

Лицензия

MIT. Смотрите LICENSE.

Панель управления на sncro.net (управление проектами, биллинг, администрирование) находится в отдельном проприетарном репозитории.