MCP & Agent Tools

Why SootSim does not ship an MCP server — the sootsim CLI is the agent integration surface, with multi-agent claim leases, a persistent bridge daemon, agent-aware auto-settling, and React Native-aware describe/find/diagnose that a thin MCP wrapper can't match. How to wire Claude Code, Claude Desktop, Cursor, and Codex.

SootSim does not ship an MCP (Model Context Protocol) server, and that is a deliberate choice. The sootsim CLI is the agent integration surface, and it does more than an MCP wrapper around the same bridge could.

Every MCP-capable agent — Claude Code, Claude Desktop, Cursor, Codex — can already run shell commands. That means sootsim works in all of them today with zero MCP configuration.

Why the CLI instead of MCP

An MCP server for SootSim would be a thin RPC layer over the same bridge the CLI already speaks. The CLI carries capabilities that layer would have to re-implement — and most of them only make sense as long-lived process state, which an MCP tool call does not have:

  • Multi-agent isolation. sootsim claim takes an exclusive lease on a sim, so several agents can share one machine and one daemon without stealing each other’s taps. See sootsim claim.
  • A persistent bridge daemon. The daemon keeps sims attached to their project by bundle URL across commands and across sessions. An MCP server would be one more process to supervise.
  • Agent-aware auto-settling. Every command waits for the runtime to go idle before returning — no manual sleep, no screenshot-poll loops. The settle logic understands React Native’s commit/layout/animation phases.
  • React Native-aware inspection. describe, find, what-happened, and diagnose report RN semantics — screens, keyboards, toasts, alerts, responder transfers — not just a DOM dump.
  • A visible cursor and recordings. sootsim do animates a real cursor into the canvas and record captures it, so you can watch a remote or CI agent work.
  • Composable in the shell. Pipe output, gate CI on sootsim assert exit codes, script flows — all without an extra protocol.

If a future agent host can only speak MCP and cannot run a shell, that is the moment to add a server. Until then, shipping one would mean two integration paths to keep in sync — and one path, no fallbacks, is the rule.

Wiring an agent

There is nothing to configure. Make sure the CLI is installed and give the agent a sim to drive.

terminal

npm i -g sootsim
sootsim open 8081 # or your usual dev flow
sootsim list # confirm a sim is connected

From there the agent runs sootsim commands directly. See Agents → Setup and Agents → CLI Use for the full workflow.

Teach the agent with skills

The fastest way to get an agent productive is to drop in a SootSim skill — a markdown file the agent discovers automatically and uses to learn the CLI:

terminal

# generic — works in any agent-aware repo
npx skills add tamagui/soot --skill sootsim-debug
# or from a soot checkout
bun sootsim skills .claude/skills

Available: sootsim-debug, sootsim-a11y, sootsim-perf, sootsim-visual, sootsim-test-flow, sootsim-maestro, sootsim-detox. See the Agent Skills API and sootsim skills.

What’s next

Ready to build?

Run your React Native app in the browser. No simulators, no native toolchain, no waiting.

npm i -g sootsim