vinted-mcp
Enables searching second-hand listings on Vinted, with filters for keywords, price range, sort order (relevance, cheapest, most expensive, newest), and pagination. Returns total match counts and listing details including title, price (with buyer protection fee), brand, size, condition, link, photo, business seller status, and favourites. Supports any Vinted country domain via configuration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vinted-mcpsearch for used Zara dresses under €25 and show me the newest"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vinted-mcp
MCP server for searching second-hand listings on Vinted, so Claude (or any MCP client) can answer "what does a used X go for?".
Anonymous and read-only. No login, no account, no writes: it only searches. Not affiliated with Vinted.
Tool
search
Search listings, with optional filters. Returns the total number of matches and the listings for one page.
Parameters:
query— search keywords (e.g."nike air max 90","vestido zara")price_min/price_max— price range in EURsort—"relevance"(default) |"cheap"|"expensive"|"newest"page— page number (default 1)per_page— results per page (default 24, max 96)
Each listing has: title, price, price with Vinted's buyer protection fee (shipping is extra), brand, size, condition, link, photo, whether the seller is a business, and favourites.
Tip: "cheap" also pulls in loosely related listings. For "the cheapest X", use the default relevance sort with price_max.
Related MCP server: marktplaats-mcp
Install
Quickest (needs uv): no clone needed, it runs straight from PyPI.
claude mcp add vinted -- uvx vinted-search-mcpFor Claude Desktop, use "command": "uvx", "args": ["vinted-search-mcp"].
From source:
Requires Python 3.10+.
git clone https://github.com/ThiagoJacobLannes/vinted-mcp
cd vinted-mcp
python -m pip install -e .On Windows, if you keep code in a cloud-synced folder (Google Drive, OneDrive), create the virtual environment outside it: sync clients drop desktop.ini files into folders, which can crash packages on startup.
Add to Claude Code
claude mcp add vinted -- python -m vinted_mcp.serverAdd to Claude Desktop
Merge claude_desktop_config.snippet.json into your Claude Desktop claude_desktop_config.json, then restart Claude Desktop:
{
"mcpServers": {
"vinted": {
"command": "python",
"args": ["-m", "vinted_mcp.server"]
}
}
}Other countries
Portugal is the default. Set VINTED_BASE_URL to another Vinted domain (for example https://www.vinted.fr or https://www.vinted.es) to search there.
How it works
Vinted has no official API. The server loads Vinted's public catalog page for your search and reads the results the page already contains (they arrive as React Server Component data). If Vinted changes its page, the tool fails with a clear {"error": ...} instead of returning wrong data.
License
MIT
Available Tools
1 toolsearchA
Search second-hand listings on Vinted (Portugal by default; anonymous, read-only).
Good for "what does a used X go for on Vinted?" price research. Prices are what the seller asks; total_with_buyer_protection adds Vinted's buyer fee (shipping is extra).
Args: query: Search keywords, e.g. "nike air max 90", "vestido zara". price_min: Minimum price in EUR. price_max: Maximum price in EUR. sort: "relevance" (default) | "cheap" | "expensive" | "newest". "cheap" also pulls in loosely related listings; for "the cheapest X", prefer relevance with price_max. page: Results page (default 1). per_page: Results per page (default 24, max 96).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | relevance | |
| query | Yes | ||
| per_page | No | ||
| price_max | No | ||
| price_min | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it delivers the key traits: anonymous access, read-only operation, default region, and the meaning of prices (asking price vs. total_with_buyer_protection which adds the buyer fee, shipping excluded). It omits rate limits and pagination depth limits beyond the per_page cap, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line summary, then a use-case sentence, then a structured Args block. Every line adds information not present in the schema; nothing is redundant filler despite the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, and the description still adds fee/pricing interpretation on top. All parameters, defaults, region scope, and access model are covered — nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate entirely, and it does: every one of the six parameters is documented with type meaning, units (EUR), defaults, the full sort enum with behavioral caveats, and the per_page max of 96. The note that 'cheap' pulls in loosely related listings is genuinely non-obvious semantics an agent could not infer from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('search second-hand listings on Vinted') plus scope qualifiers: Portugal by default, anonymous, read-only. There are no sibling tools to differentiate from, so it stops just short of the top mark, but an agent knows exactly what this does 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete use case ("what does a used X go for on Vinted?" price research) and an explicit routing rule for a common sub-intent: for 'the cheapest X', prefer relevance with price_max over sort='cheap'. No when-not-to-use guidance, but with no siblings there is little to exclude.
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 tool update
v0.1.0- First observed
search
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of overlap or misselection. Its purpose is clearly stated as read-only Vinted listing search.
The single tool name 'search' is clean and predictable. With only one tool, there is no mixed convention or inconsistency.
One tool is borderline thin for a server branded around Vinted, though the description scopes it narrowly to read-only price research. It earns its place but leaves little room for broader workflows.
Search covers the core price-research use case, but there is no way to fetch a specific listing's full details, seller info, or images. These are notable gaps for anything beyond quick price checks.
Maintenance
Related MCP Connectors
Search and browse global classifieds across 80 markets. No auth required for read-only access.
Search MCP servers, MCP clients and AI agents, and retrieve listing details. Free, read-only access.
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Search commercial real estate listings. Reads need no token; authoring is self-serve OAuth (DCR).
Related MCP Servers
- AlicenseDqualityAmaintenanceEnables product search and price comparison across Ozon and Yandex Market via a read-only MCP server, returning normalized data with source URLs.61MIT
- AlicenseAqualityBmaintenanceRead-only MCP server for Marktplaats.nl (Dutch classifieds) that lets agents search listings and read price, specs, condition, delivery, location, and seller details.312 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables searching public marketplace listings on Bunjang, returning matching items with their asking prices, an average/highest/lowest asking-price summary, sale status, seller and engagement metadata, seller descriptions, and original-size product image URLs. Supports cursor-based pagination to continue through results and an option to skip detail requests for faster responses.-
- AlicenseNot gradedqualityBmaintenanceEnables search of Poshmark's public marketplace for sold and active listings, returning detailed comp data such as price, size, brand, condition, sold date, seller, and listing URLs—no login or API key required.301 npmMIT