patrol_mcp 0.2.0 copy "patrol_mcp: ^0.2.0" to clipboard
patrol_mcp: ^0.2.0 copied to clipboard

An MCP server that empowers AI assistants to control, automate, and monitor interactive Patrol development sessions in Flutter.

Patrol MCP #

patrol on pub.dev patrol_cli on pub.dev patrol_finders on pub.dev patrol_mcp on pub.dev patrol_discord code style patrol_github_stars patrol_x

MCP server that lets AI agents run and manage Patrol tests in Flutter projects.

Patrol promotional graphics

Learn more about Patrol: #

How can we help you: #

Patrol is an open-source framework created and maintained by LeanCode. However, if your company wants to scale fast and accelerate Patrol's adoption, we offer a set of value-added services on top of the core framework.

You can find out more below:

Features #

  • Run Patrol tests and block until completion.
  • Keep and reuse a develop session for hot-restart workflows.
  • Stream logs and expose session status.
  • Capture screenshots with auto-detected platform.
  • Read native UI tree during active sessions.

Version Compatibility #

For the version compatibility table between patrol_mcp and patrol_cli, see the Patrol MCP documentation.

Installation #

Tip

AI-assisted setup: Ask your AI agent to install and configure Patrol MCP in this project. Paste the raw README into the conversation for full context.

Important

This README focuses on project-local MCP setup.

By default, this setup assumes your Flutter project's pubspec.yaml is in the repository root. If your app lives in a subdirectory, set PROJECT_ROOT accordingly (for example ./app).

  1. Add patrol_mcp as a dev dependency in your Flutter project:

    dart pub add --dev patrol_mcp
    

    Or add it manually to your pubspec.yaml with the latest version from pub.dev.

  2. Add the config for your editor. The server is launched directly with dart run patrol_mcp — no wrapper script or chmod needed.

Most editors use the same entry — only the config file location differs. Add this block to your editor's MCP config file:

{
  "mcpServers": {
    "patrol": {
      "command": "dart",
      "args": ["run", "patrol_mcp"],
      "env": {
        "PROJECT_ROOT": ".",
        "PATROL_FLAGS": "",
        "SHOW_TERMINAL": "false"
      }
    }
  }
}
Editor Config file Notes
Claude Code .mcp.json (project root) Auto-discovered; you'll be prompted to approve on first use.
Cursor .cursor/mcp.json Enable MCP under Settings → Features → MCP.
Gemini CLI .gemini/settings.json mcpServers lives alongside other keys in this file.
Google Antigravity Global — open via MCP store → Manage MCP Servers → View raw config Per-workspace config isn't supported.
GitHub Copilot (CLI) .mcp.json (project root), or ~/.copilot/mcp-config.json (global) Then run /mcp to confirm patrol is listed.
GitHub Copilot — VS Code extension (different format)

The VS Code extension uses .vscode/mcp.json with a servers key (not mcpServers) and an explicit "type": "stdio":

{
  "servers": {
    "patrol": {
      "type": "stdio",
      "command": "dart",
      "args": ["run", "patrol_mcp"],
      "env": {
        "PROJECT_ROOT": ".",
        "PATROL_FLAGS": "",
        "SHOW_TERMINAL": "false"
      }
    }
  }
}

See VS Code's MCP docs for starting the server.

Note

Upgrading from the run-patrol wrapper? It still works — you can delete the script and switch to the config above.

Note

Using FVM? If your project uses FVM, develop sessions use the pinned Flutter automatically. To override, set PATROL_FLUTTER_COMMAND in the env above. This auto-detects the develop Flutter, not the Dart that runs the server — so if dart run patrol_mcp fails with a version-resolution error under FVM, run the server under the pinned SDK too: "command": "fvm", "args": ["dart", "run", "patrol_mcp"].

Environment Variables #

  • PROJECT_ROOT (recommended): Flutter project directory containing pubspec.yaml. If omitted, patrol_mcp uses the current working directory.
  • PATROL_FLAGS: Extra patrol develop flags, for example: --flavor dev --verbose. Use this for ports too: --test-server-port 8081 --app-server-port 8082.
  • SHOW_TERMINAL: Open macOS Terminal for live logs ("true" / "false").

patrol_mcp also respects environment variables supported by patrol_cli (for example: PATROL_FLUTTER_COMMAND, which overrides FVM auto-detection).

Setup Best Practices #

  • Prefer local/project MCP config when sharing setup with a team.
  • Keep MCP config in the repository so teammates share the same setup.

Tools #

  • run: Runs a test file and waits for completion. Auto-selects a device (Android device > Android emulator > iOS device > iOS simulator), or pass device to target one; PATROL_FLAGS --device wins.
  • devices: Lists attached Android/iOS devices to pass as run's device.
  • quit: Gracefully stops the active session.
  • status: Returns session state and recent output.
  • screenshot: Captures screenshot from active session device.
  • native-tree: Fetches native UI tree from active session device.

Agent skills #

Patrol also ships agent skills that complement this MCP server — the MCP provides the tools above, while a skill teaches the agent how to use them to write Patrol tests. See the catalog for the list and install instructions.

Troubleshooting #

  • Make sure your IDE is opened at the mobile project root.
  • Run dart pub get in the Flutter project root.
  • Confirm MCP server is enabled in your IDE settings.
  • Wrong Flutter/SDK used? The chosen Flutter command is logged to the server's stderr when a develop session starts (visible in your IDE's MCP logs).

🛠️ Maintained by LeanCode #

This package is built with 💙 by LeanCode. We are top-tier experts focused on Flutter Enterprise solutions.

Why LeanCode? #

  • Creators of Patrol - the next-gen testing framework for Flutter.
  • Production-Ready - We use this package in apps with millions of users.
  • Full-Cycle Product Development - We take your product from scratch to long-term maintenance.

Need help with your Flutter project?

👉 Hire our team   •   Check our other packages

29
likes
160
points
27.2k
downloads

Documentation

Documentation
API reference

Publisher

verified publisherleancode.co

Weekly Downloads

An MCP server that empowers AI assistants to control, automate, and monitor interactive Patrol development sessions in Flutter.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#testing #e2e #flutter-test #claude #ai

License

Apache-2.0 (license)

Dependencies

adb, args, dispose_scope, image, logging, mcp_dart, path, patrol_cli

More

Packages that depend on patrol_mcp