Skip to main content
Glama

Emulate device & conditions

emulate
Idempotent

Simulates device viewports, user agents, locales, network speeds, CPU limits, color schemes, and vision deficiencies to test how web pages behave under varied conditions.

Instructions

Emulates a device (preset or custom viewport), user agent, locale, timezone, geolocation, dark/light mode, reduced motion, network conditions, CPU slowdown or a vision deficiency. Settings accumulate across calls; reset=true restores everything. All emulation is removed when the session ends.

Input Schema

NameRequiredDescriptionDefault
resetNoRemove all emulation from the tab.
tabIdNoTab to act on. Defaults to the session target tab (see tab_select).
touchNoEmulate a touch screen.
widthNoViewport width in CSS pixels.
deviceNoDevice preset.
heightNoViewport height in CSS pixels.
localeNoLocale, e.g. "vi-VN".
mobileNoMobile viewport (meta viewport, overlay scrollbars).
networkNoNetwork conditions preset ("none" removes throttling).
latitudeNoGeolocation latitude.
timezoneNoIANA timezone, e.g. "Asia/Ho_Chi_Minh".
latencyMsNoCustom extra latency (ms).
longitudeNoGeolocation longitude.
userAgentNoUser agent string.
uploadKbpsNoCustom upload throughput (kbit/s).
colorSchemeNoprefers-color-scheme.
cpuSlowdownNoCPU throttling rate, e.g. 4 = 4x slower (1 removes it).
downloadKbpsNoCustom download throughput (kbit/s).
reducedMotionNoprefers-reduced-motion: reduce.
visionDeficiencyNoSimulated vision deficiency.
deviceScaleFactorNoDevice pixel ratio.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare this is a state-changing but idempotent, non-open-world operation; the description adds two non-obvious traits the annotations cannot convey: settings accumulate across calls rather than replacing prior state, and emulation is torn down when the session ends. That accumulation/lifecycle detail is exactly the kind of context an agent needs to avoid surprise.

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: capability list first, then the accumulation rule, then cleanup. No filler, and the most consequential behavioral fact (state persists across calls) is placed before the more obvious session-end note.

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 21-parameter, zero-required, no-output-schema tool, the description covers purpose, statefulness, and teardown, and the annotations cover safety profile. It stops short of explaining how presets interact with individually supplied width/height or that reset=true supersedes other args in the same call.

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 the baseline is 3, but the description earns a bump by explaining the reset parameter's full effect ('restores everything') and the preset-vs-custom viewport relationship, which the schema only states piecewise. It doesn't document enum values (network presets, device names) beyond what the schema already lists.

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?

Opens with a specific verb ('Emulates') and enumerates the exact resources it controls — viewport, user agent, locale, timezone, geolocation, color scheme, motion, network, CPU, vision deficiency. An agent can tell this is the emulation switchboard and distinguish it from siblings like devtools_context or cdp_send without opening the schema.

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

Usage Guidelines3/5

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

The description implies usage (emulating a device/environment) but never states when to reach for this versus alternatives such as cdp_send or devtools_context, nor any prerequisites like needing an active tab. The tabId default note lives only in the schema, not the description.

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