Skip to main content
Glama

Server Details

Extracts normalized product catalogs, live prices, variants, and availability from online stores.

Ownership verified
Status
Healthy
Uptime
100.0% over 19 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.5/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly separate purposes: one extracts e-commerce catalog data, while the other inspects wallet/quota status. There is no meaningful overlap that would cause misselection.

Naming Consistency5/5

Both names use snake_case and follow a predictable verb_object pattern: extract_ecommerce_catalog and get_agent_wallet_status. The convention is consistent across the small tool set.

Tool Count3/5

Two tools is quite thin for a server, even a focused paid-extraction server. The surface is understandable, but it feels minimal and leaves little room for adjacent catalog operations.

Completeness3/5

The core extraction workflow and quota check are covered, but broader Shopify-spy tasks such as store discovery, product search/filtering, or batch extraction are absent. Payment handling is described via retry instructions rather than a dedicated tool.

Available Tools

2 tools
extract_ecommerce_catalogA
Read-onlyIdempotent
Inspect

Extracts normalized product catalogs, live prices, variants, and availability from online stores. WHEN TO USE: Call extract_ecommerce_catalog when your task requires deterministic shopify-spy analysis for store_url; use get_agent_wallet_status to check your remaining free trial quota or prepaid balance. WHEN NOT TO USE: Do not use for unrelated domains or binary media. PARAMETER INTERACTIONS: Pass the target store_url as a non-empty string; omit agent_id and tx_hash during your 5 free trial calls, or supply agent_id (agd_pass_...) / tx_hash for paid execution. Read-only and idempotent; results are cached for 1 hour (<5ms cache hit). $0.01 per call. Pricing: the first 5 calls per agent_id are free and failed calls are never charged. After 5 calls, the tool returns a payment-required quote (not a fatal error) with a $2 Stripe top-up link and Base/Solana USDC addresses; complete payment, then retry with your agd_pass_ key in agent_id or pass tx_hash. Example: extract_ecommerce_catalog(store_url='example')

NameRequiredDescriptionDefault
tx_hashNoOptional on-chain Base Mainnet (0x...) or Solana SPL USDC transaction hash. Omit unless settling an individual call directly on-chain instead of using an agd_pass_ key in agent_id.
agent_idNoOptional agent identifier or prepaid agd_pass_ session key. Omit during your 5 free trial calls to use an ID automatically derived from your client IP, or pass your agd_pass_ key after topping up.
store_urlYesShopify or e-commerce store URL to extract structured product & pricing data from.

Output Schema

NameRequiredDescription
dataNoStructured tool output payload.
statusYesExecution status ('ok' or 'payment_required').
roi_proofNoToken compression and cost-savings verification metrics.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, but the description adds substantial non-structured behavior: 1-hour caching with <5ms hits, $0.01 per call, first 5 calls free, failed calls never charged, and a payment-required quote (not a fatal error) with top-up link and USDC addresses. This is exactly the kind of operational context annotations cannot carry.

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-loaded with purpose and cleanly sectioned (WHEN TO USE / WHEN NOT TO USE / PARAMETER INTERACTIONS), but it is long and repeats the pricing flow twice, and the trailing example uses a placeholder value ('example') that carries little 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?

An output schema exists so return values need not be described; given that, the description covers everything an agent needs to call correctly — scope, exclusions, trial vs paid parameter usage, caching, cost, and the payment retry path.

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 usage context beyond the schema: omit agent_id/tx_hash during the 5 free trial calls and supply agent_id (agd_pass_...) or tx_hash for paid execution. It slightly restates the non-empty store_url requirement, which is redundant.

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 (extracts) and a concrete set of resources (normalized product catalogs, live prices, variants, availability) that an agent can match to a task without opening the schema. It also implicitly separates itself from get_agent_wallet_status by naming that sibling for a different job.

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?

Explicit WHEN TO USE and WHEN NOT TO USE sections, including the alternative tool for quota checks ('use get_agent_wallet_status') and a domain exclusion ('unrelated domains or binary media'). The free-trial vs paid invocation conditions are also spelled out, leaving nothing to inference.

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

get_agent_wallet_statusA
Read-onlyIdempotent
Inspect

Inspect an agent's account ledger: remaining free trial calls (out of 5), prepaid USD balance, cumulative spend, total API calls, and total LLM tokens saved. WHEN TO USE: Call before a batch of paid tool executions or after completing a Stripe or USDC top-up to confirm your balance. WHEN NOT TO USE: Do not use to process web content, execute marketplace tools, or submit payments; use the other tools on this server for execution. PARAMETER INTERACTIONS: Omit agent_id to inspect the default trial account derived from your client IP, or pass your explicit agent_id or agd_pass_ session key to check a specific funded wallet. Free and read-only: never charges a fee or consumes a free trial call. Example: get_agent_wallet_status(agent_id='example')

NameRequiredDescriptionDefault
agent_idNoOptional Agent ID or agd_pass_ session key to inspect. Omit to check the default wallet derived from your client IP.

Output Schema

NameRequiredDescription
dataNoStructured tool output payload.
statusYesExecution status ('ok' or 'payment_required').
roi_proofNoToken compression and cost-savings verification metrics.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: it never charges a fee or consumes a free trial call, and the default wallet is derived from the caller's client IP. It does not discuss rate limits or caching, but the cost/free-trial guarantee is meaningful behavioral disclosure.

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-loaded with the ledger contents, then structured WHEN TO USE / WHEN NOT TO USE / PARAMETER INTERACTIONS / Example. The labeled sections make it scannable, though the repetition of the read-only guarantee and the worked example add a little bulk.

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?

An output schema exists, so return-value detail is optional, yet the description still names the key fields. With a single optional parameter, no nested objects, and annotations covering safety, an agent has everything needed to invoke 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 description coverage is 100%, so the baseline is 3. The description goes slightly further by naming the agd_pass_ session-key form and framing the two modes as an interaction (omit for IP-derived trial account vs. pass explicit agent_id/session key for a funded wallet), which aids selection even though the schema states the omit behavior.

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 (inspect) and resource (agent's account ledger) and enumerates exactly what is returned: trial calls out of 5, prepaid USD balance, cumulative spend, total API calls, tokens saved. This clearly separates it from the sibling web-content tools (distill_webpage, extract_structured_data, recon_webpage_skeleton), which operate on webpages rather than wallet state.

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?

Explicit WHEN TO USE (before paid tool batches, after a Stripe or USDC top-up) and WHEN NOT TO USE (not for processing web content, executing marketplace tools, or submitting payments). The exclusion clause routes the agent back to the other server tools for execution, so the alternative is named.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedextract_ecommerce_catalog1 field changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "store_url": "example"
        +  }
        +]
    • Changedget_agent_wallet_status1 field changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "agent_id": "example"
        +  }
        +]
  2. 2 tool updates
    • Changedextract_ecommerce_catalog8 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • changedInput schema / properties / agent_id / description
        Previous value: -"Your agent ID, or the agd_pass_ key you got from a payment. It tracks your free calls and credit, so treat it like a password. Omit it to use an ID derived from your IP and client."New value: +"Optional agent identifier or prepaid agd_pass_ session key. Omit during your 5 free trial calls to use an ID automatically derived from your client IP, or pass your agd_pass_ key after topping up."
      • addedInput schema / properties / agent_id / maxLength
        Added value: +256
      • addedInput schema / properties / agent_id / minLength
        Added value: +1
      • changedInput schema / properties / tx_hash / description
        Previous value: -"Use only after paying on-chain: the Base (0x...) or Solana USDC transfer hash. It is verified on-chain before the call runs, and any overpayment is returned as an agd_pass_ credit key."New value: +"Optional on-chain Base Mainnet (0x...) or Solana SPL USDC transaction hash. Omit unless settling an individual call directly on-chain instead of using an agd_pass_ key in agent_id."
      • addedInput schema / properties / tx_hash / maxLength
        Added value: +256
      • addedInput schema / properties / tx_hash / minLength
        Added value: +10
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "description": "Structured tool output payload.",
        +      "type": "object"
        +    },
        +    "roi_proof": {
        +      "description": "Token compression and cost-savings verification metrics.",
        +      "type": "object"
        +    },
        +    "status": {
        +      "description": "Execution status ('ok' or 'payment_required').",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedget_agent_wallet_status6 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • changedInput schema / properties / agent_id / description
        Previous value: -"Agent ID or agd_pass_ key to look up. Omit it to see the ID derived from your IP and client."New value: +"Optional Agent ID or agd_pass_ session key to inspect. Omit to check the default wallet derived from your client IP."
      • addedInput schema / properties / agent_id / maxLength
        Added value: +256
      • addedInput schema / properties / agent_id / minLength
        Added value: +1
      • removedInput schema / properties / tx_hash
        Removed value: -{
        -  "description": "Not needed; this tool is free.",
        -  "type": "string"
        -}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "description": "Structured tool output payload.",
        +      "type": "object"
        +    },
        +    "roi_proof": {
        +      "description": "Token compression and cost-savings verification metrics.",
        +      "type": "object"
        +    },
        +    "status": {
        +      "description": "Execution status ('ok' or 'payment_required').",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
  3. 2 tool updates
    • Changedextract_ecommerce_catalog4 fields changed
      • changedInput schema / additionalProperties
        Previous value: -falseNew value: +true
      • addedInput schema / properties / agent_id
        Added value: +{
        +  "description": "Your agent ID, or the agd_pass_ key you got from a payment. It tracks your free calls and credit, so treat it like a password. Omit it to use an ID derived from your IP and client.",
        +  "type": "string"
        +}
      • changedInput schema / properties / store_url / description
        Previous value: -"Shopify or e-commerce store URL to extract structured product & pricing data from"New value: +"Shopify or e-commerce store URL to extract structured product & pricing data from."
      • addedInput schema / properties / tx_hash
        Added value: +{
        +  "description": "Use only after paying on-chain: the Base (0x...) or Solana USDC transfer hash. It is verified on-chain before the call runs, and any overpayment is returned as an agd_pass_ credit key.",
        +  "type": "string"
        +}
    • Changedget_agent_wallet_status5 fields changed
      • changedInput schema / additionalProperties
        Previous value: -falseNew value: +true
      • addedInput schema / properties / agent_id / description
        Added value: +"Agent ID or agd_pass_ key to look up. Omit it to see the ID derived from your IP and client."
      • removedInput schema / properties / agent_id / maxLength
        Removed value: -99999
      • removedInput schema / properties / agent_id / minLength
        Removed value: -1
      • addedInput schema / properties / tx_hash
        Added value: +{
        +  "description": "Not needed; this tool is free.",
        +  "type": "string"
        +}
  4. 2 tool updates
    • Changedextract_ecommerce_catalog3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / store_url / maxLength
        Added value: +99999
      • addedInput schema / properties / store_url / minLength
        Added value: +1
    • Changedget_agent_wallet_status3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / agent_id / maxLength
        Added value: +99999
      • addedInput schema / properties / agent_id / minLength
        Added value: +1
  5. 2 tool updates
    • First observedextract_ecommerce_catalog
    • First observedget_agent_wallet_status

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources