Skip to main content
Glama

emulate

Idempotent

Simulate media, geolocation, network, and CPU conditions to test web page behavior under different scenarios.

Instructions

Emulate media, geolocation ("lat,lon"), connectivity and a slow device. Media overrides (color scheme, reduced motion, forced colors) apply to the current tab; geolocation and offline apply to the whole browser context, so later tabs and loads keep them. Fields you omit are left unchanged. The position persists context-wide, but only an http(s) origin that called emulate can read it (that origin gets the geolocation permission); call emulate again after navigating elsewhere. cpu_throttle slows the current tab's CPU by that factor (4 = four times slower; 1 restores full speed). network_conditions throttles the current tab's network with a preset ("Slow 3G", "Fast 3G", "Slow 4G", "Fast 4G", or "No throttling" to switch it off) or with explicit latency_ms/download_kbps/upload_kbps. A network call replaces the tab's whole network profile (unset latency is 0, unset throughput is unthrottled) rather than editing it. Throttling lasts until changed and needs a chromium server (it goes through CDP); on firefox/webkit it is refused before anything else is applied.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mediaNo
offlineNo
latency_msNo
geolocationNo
upload_kbpsNo
color_schemeNo
cpu_throttleNo
download_kbpsNo
forced_colorsNo
reduced_motionNo
network_conditionsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / cpu_throttle
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Cpu Throttle"
      +}
    • addedInput schema / properties / download_kbps
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Download Kbps"
      +}
    • addedInput schema / properties / latency_ms
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Latency Ms"
      +}
    • addedInput schema / properties / network_conditions
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Network Conditions"
      +}
    • addedInput schema / properties / upload_kbps
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Upload Kbps"
      +}
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing real runtime behaviors: geolocation persistence across tabs, the http(s)-origin permission/read restriction, cpu_throttle factor semantics (4 = four times slower, 1 = full speed), and crucially that network_conditions replaces the whole profile rather than editing it. It also flags the chromium-only CDP dependency and firefox/webkit refusal, which no annotation conveys.

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?

Dense but tightly front-loaded, leading with the core purpose before the per-parameter behavior. For an 11-parameter tool with interlocking persistence rules, essentially every sentence carries necessary information; no padding.

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

Completeness5/5

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

Given an output schema exists, return values need not be explained, and the description covers scope, persistence, permissions, mutual-evaluation order (throttling refused before anything else applies on non-chromium), and the replacement semantics of network profiles. Nothing an agent needs to invoke it correctly 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?

With 0% schema coverage across 11 params, the description carries the burden and largely succeeds: it gives the geolocation "lat,lon" format, network preset names, explicit latency/download/upload usage, cpu factor, and the omit-means-unchanged rule. It loses a point because the `media` parameter's own values (screen/print) are never defined; color_scheme, reduced_motion and forced_colors are instead listed parenthetically as overrides, which muddies what `media` alone accepts.

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 opens with a specific verb (emulate) and enumerates the exact resources it controls: media, geolocation, connectivity, and a slow device (CPU/network). An agent immediately knows the scope. It stops short of the top score because it never names a sibling (e.g. route, network, resize) to distinguish itself from them.

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?

Strong contextual guidance: media applies to the current tab while geolocation/offline apply context-wide, fields omitted are left unchanged, and the agent is told to call emulate again after navigating. It gives clear when-conditions but no explicit when-not or named alternatives, so it misses the top band.

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