# Baton [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/kanumuri9593/Baton  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/baton-4

## Description
Run, hot-reload and screenshot Flutter, web, React Native and native iOS/Android apps.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "baton": {
    "command": "npx",
    "args": ["-y","baton-run"]
  }
}
```

## Documentation

## What the Baton MCP server does

The Baton MCP server manages local application runs for Flutter, Next.js, Vite, React Native and Expo, plus native iOS and Android projects. It can discover project details, identify available targets and devices, start applications, wait for readiness, inspect logs, and capture screenshots. The same runs are available through its local daemon, command-line interface, MCP client, and Baton app.

The main workflow is to inspect a project, boot a simulator or emulator when necessary, run a target, and wait for it to become usable. After an agent edits code, `check_change` applies the appropriate update: hot reload for Flutter, HMR for web and React Native, or a restart for native applications and ordinary processes. Its response focuses on newly observed results, including reload output, compiler or console errors, failed requests, and screenshots.

## How it works

Set `cwd` to the absolute project path when using project discovery tools. `boot_device` can list devices that are available to start or boot a selected simulator or emulator. `run_workflow` supports a workflow containing an API and frontend, while `run_target` starts an individual target. Native projects may need a longer first build, so `wait_for` accepts waits of up to 15 minutes.

Web screenshots are captured in a temporary headless Chrome, Edge, or Brave session, or through the browser specified by `BATON_CHROME`. Viewports can be `phone`, `tablet`, `desktop`, or a custom width and height. Device and simulator captures use the device resolution. A screenshot confirms that an image was captured; Baton does not interact with controls or determine whether the visual result is correct.

## Setup and configuration

Baton requires Node.js 24 or newer and supports macOS, Linux, and Windows. Install the package globally with `npm install -g baton-run`, then run `baton setup` to add its configuration to installed coding agents. The setup command changes only Baton’s configuration entries, creates `.baton-backup` files for changed configurations, and can be repeated. Use `baton setup cursor codex` to limit the targets, `--dry-run` to preview changes, or `--remove` to undo them.

An MCP client that accepts an `mcpServers` configuration can launch the server with `npx -y baton-run`; pinning a version such as `baton-run@0.2.10` is also supported. The repository provides separate setup paths for Claude Code and Codex plugins, as well as install links for VS Code and Cursor. The project is a public developer preview.

## Tools and capabilities

The Baton MCP server exposes 29 tools, including:

- Project and target discovery: `inspect_project`, `list_targets`, `list_devices`, `list_sessions`, and `list_checkouts`.
- Execution and lifecycle control: `boot_device`, `run_target`, `run_workflow`, `wait_for`, `stop_session`, `forget_session`, `hot_reload`, and `hot_restart`.
- Verification and diagnostics: `check_change`, `read_logs`, `session_summary`, `diagnose`, `screenshot`, and `set_debug_flag`.
- Network inspection: `list_network_requests`, `get_network_request`, and `clear_network_requests`.
- Configuration and evidence: `read_launch_config`, `write_launch_config`, `run_proof`, `list_proofs`, and `list_run_history`.
- Dashboard controls: `show_dashboard` and `dashboard_action`.

It can return screenshots for web apps, iOS simulators, and Android devices. For UI flows that require taps or other input, pair it with a browser, device-control, or Playwright MCP server. Agents without MCP support can use the CLI, including `baton check <session> --json` for a machine-readable check result.

_Full upstream README: https://allmcps.com/mcp/baton-4/readme_

