From d80752d03447370a0e16b7023dbb97dbac6eaee6 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Sat, 4 Jul 2026 14:43:46 +0000 Subject: [PATCH] feat(m3.6): local MCP server (tron mcp) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds `tron mcp`, a local Model Context Protocol server over stdio (PRD §14), exposing TronBrowser's browser + analyze tools to any MCP host. Dependency-free protocol layer (packages/sdk/src/mcp) — a minimal JSON-RPC 2.0 server (initialize/tools/list/tools/call/ping) so the shipped runtime stays self-contained (no @modelcontextprotocol/sdk). Tools wrap the SDK Browser/Page, so M3.1–M3.5 are reused rather than reimplemented. Tools: browser_open/snapshot/click/fill/type/press/select/scroll/wait/extract/ screenshot/tabs/close, plus the AI-assisted browser_analyze (non-mutating dry-run), browser_step, and browser_run_task. Mutating tools return a fresh snapshot; screenshot returns image content. The managed session launches lazily on first tool use and tears down on browser_close. install.sh routes `tron mcp` via tron-node.mjs with TRON_SESSION_BIN; the server ships in the existing sdk/ payload. Tests (+11): protocol (initialize/list/call/ping/unknown/notification), all tools against a fake page (mutations return snapshots, screenshot image, analyze dry-run, close), and the newline-delimited stdio transport. Verified the full server end-to-end over stdio (initialize -> tools/list -> browser_open -> browser_close) against a WS CDP stub session. Full workspace suite green. Co-Authored-By: Claude Opus 4.8 --- apps/web/public/install.sh | 9 ++ docs/mcp.md | 67 ++++++++++++ packages/sdk/src/mcp-bin.ts | 25 +++++ packages/sdk/src/mcp/index.ts | 8 ++ packages/sdk/src/mcp/mcp.test.ts | 128 ++++++++++++++++++++++ packages/sdk/src/mcp/protocol.ts | 104 ++++++++++++++++++ packages/sdk/src/mcp/server.ts | 42 +++++++ packages/sdk/src/mcp/session.ts | 66 +++++++++++ packages/sdk/src/mcp/tools.ts | 181 +++++++++++++++++++++++++++++++ 9 files changed, 630 insertions(+) create mode 100644 docs/mcp.md create mode 100644 packages/sdk/src/mcp-bin.ts create mode 100644 packages/sdk/src/mcp/index.ts create mode 100644 packages/sdk/src/mcp/mcp.test.ts create mode 100644 packages/sdk/src/mcp/protocol.ts create mode 100644 packages/sdk/src/mcp/server.ts create mode 100644 packages/sdk/src/mcp/session.ts create mode 100644 packages/sdk/src/mcp/tools.ts diff --git a/apps/web/public/install.sh b/apps/web/public/install.sh index ecf2d94..e842fd1 100755 --- a/apps/web/public/install.sh +++ b/apps/web/public/install.sh @@ -92,6 +92,7 @@ Usage: tron headless One-shot: --snapshot | --screenshot

| --extract tron run