Vinted Mcp

io.github.andrijdavid由 GitHub 账号 andrijdavid 发布v0.1.2更新于 Oct 24, 2026

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

概览

AI 生成的概览

面向 Vinted 的本地 MCP 服务器,让助手搜索商品、查看商品与卖家、跨国比价,并收藏商品。

可以做什么
按国家、价格区间、品牌、分类、成色、排序和数量搜索商品,并按 ID 或链接获取商品详情(商品 API 已下线,改为读取公开商品页)。查询卖家资料与近期评价,卖家近期衣橱商品仅在登录后可用。按查询词比较各国平均价与中位价,并按收藏数和浏览量列出热门商品。在账号中收藏或取消收藏商品。浏览国家与分类资源,并使用找好价、筛卖家、转售估价等提示模板。
适用场景
适合让助手调研 Vinted 上的二手服饰:在预算内找商品、购买前核查卖家、比较不同国家站点的价格,或估算转售价值。
运行要求
通过 npx 或全局 npm 安装以 stdio 在本地运行(需要 Node.js)。搜索与比价工具可匿名使用;收藏商品和查看卖家自身商品需要登录会话,可按国家运行 login 命令(需安装 Playwright 与 Chromium),或以 VINTED_AUTH_MODE=env 提供 VINTED_AUTH_COOKIES 和 VINTED_AUTH_CSRF_TOKEN。可选配置包括代理、并发、重试和请求间隔。需要访问 Vinted 的网络。
安装前请注意
env 认证模式需要 VINTED_AUTH_COOKIES、VINTED_AUTH_CSRF_TOKEN,可选 VINTED_AUTH_ACCESS_TOKEN,这些是有效的会话密钥,不要提交到版本库,泄露后应轮换。保存的浏览器配置包含已登录会话。like_item 工具会写入你的 Vinted 账号。请求会发往 Vinted 站点,本项目与 Vinted 无关联。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Vinted Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Vinted MCP Server

[npm version] [License: AGPL v3+]

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:

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

Option 1b: bunx (canary)

bash
bunx @andrijdavid/vinted-mcp@next

This starts the server in stdio mode and waits for an MCP client.

Option 2: global install

bash
npm install -g @andrijdavid/vinted-mcp

Then configure:

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

Run in network mode (Streamable HTTP over TCP)

If you need a network endpoint instead of stdio, run:

bash
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)

bash
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)

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)

bat
set VINTED_AUTH_MODE=envset VINTED_AUTH_COOKIES=session_cookie=your_value; other_cookie=your_valueset VINTED_AUTH_CSRF_TOKEN=your_csrf_tokenbunx @andrijdavid/vinted-mcp@next

Use a local .env file

The server auto-loads .env from the current working directory.

bash
cp .env.example .envbunx @andrijdavid/vinted-mcp@next

Run network mode from CLI with env

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

Windows Command Prompt:

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

Authentication and environment

The server auto-loads .env from the working directory if present.

Start from the example file:

bash
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:

json
{  "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:

bash
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.

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://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

bash
npm installnpm run buildnpm run bundlenpm start

Testing

Run protocol-level tests:

bash
npm test

Run live integration tests:

bash
RUN_LIVE_MCP_TESTS=1 npm test

License

Licensed under AGPL-3.0-or-later.

See LICENSE.md.

来源:README.md,提交 992d476

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。