Skip to main content
Glama

Describe a Shopify Admin Action

shopify_describe_action
Read-onlyIdempotent

Describes a Shopify Admin API mutation: its arguments, input fields, payload, GraphQL document, variables template, scope hint, and if it's destructive.

Instructions

Full signature of one Admin API mutation: arguments with types, the expanded input object fields (required markers, enum values, descriptions), the payload fields, a ready-to-edit GraphQL document with a default selection, a variables template with the required fields, a scope hint, and whether it is destructive (then shopify_run_action needs confirm set to the mutation name).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
depthNoHow many levels of nested input objects to expand
storeNoUse this store's API version.
mutationYesMutation name, such as orderCancel
apiVersionNoAdmin API version, such as 2026-07. Defaults to the store's version, or the server default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.1

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this as a safe, idempotent, read-only operation. The description goes further by disclosing the content and shape of the response and, crucially, the destructive-flag propagation to shopify_run_action's confirm parameter — behavior the annotations cannot express. It stops short of noting limits such as depth cost or unknown-mutation handling.

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?

A single dense sentence, front-loaded with the core idea ('Full signature of one Admin API mutation') then enumerating the returned artifacts. It is long but each listed artifact corresponds to real output, so little is wasted, though the list could be tightened.

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?

With no output schema, the description carries the burden of explaining return values and does so thoroughly, plus it covers the destructive/confirm interaction with shopify_run_action. A describe-only tool with a fully documented 4-param schema needs little more, though a note on error behavior for unknown mutations would close the gap.

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

Parameters3/5

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

Schema description coverage is 100%, so mutation, depth, store, and apiVersion are already documented in the schema with types, patterns, and defaults. The description mentions an 'expanded input object' concept (loosely mapping to depth) but adds no syntax or semantics beyond the schema, so the baseline 3 applies.

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 states exactly what the tool returns for one Admin API mutation: arguments with types, expanded input fields, payload fields, a GraphQL document, a variables template, a scope hint, and a destructiveness flag. It is specific and verb+resource oriented via the name/title, though it never explicitly contrasts itself with siblings like shopify_graphql_schema or shopify_run_action.

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?

It gives clear conditional routing by explaining that if the mutation is destructive, shopify_run_action requires confirm set to the mutation name — effectively telling the agent to describe before running. However, it never states when to prefer this over shopify_graphql_schema or what to do for read queries.

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