sncro.net MCP Server
官方为AI助手提供实时浏览器调试——通过MCP操作DOM、控制台和网络。
文档
sncro-relay
sncro 的开源组件 — 包含 MCP 中继、浏览器端代理以及框架插件,让 AI 编程助手能够检查实时浏览器。
本仓库包含的内容
| 路径 | 说明 |
|---|---|
relay/ | FastAPI 应用,对外暴露 MCP 服务器以及供 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) │
└─────────────┘
- Claude 调用
create_session(MCP 工具)→ 中继返回一个 9 位数的会话密钥和 URL - 用户在运行其应用的浏览器中访问该 URL → 通过“允许 sncro 调试?”进行确认
- 插件设置一个 cookie,后续该源下的 HTML 响应中会注入 agent.js
- 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 包含了插件必须实现功能的完整规范 — cookie、路由、安全标头 — 以及测试模板。Django、Rails、Express、Next.js、ASP.NET、Go — 全部欢迎。
错误报告和安全问题:请参阅 SECURITY.md。
许可证
MIT。请参阅 LICENSE。
sncro.net 上的仪表板(项目管理、计费、管理)位于一个单独的私有仓库中。