Skip to main content
Glama
expo-headless-mcp

expo-headless-mcp

refresh_screen

Bundle and render an Expo/React Native app headlessly to return a PNG screenshot; re-bundle after code edits or set reload=false to capture the current state.

Instructions

Bundles the Expo / React Native project (no emulator, phone or browser), renders it headlessly and returns a PNG screenshot of the screen. Call first; call again after editing code (re-bundles and restarts the app). Pass reload=false to just re-capture the current state.

Input Schema

NameRequiredDescriptionDefault
entryNoEntry file relative to the project, e.g. App.tsx
scaleNoPNG pixel scale (default 1.5)
widthNoScreen width in dp (default 390)
heightNoScreen height in dp (default 844)
reloadNoRe-bundle and restart the app (default true)
projectPathNoExpo project directory (default: EXPO_PROJECT env or server cwd)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden well: it discloses that bundling happens headlessly without a device, that a re-call re-bundles and restarts the app, and that the return is a PNG. It omits cost/failure characteristics (bundling can be slow or error out) and whether the screenshot includes only the rendered frame.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: what it does, when to call it, and a key parameter nuance. Front-loaded purpose, no repetition of the name or schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-optional-parameter tool with no output schema, the definition covers purpose, workflow timing, and the return format. It lacks failure-mode or performance context (bundle errors, latency) that would matter for an agent deciding between this and the lighter sibling tools, but nothing essential to invoking it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented and the baseline is 3. The description adds meaning beyond the schema for reload specifically by contrasting the default re-bundle/restart path with reload=false as a pure re-capture of current state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (bundles, renders, returns PNG screenshot) and resource (Expo/React Native screen), and explicitly excludes emulator/phone/browser. Clearly distinguishable from sibling tools like click_screen or describe_screen, which act on an existing screen rather than producing one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly orders usage: 'Call first' and 'call again after editing code', which is actionable guidance relative to the other device tools. It does not name alternatives (e.g. describe_screen vs. screenshot) or state when a screenshot is unnecessary, so it falls short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.