sncro

io.github.scottconfusedgorillaPublished by GitHub account scottconfusedgorillav0.9.4Updated Oct 27, 2026

Live browser debugging for AI assistants — DOM, console, network via MCP.

VerifiedStreamable HTTPWeb executableBrowser AutomationDeveloper Tools

Overview

AI-generated overview

Remote MCP relay that lets an AI assistant inspect a live browser session — DOM, console output and network activity — while debugging a web app.

What you can do
  • Create a debugging session and get a session key plus a URL to open in the browser
  • Inspect the live page: query elements and pull page snapshots from the injected browser agent
  • Read console output and errors pushed from the browser
  • Work alongside FastAPI or Flask apps that have the sncro middleware installed
When to use it
Useful when an assistant is helping debug a running web app and needs to see what the browser actually renders, logs or requests, rather than guessing from source code. It fits FastAPI or Flask projects in debug mode that can add the sncro middleware.
Requirements
A remote MCP endpoint at relay.sncro.net (a self-hosted relay is also possible). A project registered at sncro.net with a project key, and the sncro middleware added to a FastAPI or Flask app running in debug mode. The user must open the session URL in the browser and confirm the debugging prompt.
Before you install
The browser agent pushes console and DOM data from the user's app to the relay, so page content and logs leave the local machine. The middleware injects a script and sets a cookie on the app's origin, and should only be active in debug mode. A project key is required; keep it private.

Installation

In SourceWeft

  1. Open sncro in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.scottconfusedgorilla%2Fsncro/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "sncro": {
      "type": "http",
      "url": "https://relay.sncro.net/tools/mcp"
    }
  }
}

README

sncro-relay

Open-source components of sncro — the MCP relay, the browser-side agent, and the framework plugins that let AI coding assistants inspect a live browser.

What this repo contains

PathWhat
relay/FastAPI app that exposes an MCP server plus long-poll endpoints for agent.js
relay/static/agent.jsBrowser-side script injected by the middleware; pushes console + DOM data to the relay
middleware/sncro_middleware.pyFastAPI / Starlette plugin — drop-in middleware for FastAPI apps
middleware/sncro_flask.pyFlask plugin — drop-in middleware for Flask apps
trysncro/try.sncro.net — a deliberately-broken demo app for exercising sncro end-to-end

How it works

 ┌──────────────┐    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 calls create_session (MCP tool) → relay returns a 9-digit session key + URL
  2. User visits the URL in the browser where their app is running → confirms via "Allow sncro debugging?"
  3. The plugin drops a cookie, agent.js is injected into subsequent HTML responses on that origin
  4. agent.js pushes baseline data (console, errors) and long-polls for on-demand queries (query_element, get_page_snapshot, etc.)

Using sncro

Most users don't need to run the relay yourself — the hosted version at relay.sncro.net is free-tier friendly. Register your project at sncro.net and grab your project key.

FastAPI: drop middleware/sncro_middleware.py into your project, then:

python
from middleware.sncro_middleware import SncroMiddleware, sncro_routes
app = FastAPI(debug=True)  # sncro only loads when debug=Trueif app.debug:    app.include_router(sncro_routes)    app.add_middleware(SncroMiddleware, relay_url="https://relay.sncro.net")

Flask: drop middleware/sncro_flask.py into your project, then:

python
from sncro_flask import init_sncro
app = Flask(__name__)if app.debug:    init_sncro(app, relay_url="https://relay.sncro.net")

Both middlewares only activate in debug mode — zero overhead in production.

Contributing

We love new framework plugins. CONTRIBUTING.md has the full spec for what a plugin must do — cookies, routes, security headers — plus the test template. Django, Rails, Express, Next.js, ASP.NET, Go — all welcome.

Bug reports and security issues: see SECURITY.md.

License

MIT. See LICENSE.

The dashboard at sncro.net (project management, billing, admin) lives in a separate proprietary repo.

Source: README.md at commit 9576cd2

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.9.4LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts