Skip to main content
Glama

sncro-relay

sncro의 오픈 소스 구성 요소 — MCP 릴레이, 브라우저 측 에이전트, 그리고 AI 코딩 어시스턴트가 라이브 브라우저를 검사할 수 있게 해주는 프레임워크 플러그인입니다.

이 저장소의 구성

경로

내용

relay/

MCP 서버와 agent.js를 위한 롱폴링 엔드포인트를 노출하는 FastAPI 앱

relay/static/agent.js

미들웨어에 의해 주입되는 브라우저 측 스크립트; 콘솔 및 DOM 데이터를 릴레이로 전송

middleware/sncro_middleware.py

FastAPI / Starlette 플러그인 — FastAPI 앱을 위한 드롭인 미들웨어

middleware/sncro_flask.py

Flask 플러그인 — Flask 앱을 위한 드롭인 미들웨어

trysncro/

try.sncro.net — sncro를 엔드투엔드로 테스트하기 위한 의도적으로 고장 난 데모 앱

Related MCP server: agnt

작동 원리

 ┌──────────────┐    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. 플러그인이 쿠키를 설정하고, 해당 오리진의 후속 HTML 응답에 agent.js가 주입됨

  4. agent.js가 기본 데이터(콘솔, 오류)를 전송하고 온디맨드 쿼리(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")

두 미들웨어 모두 디버그 모드에서만 활성화되므로 프로덕션 환경에서는 오버헤드가 전혀 없습니다.

기여하기

새로운 프레임워크 플러그인을 환영합니다. CONTRIBUTING.md에는 플러그인이 수행해야 할 작업(쿠키, 라우트, 보안 헤더)과 테스트 템플릿에 대한 전체 사양이 포함되어 있습니다. Django, Rails, Express, Next.js, ASP.NET, Go 등 무엇이든 환영합니다.

버그 보고 및 보안 문제는 SECURITY.md를 참조하세요.

라이선스

MIT. LICENSE를 참조하세요.

sncro.net의 대시보드(프로젝트 관리, 결제, 관리자)는 별도의 독점 저장소에 있습니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to debug frontend applications by providing direct access to browser DevTools, React state, DOM inspection, and runtime debugging capabilities. Bridges the gap between AI and complex web applications for autonomous debugging and issue resolution.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Bridges AI coding agents with the browser to provide visual debugging, real-time error capture, screenshot capabilities, DOM inspection, and interactive wireframing through a reverse proxy with injected developer tools.
    34 npm
    21
    Apache 2.0