Vinted

Un servidor MCP para búsqueda y análisis en Vinted que proporciona herramientas para buscar listados, obtener detalles de artículos, inspeccionar perfiles de vendedores, comparar precios entre países y mostrar artículos en tendencia.

Documentación

Servidor MCP de Vinted

npm version License: AGPL v3+

Un servidor MCP para búsqueda y análisis de Vinted que proporciona herramientas para buscar anuncios, obtener detalles de artículos, inspeccionar perfiles de vendedores, comparar precios entre países y mostrar artículos en tendencia.

También expone recursos para países compatibles y datos de categorías.

Aviso legal: Este proyecto no está afiliado, asociado, autorizado, respaldado por, ni de ninguna manera conectado oficialmente con Vinted, ni con cualquiera de sus subsidiarias o afiliados. El sitio web oficial de Vinted se puede encontrar en vinted.com.

Soporte de clientes

Este servidor funciona con clientes MCP que admiten servidores locales stdio.

Clientes populares y documentación de configuración:

Inicio rápido

Opción 1: npx

Añade esto a la configuración de tu cliente MCP:

{
  "mcpServers": {
    "vinted": {
      "command": "npx",
      "args": ["-y", "@andrijdavid/vinted-mcp"]
    }
  }
}

Opción 1b: bunx (canary)

bunx @andrijdavid/vinted-mcp@next

Esto inicia el servidor en modo stdio y espera a un cliente MCP.

Opción 2: instalación global

npm install -g @andrijdavid/vinted-mcp

Luego configura:

{
  "mcpServers": {
    "vinted": {
      "command": "vinted-mcp"
    }
  }
}

Ejecutar en modo red (Streamable HTTP sobre TCP)

Si necesitas un endpoint de red en lugar de stdio, ejecuta:

VINTED_MCP_TRANSPORT=http VINTED_MCP_HOST=127.0.0.1 VINTED_MCP_PORT=3001 bunx @andrijdavid/vinted-mcp@next

Opcional:

  • VINTED_MCP_PATH (por defecto /mcp)
  • VINTED_MCP_ENABLE_LEGACY_SSE (por defecto true)
  • VINTED_MCP_LEGACY_SSE_PATH (por defecto /sse)
  • VINTED_MCP_LEGACY_MESSAGES_PATH (por defecto /messages)

Endpoints por defecto:

  • Streamable HTTP (recomendado): http://127.0.0.1:3001/mcp
  • SSE heredado (clientes antiguos): http://127.0.0.1:3001/sse

Uso de CLI y variables de entorno

Pasar variables de entorno en línea (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

Pasar variables de entorno en línea (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

Pasar variables de entorno en línea (Símbolo del sistema de Windows)

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

Usar un archivo .env local

El servidor carga automáticamente .env desde el directorio de trabajo actual.

cp .env.example .env
bunx @andrijdavid/vinted-mcp@next

Ejecutar modo red desde CLI con entorno

VINTED_MCP_TRANSPORT=http \
VINTED_MCP_HOST=127.0.0.1 \
VINTED_MCP_PORT=3001 \
bunx @andrijdavid/vinted-mcp@next

Símbolo del sistema de Windows:

set VINTED_MCP_TRANSPORT=http
set VINTED_MCP_HOST=127.0.0.1
set VINTED_MCP_PORT=3001
bunx @andrijdavid/vinted-mcp@next

Autenticación y entorno

El servidor carga automáticamente .env desde el directorio de trabajo si está presente.

Comienza desde el archivo de ejemplo:

cp .env.example .env

Variables principales:

  • VINTED_AUTH_MODE: http, playwright, o env
  • VINTED_AUTH_COOKIES: cadena de encabezado de cookie u objeto JSON como cadena
  • VINTED_AUTH_CSRF_TOKEN: token CSRF
  • VINTED_AUTH_ACCESS_TOKEN: token bearer opcional
  • VINTED_AUTH_REFRESH_TOKEN: token de actualización opcional, usado para generar un nuevo token de acceso
  • VINTED_PROFILE_DIR: raíz opcional para perfiles de navegador creados por login, por defecto ~/.vinted-mcp
  • VINTED_PROXY_URL: URL de proxy opcional
  • VINTED_MAX_CONCURRENCY: ajuste opcional
  • VINTED_REQUEST_DELAY_MS: ajuste opcional
  • VINTED_MAX_RETRIES: ajuste opcional

Ejemplo de configuración de cliente con autenticación por entorno:

{
  "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"
      }
    }
  }
}

Iniciar sesión

Las herramientas de búsqueda y precios funcionan de forma anónima. Cualquier cosa vinculada a tu cuenta (like_item) necesita una sesión iniciada. Ejecuta esto una vez por país:

npx @andrijdavid/vinted-mcp login --country fr

Se abre una ventana del navegador en Vinted. Inicia sesión de la forma habitual (contraseña, captcha, 2FA, inicio de sesión con Google todo funciona). La ventana se cierra sola una vez que has iniciado sesión, y el perfil del navegador se guarda en ~/.vinted-mcp/profile-<country>. El servidor reabre ese perfil sin interfaz gráfica cuando necesita cookies, por lo que la sesión se renueva sola y no hay nada que copiar o pegar.

Requisitos: Playwright con Chromium (npm i playwright && npx playwright install chromium). Establece VINTED_PROFILE_DIR para mover la raíz del perfil a otro lugar que no sea ~/.vinted-mcp.

Cookies manuales (servidores sin interfaz gráfica y CI)

Donde no se pueda abrir un navegador, usa VINTED_AUTH_MODE=env y proporciona las credenciales tú mismo:

  1. Inicia sesión en Vinted en tu navegador.
  2. Abre las Herramientas de Desarrollo.
  3. Abre Network y actualiza.
  4. Abre cualquier solicitud https://www.vinted.<country>/api/....
  5. Copia desde Request Headers:
    • cookie -> VINTED_AUTH_COOKIES
    • x-csrf-token -> VINTED_AUTH_CSRF_TOKEN
  6. Opcional: copia el token authorization: Bearer ... en VINTED_AUTH_ACCESS_TOKEN, y el valor de la cookie refresh_token_web en VINTED_AUTH_REFRESH_TOKEN.

Notas de seguridad:

  • trata estos valores como secretos
  • nunca hagas commit de .env
  • rota tokens/cookies si se exponen
  • el perfil de navegador guardado contiene una sesión activa; se almacena con permisos de solo propietario

Herramientas

search_items

Busca anuncios con filtros como país, rango de precios, IDs de marca, categoría, condición, orden y límite.

get_item

Obtén detalles de artículos por itemId o url.

get_seller

Obtén datos del perfil del vendedor y artículos recientes opcionales por sellerId o url.

compare_prices

Compara precios promedio y medianos para una consulta entre países.

get_trending

Devuelve artículos en tendencia por puntuación de participación.

like_item

Añade un artículo a tus favoritos por itemId o url, o elimínalo con unlike: true. Necesita una sesión iniciada, consulta Iniciar sesión. Los artículos ya marcados como favoritos se dejan intactos en lugar de desmarcarse.

Recursos

  • vinted://countries
  • vinted://categories

Plantillas de recursos

  • vinted://item/{country}/{itemId}
  • vinted://seller/{country}/{sellerId}
  • vinted://search/{country}/{query}

Estas plantillas permiten a los clientes crear URIs de recursos directos rápidamente.

Plantillas de prompts

  • find_best_deal
  • screen_seller
  • search_item_with_filters
  • trending_report
  • buy_or_skip_decision
  • resale_arbitrage_estimator

Estos prompts predefinidos ayudan a los clientes a iniciar flujos de trabajo comunes de Vinted.

Países compatibles: fr, de, uk, it, es, nl, pl, pt, be, at, lt, cz, sk, hu, ro, hr, fi, dk, se.

Desarrollo local

npm install
npm run build
npm run bundle
npm start

Pruebas

Ejecuta pruebas a nivel de protocolo:

npm test

Ejecuta pruebas de integración en vivo:

RUN_LIVE_MCP_TESTS=1 npm test

Licencia

Licenciado bajo AGPL-3.0-or-later.

Consulta LICENSE.md.