Skip to main content
Glama
funkyfunc

Flutter Driver MCP

by funkyfunc

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
start_appC

Injects the harness and starts the Flutter app in test mode.

stop_appB

Stops the currently running Flutter app and cleans up.

pilot_hot_restartC

Performs a hot restart of the currently running app session started by this server.

list_devicesA

Lists available Flutter devices. Does NOT require a running app.

start_recordingA

Starts recording the screen of the running app's device. Recording begins capturing immediately with no warmup delay — proceed with interactions right away. Supports iOS Simulators (MP4), macOS Desktop (MOV), and Android devices/emulators (MP4, max 180s). Only one recording at a time. Auto-stops if stop_app is called or after 5 minutes.

stop_recordingA

Stops the current screen recording and finalizes the video file. Returns the file path, format, duration, and file size. Called automatically by stop_app if a recording is active.

tapB

Taps, long-presses, or double-taps a widget. Defaults to a normal tap. Use gesture to change.

enter_textA

Enters text into a widget found by the target string. By default, replaces existing text. Set clearFirst to explicitly clear and re-focus the field before typing.

get_textB

Returns the text content of a widget identified by the target string.

drag_and_dropC

Drags from a source widget to a target widget (or to an offset).

scrollB

Scrolls or swipes a widget. Use dx/dy for pixel-precise scrolling, or direction/distance for named swipe gestures.

scroll_until_visibleB

Scrolls a scrollable widget until a target widget is visible.

navigate_toA

Pushes a named route using Navigator.pushNamed. NOTE: Does NOT work with GoRouter or other custom routers — use tap() to navigate via on-screen elements instead.

go_backA

Pops the current route off the Navigator stack (like pressing the back button).

get_current_routeA

Returns the name of the currently active route on the Navigator stack.

press_keyC

Simulates a keyboard key press (e.g. enter, tab, escape, backspace, arrow keys).

assertA

Runs an assertion check on a widget. Use 'check' to specify the type: exists, not_exists, text_equals, text_contains, count, state, visible, or enabled.

screenshotB

Captures a screenshot. Without a target, captures the full app. With a target, captures a specific widget.

get_widget_treeC

Returns a JSON representation of the widget tree.

get_accessibility_treeC

Returns the accessibility (semantics) tree.

explore_screenC

Maps out interactive elements on the screen.

wait_forB

Waits for a widget to appear or disappear. Set gone=true to wait for disappearance (e.g. loading spinners).

simulate_backgroundB

Simulates the app going into the background and coming back to the foreground.

set_network_statusC

Simulates network connectivity changes.

intercept_networkC

Mocks a network response. Pass null for both to clear.

read_logsB

Reads the last N lines from the app's stdout/stderr.

batch_actionsA

Execute multiple actions in a single call. Each action is run sequentially with pumpAndSettle between them. Stops on first error. Supported tools: tap, enter_text, scroll, assert, wait_for, press_key, screenshot, get_text, explore_screen.

wait_for_animationA

Pumps frames for a specified duration without waiting for all animations to settle. Useful for hero transitions, page animations, or custom animation controllers where pumpAndSettle would time out.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/funkyfunc/flutter-driver-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server