Skip to main content
Glama

List connected stores

list_merchant_stores
Read-onlyIdempotent

List the merchant's connected ecommerce stores (Shopify, WooCommerce, Wix...), newest first. Scoped to the connected Skydropx account. Check here FIRST for a store's ids instead of asking the user: data[].id is the merchant_store_id that list_conditional_tariffs and create_conditional_tariff take, and attributes.store_id is the one list_merchant_store_carriers takes. This is the way to read store records, one store's included. Pages hold per_page stores (default and maximum 20); follow meta.next_page with page when an account has more. Read access is enough and nothing is changed. An empty data[] on page 1 means no store is connected; NOT_FOUND means the ecommerce integration is not enabled on the platform. Returns { data, meta }: the stores and the paging cursor.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_merchant_stores"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, 1-based (default 1). Each page holds per_page items (default 20). To know whether more pages exist, read meta.next_page in the response (null on the last page); meta.total_pages and meta.total_count give the totals.
per_pageNoItems per page (default and maximum 20; the API caps larger values)

Output Schema

NameRequiredDescriptionDefault
dataNo
metaNoPagination state of this page of results
includedNoSideloaded JSON:API records (id, type, attributes) referenced from relationships; absent when nothing is sideloaded

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / page / description
      Added value: +"Page number, 1-based (default 1). Each page holds per_page items (default 20). To know whether more pages exist, read meta.next_page in the response (null on the last page); meta.total_pages and meta.total_count give the totals."
    • addedInput schema / properties / per_page / description
      Added value: +"Items per page (default and maximum 20; the API caps larger values)"
    • addedInput schema / properties / per_page / maximum
      Added value: +20
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "items": {
      +        "properties": {
      +          "attributes": {
      +            "properties": {
      +              "country_code": {
      +                "description": "ISO country code of the store"
      +              },
      +              "domain": {
      +                "description": "Store domain on the platform"
      +              },
      +              "features": {
      +                "description": "Optional platform features enabled for the store (see update_merchant_store)",
      +                "items": {},
      +                "type": "array"
      +              },
      +              "id": {
      +                "description": "Store record id: the merchant_store_id conditional tariffs take"
      +              },
      +              "name": {
      +                "description": "Store name"
      +              },
      +              "provider_name": {
      +                "description": "Ecommerce platform, e.g. 'shopify', 'woocommerce'"
      +              },
      +              "status": {
      +                "description": "Connection state"
      +              },
      +              "store_id": {
      +                "description": "The platform's own store id: the merchant_store_id list_merchant_store_carriers takes"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "id": {
      +            "description": "Resource id"
      +          },
      +          "relationships": {
      +            "description": "Links to related records (see included)"
      +          },
      +          "type": {
      +            "description": "always 'merchant_store'"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "included": {
      +      "description": "Sideloaded JSON:API records (id, type, attributes) referenced from relationships; absent when nothing is sideloaded",
      +      "items": {},
      +      "type": "array"
      +    },
      +    "meta": {
      +      "description": "Pagination state of this page of results",
      +      "properties": {
      +        "current_page": {
      +          "description": "The page returned (1-based)"
      +        },
      +        "next_page": {
      +          "description": "Next page number; null on the last page"
      +        },
      +        "per_page": {
      +          "description": "Items per page; absent on v1 endpoints"
      +        },
      +        "prev_page": {
      +          "description": "Previous page number; null on the first page"
      +        },
      +        "total_count": {
      +          "description": "Number of items across all pages"
      +        },
      +        "total_pages": {
      +          "description": "Number of pages available"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the read-only and non-destructive annotations, it discloses account scoping, sort order, pagination traversal, read-access requirements, and the distinct meanings of an empty first page and NOT_FOUND. These details clarify both normal and error behavior without contradicting the annotations.

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?

The most important purpose and ID-discovery workflow are front-loaded, and the short paragraphs organize pagination, safety, and error semantics well. It is somewhat repetitive of the schema and annotations, and the sentence "This is the way to read store records, one store's included" is awkward and unclear.

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 two-parameter list tool with an output schema, the description supplies the scope, downstream ID semantics, pagination workflow, empty-result interpretation, and a relevant error condition. An agent has sufficient context to select and invoke it correctly and to interpret important outcomes.

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%, and both parameters are already thoroughly documented there. The description's explanation of per_page limits and following meta.next_page with page is useful operationally but largely repeats the schema rather than adding new parameter meaning.

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?

The description clearly states the verb and resource: listing the merchant's connected ecommerce stores, with platform examples, newest-first ordering, and Skydropx account scope. It also distinguishes the store IDs consumed by list_conditional_tariffs, create_conditional_tariff, and list_merchant_store_carriers.

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?

It explicitly instructs the agent to check this tool FIRST for store IDs instead of asking the user. The exact response-field-to-sibling-parameter mappings provide concrete, actionable guidance for downstream tool selection and invocation.

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