Skip to main content
Glama

Price an item

price_item

What a secondhand item sells for on eBay: a calibrated estimate with a range, the recent real eBay sales behind it (sold comps, linked where the source gives a link), three list prices (fast, market, patient) with the 14-day sell chance, what the seller keeps after eBay fees, and a worth-it verdict when you pass what the user would pay. A description price searches the signed-in user's own eBay marketplace (eBay UK in GBP for a UK seller), eBay US in USD when nobody is signed in, or the site given in marketplace; price.currency names the currency. A photo price (photo, a file the user uploaded in the chat, or image_url, a public https link) needs the user signed in through the connector: it runs a real scan on their account, priced in their own eBay marketplace and currency (price.currency). Without sign-in, describe the item; a description works but reads less than a photo.

Input Schema

NameRequiredDescriptionDefault
costNoWhat the user paid or would pay for it, for a worth-it verdict, in the currency the price comes back in (price.currency): the seller's own currency when signed in, USD otherwise, or the currency of the marketplace you pass.
sizeNoSize as printed on the tag or measured (for example "M", "10.5", "36 x 36 in", "2.5 quart"). Fill it from the item or label when you can read it.
brandNoThe brand or maker exactly as printed on the item, its tag or its label (for example "Simrad", "Pyrex", "Levi's"). Fill it from what you read on the item or the user's photo; leave it empty rather than guess.
modelNoThe model or product-line name as printed on the item or its box (for example "iPhone 12", "QuietComfort 35", "Odyssey G5", "501"). It is passed to the identification as a hint and added to the search when no word of it is already there; it never replaces the search. Put a manufacturer part number in part_number. Leave it empty rather than guess.
photoNoA photo the user uploaded in this conversation (ChatGPT passes it as a file). Preferred over a description.
conditionNoCondition as the user states it or as you see it on the item. Open box counts as Like New. "For parts or not working" is for an item that does not work, is broken, or is sold for repair or parts; it is priced against parts sales. When the description says for parts or not working, that wins over this field. Leave empty when unknown.
image_urlNoPublic https URL of a photo of the item. Preferred over description alone.
descriptionNoWhat the item is: brand, model or pattern, size, any marks, completeness.
marketplaceNoThe eBay site to search: EBAY_US (eBay US, prices in USD) or EBAY_GB (eBay UK, prices in GBP). Leave it empty to use the signed-in user's own marketplace, or eBay US when nobody is signed in. Set it only when the user asks about a market other than their own. A photo scan always uses the account's own marketplace.
part_numberNoThe manufacturer part number printed on the label or rating plate (for example "000-16294-001", "DCD771C2", "CUH-ZCT2U"), copied character for character. Not a size, voltage, year, SKU, ASIN, LPN or barcode. In price_item it is a hint to the identification only and is not added to the search (a part number required in every listing title leaves too few sales); in get_sold_comps it is appended to the query when the query lacks it. Leave it empty rather than guess.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / photo
      Added value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "download_url": {
      +          "format": "uri",
      +          "maxLength": 4000,
      +          "type": "string"
      +        },
      +        "file_id": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "file_name": {
      +          "anyOf": [
      +            {
      +              "maxLength": 300,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "mime_type": {
      +          "anyOf": [
      +            {
      +              "maxLength": 100,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "download_url",
      +        "file_id"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "A photo the user uploaded in this conversation (ChatGPT passes it as a file). Preferred over a description."
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / cost / description
      Previous value: -"What the user paid or would pay for it, for a worth-it verdict: in USD, or in the seller's own currency for a photo scan on a signed-in account."New value: +"What the user paid or would pay for it, for a worth-it verdict, in the currency the price comes back in (price.currency): the seller's own currency when signed in, USD otherwise, or the currency of the marketplace you pass."
    • addedInput schema / properties / marketplace
      Added value: +{
      +  "description": "The eBay site to search: EBAY_US (eBay US, prices in USD) or EBAY_GB (eBay UK, prices in GBP). Leave it empty to use the signed-in user's own marketplace, or eBay US when nobody is signed in. Set it only when the user asks about a market other than their own. A photo scan always uses the account's own marketplace.",
      +  "enum": [
      +    "EBAY_US",
      +    "EBAY_GB"
      +  ],
      +  "type": "string"
      +}
  3. Changed6 schema fields changed
    • addedInput schema / properties / brand
      Added value: +{
      +  "description": "The brand or maker exactly as printed on the item, its tag or its label (for example \"Simrad\", \"Pyrex\", \"Levi's\"). Fill it from what you read on the item or the user's photo; leave it empty rather than guess.",
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / condition / description
      Previous value: -"Condition as the user states it."New value: +"Condition as the user states it or as you see it on the item. Open box counts as Like New. \"For parts or not working\" is for an item that does not work, is broken, or is sold for repair or parts; it is priced against parts sales. When the description says for parts or not working, that wins over this field. Leave empty when unknown."
    • changedInput schema / properties / condition / enum
      Previous value: -[
      -  "New",
      -  "Like New",
      -  "Good",
      -  "Fair",
      -  "Poor"
      -]New value: +[
      +  "New",
      +  "Like New",
      +  "Good",
      +  "Fair",
      +  "Poor",
      +  "For parts or not working"
      +]
    • addedInput schema / properties / model
      Added value: +{
      +  "description": "The model or product-line name as printed on the item or its box (for example \"iPhone 12\", \"QuietComfort 35\", \"Odyssey G5\", \"501\"). It is passed to the identification as a hint and added to the search when no word of it is already there; it never replaces the search. Put a manufacturer part number in part_number. Leave it empty rather than guess.",
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / part_number
      Added value: +{
      +  "description": "The manufacturer part number printed on the label or rating plate (for example \"000-16294-001\", \"DCD771C2\", \"CUH-ZCT2U\"), copied character for character. Not a size, voltage, year, SKU, ASIN, LPN or barcode. In price_item it is a hint to the identification only and is not added to the search (a part number required in every listing title leaves too few sales); in get_sold_comps it is appended to the query when the query lacks it. Leave it empty rather than guess.",
      +  "maxLength": 40,
      +  "minLength": 3,
      +  "type": "string"
      +}
    • addedInput schema / properties / size
      Added value: +{
      +  "description": "Size as printed on the tag or measured (for example \"M\", \"10.5\", \"36 x 36 in\", \"2.5 quart\"). Fill it from the item or label when you can read it.",
      +  "maxLength": 60,
      +  "minLength": 1,
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / cost / description
      Previous value: -"What the user paid or would pay for it, in USD, for a worth-it verdict."New value: +"What the user paid or would pay for it, for a worth-it verdict: in USD, or in the seller's own currency for a photo scan on a signed-in account."
  5. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only give readOnlyHint=false and openWorldHint=true; the description adds the crucial disclosure that a photo price 'runs a real scan on their account' — a side effect the annotations do not convey. It also spells out auth prerequisites and which currency the result comes back in. It leaves out any notion of credit consumption, rate limits, or failure behavior.

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

Conciseness3/5

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

It is front-loaded with the return payload, which is necessary given there is no output schema, and the mode split (description vs photo) follows in a logical order. However, it is a single dense paragraph of long compound sentences that would read far better broken into return-contract, mode, and currency sections.

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 and ten optional parameters, the description does the heavy lifting: it defines the return contract, the two input paths, sign-in gating, and currency behavior. What is missing is routing guidance against the sibling tools and any cost/quota expectations for the account scan.

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 coverage is 100%, so the schema already documents all ten parameters including the cost-currency rule and the marketplace defaulting. The description's parameter content largely restates that (currency follows sign-in/marketplace, photo preferred over description) rather than adding new nuance. Baseline 3 is appropriate when the schema carries the load.

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 names a concrete verb and resource (pricing a secondhand item on eBay) and enumerates the outputs: sold comps, three list prices with 14-day sell chance, fee net, and worth-it verdict. An agent can tell what it produces without opening the schema. It stops short of naming its siblings (get_sold_comps, worth_it, list_on_ebay), so the boundary with those tools is left implicit.

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 sets clear conditions for the two input modes: a photo price requires sign-in through the connector, while without sign-in the agent should describe the item. It also explains marketplace/currency selection (own marketplace when signed in, EBAY_US otherwise, explicit marketplace override). It does not say when to reach for price_item instead of worth_it or get_sold_comps.

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