Skip to main content
Glama

Test Run Automation

automation_test_run

Dry-runs an automation against one store and returns the execution trace (visited steps, condition outcomes, taken edges). Nothing is sent, metered, or persisted. Provide either shop_domain (a CRM store, or a store known only from the install your app reported) or custom_store (synthetic attributes), XOR. Omit both only when the saved graph never reads store data. Optional event_context stands in for the triggering event's merge-tag values. Takes app_id and automation_id (scoped_id or uuid). Requires the automations.edit permission (the update ability on the automation) and a strictly valid saved graph. A real store (shop_domain) also requires crm.merchants.view; custom_store and storeless runs do not.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "app_id": "<app_id>",
      "automation_id": "<automation_id>"
    },
    "name": "automation_test_run"
  }
}

Input Schema

NameRequiredDescriptionDefault
app_idYesThe app uuid returned by `apps_list`.
shop_domainNoReal store myshopify domain to dry-run against. XOR with custom_store.
custom_storeNoSynthetic store attributes when no real store is available. XOR with shop_domain.
automation_idYesThe automation scoped_id or uuid returned by `automations_list`.
event_contextNoOptional map of trigger merge-tag variable name → string value for the dry-run.
organization_idNoAn organisation uuid or slug. When supplied, `app_id` is resolved within that organisation and may be a slug instead of a uuid, mirroring the Meridian web app.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing that nothing is sent, metered, or persisted, that a strictly valid saved graph is required, and that omitting email makes Send Email steps trace as blocked: noRecipient. The only mild tension is that readOnlyHint=false implies possible state change while the text describes a pure dry run; this reads as a conservative annotation rather than a real contradiction.

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

Conciseness4/5

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

Front-loads the core action and return value, then layers constraints and permissions in a logical order with no filler. It is dense as a single block and could be easier to scan as bullets, but every sentence carries information.

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?

For a six-parameter tool with a nested object and no output schema, the description covers the return value, the XOR input constraint, permission requirements, and the graph-validity precondition. An agent has everything needed to call it correctly.

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 adds real meaning: the XOR rule between shop_domain and custom_store, the condition for omitting both, and what event_context substitutes for (trigger merge-tag values). It also clarifies that automation_id accepts a scoped_id or uuid.

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 and resource ('Dry-runs an automation against one store') plus the return shape ('execution trace: visited steps, condition outcomes, taken edges'). This clearly separates it from automation_runs_list, which lists real runs, without needing to name the sibling.

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

Usage Guidelines5/5

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

Gives explicit selection rules: provide shop_domain XOR custom_store, and omit both only when the saved graph never reads store data. It also names the prerequisites (automations.edit, crm.merchants.view for real stores) that gate a successful call.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources