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를 엔드투엔드로 테스트하기 위한 의도적으로 고장 난 데모 앱

작동 원리

 ┌──────────────┐    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의 대시보드(프로젝트 관리, 결제, 관리자)는 별도의 독점 저장소에 있습니다.

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/scottconfusedgorilla/sncro-relay'

If you have feedback or need assistance with the MCP directory API, please join our Discord server