Skip to main content
Glama
Vinted MCP and CLI Server

Vinted MCP and CLI Server

search_items

Search Vinted second-hand listings with rich filters across 19 country sites. Returns a paginated list of items — each with title, price, currency, brand, size, condition, photo URL, item URL, favourite count, and seller info.

Instructions

Search Vinted second-hand listings with rich filters across 19 country sites. Returns a paginated list of items — each with title, price, currency, brand, size, condition, photo URL, item URL, favourite count, and seller info. Use get_categories to discover valid categoryId values and search_brands to resolve brand names to IDs. For comprehensive multi-page results use search_all_items instead.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "search_items"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoPage number starting at 1
sizeNoSize labels to filter by, e.g. ["M", "L"] or ["42", "43"]. Automatically resolved to IDs via resolve_size_ids. Use instead of sizeIds when you know the label but not the ID.
brandNoBrand names to filter by, e.g. ["Nike", "Adidas"]. Automatically resolved to IDs via search_brands.
colorNoColor names to filter by, e.g. ["black", "white"]. Automatically resolved to IDs via get_colors.
queryYesSearch keywords, e.g. "Nike Air Max 90" or "levi 501 jeans"
sortByNoSort order for results. Defaults to relevance.
countryNoVinted country site to search (fr, de, uk, it, es, nl, pl, pt, be, at, lt, cz, sk, hu, ro, hr, fi, dk, se)fr
perPageNoResults to return, 1–96. Defaults to 20. Vinted serves fixed pages of 96, so this only truncates a page; at most 960 results are reachable per query.
sizeIdsNoNumeric size IDs. Prefer the size[] parameter for label-based lookup.
brandIdsNoNumeric Vinted brand IDs from search_brands. Prefer the brand[] parameter for name-based lookup.
colorIdsNoNumeric color IDs. Prefer the color[] parameter for name-based lookup.
priceMaxNoMaximum price in the local currency of the selected country
priceMinNoMinimum price in the local currency of the selected country
conditionNoItem condition filter; multiple values are OR-ed together
categoryIdNoCategory ID from get_categories (e.g. 4 = women's clothing, 5 = men's clothing, 1231 = women's shoes)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv1.6.3
    • addedInput schema / properties / color
      Added value: +{
      +  "description": "Color names to filter by, e.g. [\"black\", \"white\"]. Automatically resolved to IDs via get_colors.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / colorIds / description
      Previous value: -"Color IDs to filter by (e.g. [1] for black, [3] for white). Use get_colors to discover all available color IDs and their names."New value: +"Numeric color IDs. Prefer the color[] parameter for name-based lookup."
    • changedInput schema / properties / country / description
      Previous value: -"Vinted country site to search (fr, de, uk, pl, es, nl, be, it, pt, cz, sk, hu, ro, lt, lv, ee, fi, at, se)"New value: +"Vinted country site to search (fr, de, uk, it, es, nl, pl, pt, be, at, lt, cz, sk, hu, ro, hr, fi, dk, se)"
    • removedInput schema / properties / dateFrom
      Removed value: -{
      -  "description": "Return items listed on or after this date. ISO-8601 format, e.g. \"2024-01-01\"",
      -  "type": "string"
      -}
    • removedInput schema / properties / dateTo
      Removed value: -{
      -  "description": "Return items listed on or before this date. ISO-8601 format, e.g. \"2024-12-31\"",
      -  "type": "string"
      -}
    • changedInput schema / properties / perPage / description
      Previous value: -"Results per page, 1–96. Defaults to 20."New value: +"Results to return, 1–96. Defaults to 20. Vinted serves fixed pages of 96, so this only truncates a page; at most 960 results are reachable per query."
    • addedInput schema / properties / size
      Added value: +{
      +  "description": "Size labels to filter by, e.g. [\"M\", \"L\"] or [\"42\", \"43\"]. Automatically resolved to IDs via resolve_size_ids. Use instead of sizeIds when you know the label but not the ID.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / sizeIds / description
      Previous value: -"Size IDs to filter by. Discover valid IDs by inspecting results from a previous search in the same category, or use get_size_groups to browse all size groups."New value: +"Numeric size IDs. Prefer the size[] parameter for label-based lookup."
  2. Changed2 schema fields changedv1.0.2
    • addedInput schema / properties / colorIds
      Added value: +{
      +  "description": "Color IDs to filter by (e.g. [1] for black, [3] for white). Use get_colors to discover all available color IDs and their names.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / sizeIds / description
      Previous value: -"Size IDs to filter by. Discover valid IDs by inspecting results from a previous search in the same category."New value: +"Size IDs to filter by. Discover valid IDs by inspecting results from a previous search in the same category, or use get_size_groups to browse all size groups."
  3. Changed14 schema fields changedv1.0.1
    • changedInput schema / properties / brand / description
      Previous value: -"Brand names; resolved to IDs via Vinted lookup"New value: +"Brand names to filter by, e.g. [\"Nike\", \"Adidas\"]. Automatically resolved to IDs via search_brands."
    • addedInput schema / properties / brandIds / description
      Added value: +"Numeric Vinted brand IDs from search_brands. Prefer the brand[] parameter for name-based lookup."
    • addedInput schema / properties / categoryId / description
      Added value: +"Category ID from get_categories (e.g. 4 = women's clothing, 5 = men's clothing, 1231 = women's shoes)"
    • addedInput schema / properties / condition / description
      Added value: +"Item condition filter; multiple values are OR-ed together"
    • addedInput schema / properties / country / description
      Added value: +"Vinted country site to search (fr, de, uk, pl, es, nl, be, it, pt, cz, sk, hu, ro, lt, lv, ee, fi, at, se)"
    • changedInput schema / properties / dateFrom / description
      Previous value: -"ISO date string e.g. 2024-01-01"New value: +"Return items listed on or after this date. ISO-8601 format, e.g. \"2024-01-01\""
    • addedInput schema / properties / dateTo / description
      Added value: +"Return items listed on or before this date. ISO-8601 format, e.g. \"2024-12-31\""
    • addedInput schema / properties / page / description
      Added value: +"Page number starting at 1"
    • addedInput schema / properties / perPage / description
      Added value: +"Results per page, 1–96. Defaults to 20."
    • addedInput schema / properties / priceMax / description
      Added value: +"Maximum price in the local currency of the selected country"
    • addedInput schema / properties / priceMin / description
      Added value: +"Minimum price in the local currency of the selected country"
    • addedInput schema / properties / query / description
      Added value: +"Search keywords, e.g. \"Nike Air Max 90\" or \"levi 501 jeans\""
    • changedInput schema / properties / sizeIds / description
      Previous value: -"Size IDs (use get_categories + search_items to discover)"New value: +"Size IDs to filter by. Discover valid IDs by inspecting results from a previous search in the same category."
    • addedInput schema / properties / sortBy / description
      Added value: +"Sort order for results. Defaults to relevance."
  4. First observedv1.0.0

TDQS

A4.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It usefully enumerates the return fields (compensating for the absent output schema) and notes results are paginated, but says nothing about rate limits, auth/permission needs, or the practical result cap handled only in the schema.

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

Conciseness5/5

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

Three sentences, zero filler, and front-loaded: purpose and scope first, return contents second, routing guidance last. Every sentence earns its place.

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?

For a 15-parameter search tool with no output schema, the description covers purpose, return fields, and sibling routing well. It stops short of documenting pagination limits and currency/price semantics, which live only in the schema.

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 every parameter is already documented in the schema. The description adds only the generic phrase 'rich filters' and no filter syntax or format details beyond what the schema provides, making the baseline 3 correct.

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 and resource ('Search Vinted second-hand listings') plus scope ('rich filters across 19 country sites') and return shape. It explicitly distinguishes itself from search_all_items, so an agent can route without opening the schema.

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?

Names concrete alternatives with the condition that selects them: get_categories for categoryId, search_brands for brand names, and search_all_items for multi-page results. This is explicit when-to-use guidance rather than inference.

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