Baton MCP server
io.github.kanumuri9593/baton·v0.2.10·1 starsRun, hot-reload and screenshot Flutter, web, React Native and native iOS/Android apps.
1 stars536 downloads/wk
Reviews
Write oneNobody has reviewed Baton yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Baton tools (29, 6 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
boot_deviceBoot an iOS simulator or Android emulator by name (e.g. "iPhone 17 Pro", "Pixel_8") or id,
check_changeAfter editing code: apply the change and return the evidence in one call, instead of
clear_network_requestsForget every captured request for a session, in the daemon and in the app itself.
dashboard_actionUsed by the Baton card: refresh; catalog (projects and devices for New run); run a project target on a device; boot a device;
diagnoseSearch bounded log and network evidence across projects. Defaults to errors only and 20 findings.
forget_sessionwrite actionRemove stopped sessions from the list. Running sessions must be stopped first. Use all=true to clear every stopped session.
get_network_requestOne captured request in full: headers, timeline events, and optionally the bodies.
hot_reloadHot reload a session, keeping app state. Flutter only. Returns code 0 on success; a non-zero code carries the compile error.
hot_restartHot restart a session, dropping app state. For web dev servers and plain processes this reboots the process.
inspect_projectRead fresh launch sources, configuration problems, nested projects and guidance file paths. Does not run commands or expose environment values. Use before choosing an environment, checkout and device; review screenshot evidence rather than treating capture as visual approval.
list_checkoutsList git checkouts this project can run from: This checkout, linked worktrees, local branches, remotes.
list_devicesList connected devices, simulators and emulators available to Flutter. Use boot_device to start one that is not running.
list_network_requestsList HTTP requests the app has made, newest last. One line each:
list_proofsList past proof bundles, newest first.
list_run_historywrite actionList past and current runs persisted on disk -- survives daemon restarts. Each line is
list_sessionsList running sessions with their status, capabilities, URLs and device.
list_targetsList everything runnable in a project: launch.json configs, package.json dev scripts, Flutter entrypoints.
read_launch_configRead a project's launch.json exactly as written -- comments, formatting and all -- plus the
read_logsRead recent output from a session, newest last. Use filter to grep for an error: it searches
run_proofwrite actionRun proof verification and return a zip with screenshots, network call counts, response times and logs.
run_targetwrite actionStart a target by name. Returns the new session id to use with the other tools. Optional branch or checkout runs from a git worktree without moving the current folder.
run_workflowwrite actionLaunch up to eight project targets in dependency order and wait for each to become ready, in one call. Stops launching dependents on failure. Returns compact session IDs, URLs and errors; retains sessions for debugging. Use browser/device tools next to validate the actual flow. Paths must be absolute.
screenshotCapture the screen of a running session so the visual result of a change can be checked.
session_summaryCheap structured overview -- call this before deciding what to do next.
set_debug_flagToggle a framework debug flag on a running Flutter session, e.g. ext.flutter.debugPaint with {enabled: true} or ext.flutter.timeDilation with {timeDilation: 5}. Values are sent as the strings Flutter expects.
show_dashboardShow a live Baton control panel in the chat: every running app with its simulator or URL, status, CPU and memory;
stop_sessionStop one session, or every running session with all=true.
wait_forBlock until a session reaches a state. Use after run_target or hot_restart instead of polling read_logs.
write_launch_configwrite actionOVERWRITE a project's launch.json with the text given. The whole file is replaced, so read it
Public scan report
scanner v0.1.10 · 2026-10-12 · same rubric, same numbers if you re-run it
- Code scan68 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 1 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Baton compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 90% of 48,273 servers
- Tools
- 29
- the typical server has 7
- Tools that change things
- 21%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,534 servers
- Downloads a week
- 536
- more than 89% of 11,915 servers with a package
What its tools let an agent do: 21 read · 1 create · 3 change · 4 run or deploy
Install Baton in Claude Code, Cursor or VS Code
Runs npx -y baton-run on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add baton -- npx -y baton-run
What the publisher says
From the Baton repository's README, as published. We do not edit it. Read it on GitHub
Baton
Run, hot-reload, check and screenshot your apps from any coding agent. Flutter, Next.js, Vite, React Native / Expo, and native iOS and Android, from a terminal, the Baton app, or any MCP client.
= 24" src="https://img.shields.io/badge/node-%3E%3D24-339933">
Website · Set up your agent · Agent notes · PDF guides · Token study · Changelog
Baton is a local daemon that owns your running apps, with an MCP server and a CLI in front of it. Your agent starts an app on a simulator or in a browser, applies each edit with one check_change call, and gets back only what is new: the reload result, error lines, failed requests and a screenshot, with an OK / NOT OK verdict. You see the same runs in your terminal, in the Baton app, and in the band above Claude Code's prompt, and you can press the same buttons. Baton reads the .vscode/launch.json, package.json, pubspec.yaml, Xcode and Gradle projects you already have.
0.2.10 is a public developer preview. Open an issue with what broke or what you wanted.
Quick start
Requires Node.js 24+ on the machine that runs your apps. macOS, Linux and Windows.
npm install -g baton-run
baton setup # adds Baton to every coding agent installed on this machineRestart your agent (or open a new chat) and ask it to "run the app and show me a screenshot".
Other ways in:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Baton: common questions
- Is Baton MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Baton safety report
- How do I install Baton?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Baton need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Baton maintained?
- The last commit was 21 days ago (2026-10-12). The latest release is v0.2.10.
- What can I use instead of Baton?
- Servers from other publishers that do the same job: Mobilerun MCP server, Mobile MCP server and Reticle MCP server. Compare all Baton alternatives.
- How does Baton compare with other MCP servers?
- safety score 92/100 (higher than 90% of 48,273 servers); tools 29 (the typical server has 7); tools that change things 21% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Baton
Same job from other publishers: the closest match first, then the best rated.
- MobilerunLet AI agents control Android and iOS devices on Mobilerun Cloud: screen, input, apps, workflows.not reviewedEstablishedA
- MobileMCP server for iOS and Android Mobile Development, Automation and Testingnot reviewedWidely usedA
- ReticleVerify a running web app from the inside over MCP: look, act, observe, assert. No screenshots.not reviewedEstablishedB
- MCP Appium - Mobile Development and Automation ServerMCP server for Appium mobile automation on iOS and Android devices with test creation tools.not reviewedEstablishedA
- Webcomponents ReactMCP server for UI5 Web Components for React - Developer documentation and API assistancenot reviewedEstablishedA