io.github.andrijdavid/vinted-mcp
MCP Server for Vinted that allows to search items, compare prices, and analyze sellers.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@andrijdavid/vinted-mcpclaude mcp add vinted-mcp -e 'VINTED_AUTH_MODE=<VINTED_AUTH_MODE>' -e 'VINTED_AUTH_COOKIES=<your vinted_auth_cookies>' -e 'VINTED_AUTH_CSRF_TOKEN=<your vinted_auth_csrf_token>' -e 'VINTED_AUTH_ACCESS_TOKEN=<your vinted_auth_access_token>' -e 'VINTED_PROXY_URL=<VINTED_PROXY_URL>' -e 'VINTED_MAX_CONCURRENCY=<VINTED_MAX_CONCURRENCY>' -e 'VINTED_REQUEST_DELAY_MS=<VINTED_REQUEST_DELAY_MS>' -e 'VINTED_MAX_RETRIES=<VINTED_MAX_RETRIES>' -- npx -y @andrijdavid/vinted-mcp@0.1.2
{
"mcpServers": {
"vinted-mcp": {
"command": "npx",
"args": [
"-y",
"@andrijdavid/vinted-mcp@0.1.2"
],
"env": {
"VINTED_AUTH_MODE": "<VINTED_AUTH_MODE>",
"VINTED_AUTH_COOKIES": "<your vinted_auth_cookies>",
"VINTED_AUTH_CSRF_TOKEN": "<your vinted_auth_csrf_token>",
"VINTED_AUTH_ACCESS_TOKEN": "<your vinted_auth_access_token>",
"VINTED_PROXY_URL": "<VINTED_PROXY_URL>",
"VINTED_MAX_CONCURRENCY": "<VINTED_MAX_CONCURRENCY>",
"VINTED_REQUEST_DELAY_MS": "<VINTED_REQUEST_DELAY_MS>",
"VINTED_MAX_RETRIES": "<VINTED_MAX_RETRIES>"
}
}
}
}
Environment variables
VINTED_AUTH_MODEAuth mode: http | playwright | envVINTED_AUTH_COOKIESsecret Required for env auth modeVINTED_AUTH_CSRF_TOKENsecret Required for env auth modeVINTED_AUTH_ACCESS_TOKENsecret Optional for env auth modeVINTED_PROXY_URLOptional network configurationVINTED_MAX_CONCURRENCYOptional performance tuning. Default: 3VINTED_REQUEST_DELAY_MSOptional performance tuning. Default: 500VINTED_MAX_RETRIESOptional performance tuning. Default: 3
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
Vinted MCP Server
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.
Client support
This server works with MCP clients that support local stdio servers.
Popular clients and setup docs:
- Claude Desktop (local): https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop
- Claude Desktop (remote): https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp
- ChatGPT (MCP developer mode): https://platform.openai.com/docs/guides/developer-mode
- ChatGPT (MCP and connectors): https://platform.openai.com/docs/guides/tools-remote-mcp
- Cursor: https://docs.cursor.com/context/model-context-protocol
- Windsurf: https://docs.windsurf.com/windsurf/cascade/mcp
- Cline: https://docs.cline.bot/mcp/configuring-mcp-servers
- Full MCP client directory: https://modelcontextprotocol.io/clients
Quick start
Option 1: npx
Add this to your MCP client config:
{
"mcpServers": {
"vinted": {
"command": "npx",
"args": ["-y", "@andrijdavid/vinted-mcp"]
}
}
}
Option 1b: bunx (canary)
bunx @andrijdavid/vinted-mcp@next
This starts the server in stdio mode and waits for an MCP client.
Option 2: global install
npm install -g @andrijdavid/vinted-mcp
Then configure:
{
"mcpServers": {
"vinted": {
"command": "vinted-mcp"
}
}
}
Run in network mode (Streamable HTTP over TCP)
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(defaulttrue)VINTED_MCP_LEGACY_SSE_PATH(default/sse)VINTED_MCP_LEGACY_MESSAGES_PATH(default/messages)
Default endpoints:
- Streamable HTTP (recommended):
http://127.0.0.1:3001/mcp - Legacy SSE (older clients):
http://127.0.0.1:3001/sse
CLI usage and env variables
Pass env vars inline (macOS/Linux)
VINTED_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
Pass env vars inline (PowerShell)
$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
Pass env vars inline (Windows Command Prompt)
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
Use a local .env file
The server auto-loads .env from the current working directory.
cp .env.example .env
bunx @andrijdavid/vinted-mcp@next
Run network mode from CLI with env
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
Authentication and environment
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, orenvVINTED_AUTH_COOKIES: cookie header string or JSON object stringVINTED_AUTH_CSRF_TOKEN: CSRF tokenVINTED_AUTH_ACCESS_TOKEN: optional bearer tokenVINTED_AUTH_REFRESH_TOKEN: optional refresh token, used to mint a new access tokenVINTED_PROFILE_DIR: optional root for browser profiles created bylogin, default~/.vinted-mcpVINTED_PROXY_URL: optional proxy URLVINTED_MAX_CONCURRENCY: optional tuningVINTED_REQUEST_DELAY_MS: optional tuningVINTED_MAX_RETRIES: optional tuning
Example 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"
}
}
}
}
Signing in
Search and price tools work anonymously. Anything tied to your account (like_item), plus a
seller's own listings in get_seller, needs a logged-in session. Run this once per country:
npx @andrijdavid/vinted-mcp login --country fr
A browser window opens on Vinted. Sign in the way you normally do (password, captcha, 2FA, Google
login all work). The window closes by itself once you are signed in, and the browser profile is
saved to ~/.vinted-mcp/profile-<country>. The server reopens that profile headlessly when it needs
cookies, so the session refreshes itself and there is nothing to copy or paste.
Requirements: Playwright with Chromium (npm i playwright && npx playwright install chromium).
Set VINTED_PROFILE_DIR to move the profile root somewhere other than ~/.vinted-mcp.
Manual cookies (headless servers and CI)
Where no browser can be opened, use VINTED_AUTH_MODE=env and supply the credentials yourself:
- Sign in to Vinted in your browser.
- Open Developer Tools.
- Open
Networkand refresh. - Open any
https://www.vinted.<country>/api/...request. - Copy from
Request Headers:cookie->VINTED_AUTH_COOKIESx-csrf-token->VINTED_AUTH_CSRF_TOKEN
- Optional: copy
authorization: Bearer ...token intoVINTED_AUTH_ACCESS_TOKEN, and therefresh_token_webcookie value intoVINTED_AUTH_REFRESH_TOKEN.
Security notes:
- treat these values as secrets
- never commit
.env - rotate tokens/cookies if exposed
- the saved browser profile holds a live session; it is stored with owner-only permissions
Tools
search_items
Search listings with filters like country, price range, brand IDs, category, condition, sort, and limit.
get_item
Get item details by itemId or url. Vinted retired the item API, so this reads the public item
page instead: it is slower than search, and view counts and listing dates are no longer available.
get_seller
Get seller profile data, recent reviews and optional recent items by sellerId or url. The rating
is on a 0-5 scale. Recent items come from the seller's wardrobe, which Vinted returns empty to
anonymous callers, so that part needs a logged-in session.
compare_prices
Compare average and median prices for a query across countries.
get_trending
Return recently listed items ranked by favourites, then views. The catalogue API no longer returns listing timestamps or view counts, so the ranking is coarser than it used to be.
like_item
Add an item to your favourites by itemId or url, or remove it with unlike: true. Needs a
logged-in session, see Signing in. Already-liked items are left alone rather than
toggled off.
Resources
vinted://countriesvinted://categories
Resource templates
vinted://item/{country}/{itemId}vinted://seller/{country}/{sellerId}vinted://search/{country}/{query}
These templates let clients create direct resource URIs quickly.
Prompt templates
find_best_dealscreen_sellersearch_item_with_filterstrending_reportbuy_or_skip_decisionresale_arbitrage_estimator
These 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.
Local development
npm install
npm run build
npm run bundle
npm start
Testing
Run protocol-level tests:
npm test
Run live integration tests:
RUN_LIVE_MCP_TESTS=1 npm test
License
Licensed under AGPL-3.0-or-later.
See LICENSE.md.
Frequently asked questions
What is io.github.andrijdavid/vinted-mcp?
MCP Server for Vinted that allows to search items, compare prices, and analyze sellers.
How do I install io.github.andrijdavid/vinted-mcp?
It runs on your machine. In Claude Code: claude mcp add vinted-mcp -e 'VINTED_AUTH_MODE=<VINTED_AUTH_MODE>' -e 'VINTED_AUTH_COOKIES=<your vinted_auth_cookies>' -e 'VINTED_AUTH_CSRF_TOKEN=<your vinted_auth_csrf_token>' -e 'VINTED_AUTH_ACCESS_TOKEN=<your vinted_auth_access_token>' -e 'VINTED_PROXY_URL=<VINTED_PROXY_URL>' -e 'VINTED_MAX_CONCURRENCY=<VINTED_MAX_CONCURRENCY>' -e 'VINTED_REQUEST_DELAY_MS=<VINTED_REQUEST_DELAY_MS>' -e 'VINTED_MAX_RETRIES=<VINTED_MAX_RETRIES>' -- npx -y @andrijdavid/vinted-mcp@0.1.2. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.andrijdavid/vinted-mcp need an API key?
Yes. It expects VINTED_AUTH_COOKIES, VINTED_AUTH_CSRF_TOKEN, VINTED_AUTH_ACCESS_TOKEN, which you set in its configuration.
Is io.github.andrijdavid/vinted-mcp open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains io.github.andrijdavid/vinted-mcp?
It is published by andrijdavid. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.