sncro.net MCP Server
ทางการการดีบักเบราว์เซอร์แบบสดสำหรับผู้ช่วย AI — DOM, คอนโซล, เครือข่ายผ่าน MCP
เอกสาร
sncro-relay
ส่วนประกอบโอเพนซอร์สของ sncro — MCP relay, เอเจนต์ฝั่งเบราว์เซอร์ และปลั๊กอินเฟรมเวิร์กที่ช่วยให้ผู้ช่วยเขียนโค้ด AI ตรวจสอบเบราว์เซอร์ที่ทำงานอยู่ได้
สิ่งที่อยู่ใน repo นี้
| Path | รายละเอียด |
|---|---|
relay/ | แอป FastAPI ที่เปิดเผยเซิร์ฟเวอร์ MCP พร้อมด้วย long-poll endpoints สำหรับ agent.js |
relay/static/agent.js | สคริปต์ฝั่งเบราว์เซอร์ที่ถูกฉีดโดยมิดเดิลแวร์; ส่งข้อมูล console + DOM ไปยัง relay |
middleware/sncro_middleware.py | ปลั๊กอิน FastAPI / Starlette — มิดเดิลแวร์แบบ drop-in สำหรับแอป FastAPI |
middleware/sncro_flask.py | ปลั๊กอิน Flask — มิดเดิลแวร์แบบ drop-in สำหรับแอป Flask |
trysncro/ | try.sncro.net — แอปเดโมที่จงใจทำให้พังเพื่อทดสอบ sncro แบบ end-to-end |
วิธีการทำงาน
┌──────────────┐ 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) → relay ส่งคืน session key 9 หลัก + URL - ผู้ใช้เข้าชม URL ในเบราว์เซอร์ที่แอปของพวกเขาทำงานอยู่ → ยืนยันผ่าน "Allow sncro debugging?"
- ปลั๊กอินวาง cookie, agent.js จะถูกฉีดเข้าไปใน HTML response ที่ตามมาบน origin นั้น
- agent.js ส่งข้อมูลพื้นฐาน (console, errors) และ long-poll สำหรับคำขอตามต้องการ (
query_element,get_page_snapshot, ฯลฯ)
การใช้ sncro
ผู้ใช้ส่วนใหญ่ไม่จำเป็นต้องรัน relay ด้วยตัวเอง — เวอร์ชันโฮสต์ที่ relay.sncro.net เป็นมิตรกับผู้ใช้แบบฟรี ลงทะเบียนโปรเจกต์ของคุณที่ sncro.net และรับ project key ของคุณ
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")
มิดเดิลแวร์ทั้งสองจะทำงานเฉพาะในโหมด debug — ไม่มี overhead ใน production
การมีส่วนร่วม
เราชื่นชอบปลั๊กอินเฟรมเวิร์กใหม่ๆ CONTRIBUTING.md มีข้อกำหนดทั้งหมดสำหรับสิ่งที่ปลั๊กอินต้องทำ — cookies, routes, security headers — พร้อมด้วยเทมเพลตทดสอบ Django, Rails, Express, Next.js, ASP.NET, Go — ยินดีต้อนรับทั้งหมด
รายงานบั๊กและปัญหาด้านความปลอดภัย: ดู SECURITY.md
ใบอนุญาต
MIT ดู LICENSE
แดชบอร์ดที่ sncro.net (การจัดการโปรเจกต์, การเรียกเก็บเงิน, ผู้ดูแลระบบ) อยู่ใน repo แบบ proprietary แยกต่างหาก