Connects Claude to Vinted's secondhand marketplace across 19 European countries. Exposes tools to search listings with filters for price, brand, category, and condition, fetch item and seller details, compare pricing across regions, and surface trending items by engagement. Also provides resources for supported countries and category hierarchies. Useful when you need to automate deal hunting, analyze seller reputation before purchase, or spot cross-border arbitrage opportunities. Requires cookies and CSRF tokens from an authenticated Vinted session. Runs via npx in stdio mode or as an HTTP server for remote clients.
An MCP server for Vinted search and analysis that provides tools to search listings, fetch item details, inspect seller profiles, compare prices across countries, and surface trending items.
It also exposes resources for supported countries and category data.
Disclaimer: This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Vinted, or any of its subsidiaries or its affiliates. The official Vinted website can be found at vinted.com.
This server works with MCP clients that support local stdio servers.
Popular clients and setup docs:
Add this to your MCP client config:
{
"mcpServers": {
"vinted": {
"command": "npx",
"args": ["-y", "@andrijdavid/vinted-mcp"]
}
}
}
bunx @andrijdavid/vinted-mcp@next
This starts the server in stdio mode and waits for an MCP client.
npm install -g @andrijdavid/vinted-mcp
Then configure:
{
"mcpServers": {
"vinted": {
"command": "vinted-mcp"
}
}
}
If you need a network endpoint instead of stdio, run:
VINTED_MCP_TRANSPORT=http VINTED_MCP_HOST=127.0.0.1 VINTED_MCP_PORT=3001 bunx @andrijdavid/vinted-mcp@next
Optional:
VINTED_MCP_PATH (default /mcp)VINTED_MCP_ENABLE_LEGACY_SSE (default true)VINTED_MCP_LEGACY_SSE_PATH (default /sse)VINTED_MCP_LEGACY_MESSAGES_PATH (default /messages)Default endpoints:
http://127.0.0.1:3001/mcphttp://127.0.0.1:3001/sseVINTED_AUTH_MODE=env \
VINTED_AUTH_COOKIES='session_cookie=your_value; other_cookie=your_value' \
VINTED_AUTH_CSRF_TOKEN='your_csrf_token' \
bunx @andrijdavid/vinted-mcp@next
$env:VINTED_AUTH_MODE = "env"
$env:VINTED_AUTH_COOKIES = "session_cookie=your_value; other_cookie=your_value"
$env:VINTED_AUTH_CSRF_TOKEN = "your_csrf_token"
bunx @andrijdavid/vinted-mcp@next
set VINTED_AUTH_MODE=env
set VINTED_AUTH_COOKIES=session_cookie=your_value; other_cookie=your_value
set VINTED_AUTH_CSRF_TOKEN=your_csrf_token
bunx @andrijdavid/vinted-mcp@next
.env fileThe server auto-loads .env from the current working directory.
cp .env.example .env
bunx @andrijdavid/vinted-mcp@next
VINTED_MCP_TRANSPORT=http \
VINTED_MCP_HOST=127.0.0.1 \
VINTED_MCP_PORT=3001 \
bunx @andrijdavid/vinted-mcp@next
Windows Command Prompt:
set VINTED_MCP_TRANSPORT=http
set VINTED_MCP_HOST=127.0.0.1
set VINTED_MCP_PORT=3001
bunx @andrijdavid/vinted-mcp@next
The server auto-loads .env from the working directory if present.
Start from the example file:
cp .env.example .env
Main variables:
VINTED_AUTH_MODE: http, playwright, or envVINTED_AUTH_COOKIES: cookie header string or JSON object stringVINTED_AUTH_CSRF_TOKEN: CSRF tokenVINTED_AUTH_ACCESS_TOKEN: optional bearer tokenVINTED_PROXY_URL: optional proxy URLVINTED_MAX_CONCURRENCY: optional tuningVINTED_REQUEST_DELAY_MS: optional tuningVINTED_MAX_RETRIES: optional tuningExample client config with env auth:
{
"mcpServers": {
"vinted": {
"command": "npx",
"args": ["-y", "@andrijdavid/vinted-mcp"],
"env": {
"VINTED_AUTH_MODE": "env",
"VINTED_AUTH_COOKIES": "session_cookie=your_value; other_cookie=your_value",
"VINTED_AUTH_CSRF_TOKEN": "your_csrf_token"
}
}
}
}
Network and refresh.https://www.vinted.<country>/api/... request.Request Headers:
cookie -> VINTED_AUTH_COOKIESx-csrf-token -> VINTED_AUTH_CSRF_TOKENauthorization: Bearer ... token into VINTED_AUTH_ACCESS_TOKEN.Security notes:
.envsearch_itemsSearch listings with filters like country, price range, brand IDs, category, condition, sort, and limit.
get_itemGet item details by itemId or url.
get_sellerGet seller profile data and optional recent items by sellerId or url.
compare_pricesCompare average and median prices for a query across countries.
get_trendingReturn trending items by engagement score.
vinted://countriesvinted://categoriesvinted://item/{country}/{itemId}vinted://seller/{country}/{sellerId}vinted://search/{country}/{query}These templates let clients create direct resource URIs quickly.
find_best_dealscreen_sellersearch_item_with_filterstrending_reportbuy_or_skip_decisionresale_arbitrage_estimatorThese predefined prompts help clients bootstrap common Vinted workflows.
Supported countries: fr, de, uk, it, es, nl, pl, pt, be, at, lt, cz, sk, hu, ro, hr, fi, dk, se.
npm install
npm run build
npm run bundle
npm start
Run protocol-level tests:
npm test
Run live integration tests:
RUN_LIVE_MCP_TESTS=1 npm test
Licensed under AGPL-3.0-or-later.
See LICENSE.md.
VINTED_AUTH_MODEAuth mode: http | playwright | env
VINTED_AUTH_COOKIESsecretRequired for env auth mode
VINTED_AUTH_CSRF_TOKENsecretRequired for env auth mode
VINTED_AUTH_ACCESS_TOKENsecretOptional for env auth mode
VINTED_PROXY_URLOptional network configuration
VINTED_MAX_CONCURRENCYOptional performance tuning. Default: 3
VINTED_REQUEST_DELAY_MSOptional performance tuning. Default: 500
VINTED_MAX_RETRIESOptional performance tuning. Default: 3
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp