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