Skip to main content
Glama

Brainy Prices — UAE Cost of Living

shopper_price_reports

Read-onlyIdempotent

Community price reports by product/store, with date and promos.

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": "shopper_price_reports"
  }
}

Input Schema

NameRequiredDescriptionDefault
areaNo
sortNo-purchased_on
cursorNo
store_idNo
page_sizeNo
product_idNo
purchased_sinceNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  3. Changed8 schema fields changed
    • removedInput schema / properties / sort / type
      Removed value: -"string"
    • removedOutput schema / $defs / Links
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "docs": {
      -      "type": "string"
      -    },
      -    "next": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "open_in_browser": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "self": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "self",
      -    "next",
      -    "open_in_browser",
      -    "docs"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / $defs / Provenance
      Removed value: -{
      -  "additionalProperties": true,
      -  "required": [
      -    "source_id",
      -    "license_id",
      -    "source_url",
      -    "observed_on",
      -    "observed_at",
      -    "published_on",
      -    "published_at",
      -    "retrieved_at",
      -    "stale",
      -    "status",
      -    "paused_since",
      -    "flags"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / $defs / ResponseMeta
      Removed value: -{
      -  "additionalProperties": true,
      -  "required": [
      -    "api_version",
      -    "content_language",
      -    "generated_at",
      -    "currency",
      -    "attribution",
      -    "disclaimer",
      -    "dataset",
      -    "page"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / $defs / ShopperReport
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "moderation_status": {
      -      "const": "accepted"
      -    },
      -    "product_id": {
      -      "type": "string"
      -    },
      -    "promo": {
      -      "type": "boolean"
      -    },
      -    "provenance": {
      -      "$ref": "#/$defs/Provenance"
      -    },
      -    "purchased_on": {
      -      "type": "string"
      -    },
      -    "report_id": {
      -      "type": "string"
      -    },
      -    "store_id": {
      -      "type": "string"
      -    },
      -    "unit_price_aed": {
      -      "type": "number"
      -    }
      -  },
      -  "required": [
      -    "report_id",
      -    "product_id",
      -    "store_id",
      -    "purchased_on",
      -    "unit_price_aed",
      -    "promo",
      -    "moderation_status",
      -    "provenance"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / $defs / ShopperReportListResponse
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "data": {
      -      "items": {
      -        "$ref": "#/$defs/ShopperReport"
      -      },
      -      "type": "array"
      -    },
      -    "links": {
      -      "$ref": "#/$defs/Links"
      -    },
      -    "meta": {
      -      "$ref": "#/$defs/ResponseMeta"
      -    }
      -  },
      -  "required": [
      -    "meta",
      -    "data",
      -    "links"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / $defs / ToolFailure
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "error": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "code": {
      -          "type": "string"
      -        },
      -        "message": {
      -          "type": "string"
      -        },
      -        "retry_after_s": {
      -          "type": [
      -            "integer",
      -            "null"
      -          ]
      -        },
      -        "retryable": {
      -          "type": "boolean"
      -        }
      -      },
      -      "required": [
      -        "code",
      -        "message",
      -        "retryable",
      -        "retry_after_s"
      -      ],
      -      "type": "object"
      -    },
      -    "request_id": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "required": [
      -    "error",
      -    "request_id"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/ShopperReportListResponse"
      -  },
      -  {
      -    "$ref": "#/$defs/ToolFailure"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "moderation_status": {
      +              "const": "accepted"
      +            },
      +            "product_id": {
      +              "type": "string"
      +            },
      +            "promo": {
      +              "type": "boolean"
      +            },
      +            "provenance": {
      +              "additionalProperties": true,
      +              "required": [
      +                "source_id",
      +                "license_id",
      +                "source_url",
      +                "observed_on",
      +                "observed_at",
      +                "published_on",
      +                "published_at",
      +                "retrieved_at",
      +                "stale",
      +                "status",
      +                "paused_since",
      +                "flags"
      +              ],
      +              "type": "object"
      +            },
      +            "purchased_on": {
      +              "type": "string"
      +            },
      +            "report_id": {
      +              "type": "string"
      +            },
      +            "store_id": {
      +              "type": "string"
      +            },
      +            "unit_price_aed": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "report_id",
      +            "product_id",
      +            "store_id",
      +            "purchased_on",
      +            "unit_price_aed",
      +            "promo",
      +            "moderation_status",
      +            "provenance"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "links": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "docs": {
      +            "type": "string"
      +          },
      +          "next": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "open_in_browser": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "self": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "self",
      +          "next",
      +          "open_in_browser",
      +          "docs"
      +        ],
      +        "type": "object"
      +      },
      +      "meta": {
      +        "additionalProperties": true,
      +        "required": [
      +          "api_version",
      +          "content_language",
      +          "generated_at",
      +          "currency",
      +          "attribution",
      +          "disclaimer",
      +          "dataset",
      +          "page"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "meta",
      +      "data",
      +      "links"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "retry_after_s": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "retryable": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message",
      +          "retryable",
      +          "retry_after_s"
      +        ],
      +        "type": "object"
      +      },
      +      "request_id": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "error",
      +      "request_id"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. Added

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already state that the tool is read-only, idempotent, non-destructive, and closed-world. The description adds some useful context by calling the reports 'community' sourced and noting date/promos, but it does not describe pagination behavior, sorting implications, or how the area filter affects results.

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 description is a single compact sentence with no filler and is front-loaded with the core resource. However, its brevity leaves important facets under-specified for a seven-parameter tool.

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

Completeness2/5

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

An output schema exists, and annotations cover the safety profile, so return values and safety need not be explained. Still, with seven parameters at 0% schema description coverage and no sibling differentiation, the description is too thin to support correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It vaguely implies product, store, and date filtering, but gives no explanation for area, sort, cursor, page_size, or the enum options for sort, leaving most of the seven parameters undocumented.

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 clearly identifies the resource as community price reports broken out by product/store and mentions date and promos. It stops short of an explicit retrieval verb and does not distinguish this tool from nearby siblings like grocery_compare_list or ministry_shop_prices.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as grocery_products, grocery_stores, grocery_compare_list, or ministry_shop_prices. The implied use case is understandable, but the agent receives no explicit selection criteria or exclusions.

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