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. 插件设置一个 cookie,agent.js 会被注入到该源后续的 HTML 响应中

  4. agent.js 推送基准数据(控制台、错误)并长轮询按需查询(query_elementget_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 包含了插件必须执行的操作的完整规范(cookie、路由、安全标头)以及测试模板。欢迎 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