CLI and MCP server for the Vinted marketplace — search, items, sellers, price compare, trending.
Strong tool naming (all verb_noun pattern) and comprehensive parameter schemas with enums and descriptions. All 12 tools have clear, detailed descriptions (avg 180 chars, well within 10-1024 range). Input schemas are well-structured with proper types, enums for country/condition/sort, and sensible defaults. Output schemas are documented in descriptions but not formally declared in JSON Schema. Error handling is minimal, no recovery guidance or actionable error messages visible in code. Missing tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only. No pagination metadata (total_count, next_cursor) visible in response structures.
Compare prices for a search query across multiple Vinted country sites simultaneously. Returns median, mean, min, max, standard deviation, and sample count per country along with the local currency. Useful for finding the cheapest market to buy a specific item or understanding cross-border price gaps.
Fetch the full Vinted category tree for a country. Returns a flat list of all categories and subcategories with their numeric IDs, names, parent IDs, and item counts. Pass a categoryId to search_items or search_all_items to restrict results to a department (e.g. women's clothing, men's shoes, electronics). Results are cached for 1 hour.
Fetch all available color options for filtering Vinted listings. Returns color IDs, names, hex codes, and sort order. Use the returned IDs with search_items.colorIds to filter by color.
Fetch complete item details by Vinted item ID (with country) or by a direct Vinted item URL. Returns title, price, currency, brand, size, condition, full description, all photo URLs, creation date, item URL, favourite count, and seller username/ID. Automatically falls back to HTML scraping when the JSON API is unavailable.
Fetch a seller's public profile by their numeric user ID. Returns username, active listing count, feedback reputation score (0–1 float), total feedback count, country code, and profile URL. Use get_seller_feedback to read review texts and star ratings, and get_seller_items to browse their listings.
No tool annotations (readOnlyHint, idempotentHint) despite all 12 tools being read-only, safe-to-retry operations. LLMs cannot infer safety properties without explicit hints.
Output schemas not formally documented in JSON Schema format. Descriptions mention returned fields (title, price, brand, etc.) but no structured schema definition visible. Agents cannot validate or parse responses reliably.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Fetch paginated seller feedback/reviews by seller ID. Returns feedback entries with star ratings (1–5), feedback text, creation date, and the reviewer's username. Useful for assessing seller trustworthiness before purchase.
List all items currently for sale by a specific seller, paginated. Returns the same fields as search_items (title, price, brand, size, condition, photo URL, item URL). Useful for browsing a seller's full catalogue after finding them via search_items or get_seller.
Fetch all available size groups and their size entries for a country. Returns size group names (e.g. 'Shoes', 'Clothing') and their associated size values (e.g. 'XS', 'S', 'M', '36', '37'). Use the returned size IDs with search_items.sizeIds to filter by size.
Fetch trending/newest items from Vinted, optionally filtered by category. Returns the same item fields as search_items. Useful for discovering popular items or monitoring new listings in a specific category.
Search Vinted listings and automatically paginate through all results, returning up to maxItems items in a single call. Use this instead of search_items when you need comprehensive results — e.g. "find all Nike shoes under €30" or "list every item in size M from this brand". Pages are fetched concurrently for speed. Returns the same item fields as search_items.
Search Vinted's brand catalogue by keyword. Returns matching brands with their numeric IDs, slugs, total item counts, and favourite counts. Pass the returned IDs to search_items.brandIds, or use search_items.brand[] to pass names and have them resolved automatically.
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.
Pagination metadata missing from response descriptions. search_items and search_all_items accept page/perPage/maxItems but no indication of total_count, has_next_page, or next_cursor in responses. Agents cannot determine if more results exist.
No error handling or recovery guidance visible. Tools lack descriptions of failure modes (API unavailable, item not found, invalid country) or actionable next steps for LLMs. Bare errors will confuse agents.
Parameter descriptions include example values (e.g., 'e.g. "Nike Air Max 90"', 'e.g. 5678901234') which LLMs may reuse literally. Should use enum constraints and format declarations instead.