io.github.andrijdavid/vinted-mcp

Registre officiel Recherche et web

MCP Server for Vinted that allows to search items, compare prices, and analyze sellers.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package @andrijdavid/vinted-mcp
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
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "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>"
            }
        }
    }
}

Variables d'environnement

  • VINTED_AUTH_MODE Auth mode: http | playwright | env
  • VINTED_AUTH_COOKIES secret Required for env auth mode
  • VINTED_AUTH_CSRF_TOKEN secret Required for env auth mode
  • VINTED_AUTH_ACCESS_TOKEN secret Optional for env auth mode
  • VINTED_PROXY_URL Optional network configuration
  • VINTED_MAX_CONCURRENCY Optional performance tuning. Default: 3
  • VINTED_REQUEST_DELAY_MS Optional performance tuning. Default: 500
  • VINTED_MAX_RETRIES Optional performance tuning. Default: 3

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Vinted MCP Server
  2. Client support
  3. Quick start
  4. CLI usage and env variables
  5. Authentication and environment
  6. Signing in
  7. Tools
  8. Resources
  9. Prompt templates
  10. Local development
  11. Testing
  12. License

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:

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 (default true)
  • 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, or env
  • VINTED_AUTH_COOKIES: cookie header string or JSON object string
  • VINTED_AUTH_CSRF_TOKEN: CSRF token
  • VINTED_AUTH_ACCESS_TOKEN: optional bearer token
  • VINTED_AUTH_REFRESH_TOKEN: optional refresh token, used to mint a new access token
  • VINTED_PROFILE_DIR: optional root for browser profiles created by login, default ~/.vinted-mcp
  • VINTED_PROXY_URL: optional proxy URL
  • VINTED_MAX_CONCURRENCY: optional tuning
  • VINTED_REQUEST_DELAY_MS: optional tuning
  • VINTED_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:

  1. Sign in to Vinted in your browser.
  2. Open Developer Tools.
  3. Open Network and refresh.
  4. Open any https://www.vinted.<country>/api/... request.
  5. Copy from Request Headers:
    • cookie -> VINTED_AUTH_COOKIES
    • x-csrf-token -> VINTED_AUTH_CSRF_TOKEN
  6. Optional: copy authorization: Bearer ... token into VINTED_AUTH_ACCESS_TOKEN, and the refresh_token_web cookie value into VINTED_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.

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://countries
  • vinted://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_deal
  • screen_seller
  • search_item_with_filters
  • trending_report
  • buy_or_skip_decision
  • resale_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.

Questions fréquentes

Qu'est-ce que io.github.andrijdavid/vinted-mcp ?

MCP Server for Vinted that allows to search items, compare prices, and analyze sellers.

Comment installer io.github.andrijdavid/vinted-mcp ?

Il s'exécute sur votre machine. Dans 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. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.andrijdavid/vinted-mcp ?

Oui. Il attend VINTED_AUTH_COOKIES, VINTED_AUTH_CSRF_TOKEN, VINTED_AUTH_ACCESS_TOKEN, à renseigner dans sa configuration.

io.github.andrijdavid/vinted-mcp est-il open source ?

Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.

Qui maintient io.github.andrijdavid/vinted-mcp ?

Il est publié par andrijdavid. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.