Skip to main content
Glama

metro

Prepare a React Native development server or reload connected apps, leveraging the current session's bound server. Override the binding per call with explicit runtime inputs.

Instructions

Prepare a React Native development server or ask connected apps to reload, using the development server this session is bound to. Provide explicit runtime inputs only to override that binding for one call. The binding is cleared when the session closes, and a fresh open without runtime hints also clears any leftover binding from a previous same-name session. Times out after 90s.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNo
portNo
udidNoiOS device UDID selector.
debugNoEnable debug diagnostics.
runIdNoLease run identifier.
actionYes
deviceNoDevice name selector.
serialNoAndroid device or Vega VVD serial selector.
targetNoAlias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element.
tenantNoRemote tenant identifier.
leaseIdNoExisting lease identifier.
logPathNo
sessionNoAgent-device session name.
platformNoPlatform selector used to resolve a device.
bundleUrlNo
launchUrlNo
metroHostNo
metroPortNo
timeoutMsNo
listenHostNo
statusHostNo
bridgeScopeNo
includeCostNoInclude per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged.
projectRootNo
deviceTargetNoDevice target form. Maps to the CLI --target flag.
publicBaseUrlNo
responseLevelNoResponse verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged.
reuseExistingNo
probeTimeoutMsNo
mcpOutputFormatNoMCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately.
runtimeFilePathNo
startupTimeoutMsNo
androidDeviceAllowlistNoAndroid serial allowlist used for device resolution.
installDependenciesIfNeededNo
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explains the session binding lifecycle, override semantics, clearing behavior on session close, and the 90-second timeout. It does not mention side effects or return values, but the disclosed behaviors are meaningful for an agent.

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?

The description is three sentences with no filler, front-loading the core action and resource. It packs binding behavior and timeout into a compact structure that is easy to scan.

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

Completeness3/5

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

This is a high-complexity tool with 34 parameters, no output schema, and no annotations. The description covers key operational behavior like binding, override, and timeout, but it omits output shape, prerequisite conditions, and any guidance for resolving devices or selecting among the many parameters.

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

Parameters2/5

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

Schema description coverage is only 44%, so the description should compensate for undocumented parameters, but it does not. The only parameter-related guidance is the general 'runtime inputs' override statement, which does not clarify the many selectors, timeouts, hosts, or flags in the schema.

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

Purpose4/5

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

The description clearly states the tool's purpose: preparing a React Native development server or asking connected apps to reload. It names the resource (the session-bound Metro dev server), but it does not explicitly distinguish itself from siblings like react-native or open.

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?

The description provides clear usage context: the tool uses a session-bound development server, and runtime inputs can override that binding for one call. It does not explicitly name alternatives or states when not to use the tool, but the binding and override behavior are practical and specific.

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

Install Server

Other Tools

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/callstack/agent-device'

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