Vinted二手市场MCP服务器

一个用于与Vinted二手市场交互的模型上下文协议(MCP)服务器,支持AI助手搜索、浏览和发现二手商品。

  • by Rbillon59
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Rbillon59/vinted-mcp-server

使用说明

过时的mcp服务器

A. 模型上下文协议 (MCP)服务器,用于与Vinted市场交互。使AI助手能够在Vinted上搜索、浏览和发现二手物品。

特性

  • 搜索项 --带过滤器的全文搜索(价格、品牌、大小、颜色、条件、排序)
  • 物品详情 --完整的商品信息,包括描述、照片、卖家资料和状况
  • 用户资料 --卖家评级、评论、商品计数和活动
  • 用户项目 --浏览特定用户列出的所有项目
  • 品牌搜索 --查找用于搜索筛选器的品牌ID
  • 速率限制 -代币桶速率限制器,以避免API禁令
  • 缓存 --带TTL的内存LRU缓存,用于快速重复查询
  • 重试逻辑 --瞬态误差的指数回退
  • 会话管理 --基于Puppeter的Cloudflare旁路
  • 代币高效 --针对LLM消费优化的简洁降价响应

快速开始

先决条件

  • Node.js 20+

使用npx(零安装)

此服务器通过以下方式进行通信 标准 (JSON-RPC),设计为由MCP客户端启动,而不是直接在终端中运行。在MCP客户端中配置它,如下所示。

从源代码安装

git clone https://github.com/Rbillon59/vinted-mcp-server.git
cd vinted-mcp-server
npm install
npm run build

使用Claude Desktop

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "vinted": {
      "command": "npx",
      "args": ["@rbillon59/vinted-mcp-server"],
      "env": {
        "VINTED_DOMAIN": "www.vinted.fr"
      }
    }
  }
}
Alternative: using a local build
{
  "mcpServers": {
    "vinted": {
      "command": "node",
      "args": ["/absolute/path/to/vinted-mcp-server/dist/index.js"],
      "env": {
        "VINTED_DOMAIN": "www.vinted.fr"
      }
    }
  }
}

使用Claude Code CLI

添加到您的克劳德代码设置(~/.claude/settings.json 或项目 .mcp.json):

{
  "mcpServers": {
    "vinted": {
      "command": "npx",
      "args": ["@rbillon59/vinted-mcp-server"],
      "env": {
        "VINTED_DOMAIN": "www.vinted.fr"
      }
    }
  }
}

使用游标

添加 .cursor/mcp.json 在您的项目中:

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

使用Docker

docker build -t vinted-mcp-server .
docker run -i --rm -e VINTED_DOMAIN=www.vinted.fr vinted-mcp-server

可用工具

search_items

使用过滤器搜索Vinted目录。

参数 类型 默认值 说明
query 字符串 (必填) 搜索文本(例如,“nike air max”、“robe vintage”)
page number 1 页码
per_page number 20 每页结果数(最多96个)
order string “相关性” 排序: relevance, price_low_to_high, price_high_to_low, newest_first
price_from number -- 最低价格筛选器
price_to number -- 最高价格过滤器
brand_ids string -- 品牌ID(逗号分隔)
size_ids string -- 大小ID(逗号分隔)
color_ids string -- 颜色ID(逗号分隔)
catalog_ids string -- 类别ID(逗号分隔)
status_ids string -- 条件: 6=新标签, 1新 2=非常好, 3=良好, 4=满意

get_item_details

获取特定项目的详细信息。

参数 类型 说明
item_id number Vinted项目ID(来自搜索结果)

返回:标题、价格、描述、品牌、尺寸、状况、颜色、卖家信息(评级、位置)、照片、统计数据(浏览量、收藏夹)。

get_user_profile

获取卖家的个人资料信息。

参数 类型 说明
user_id number Vinted用户ID(来自搜索结果或项目详细信息)

返回:用户名、评级、评论细分、列出/出售的项目、位置、会员加入时间、上次活动时间。

get_user_items

浏览特定用户列出的所有项目。

参数 类型 默认值 说明
user_id 编号 (必填) Vinted用户ID
page number 1 页码
per_page number 20 每页结果

search_brands

搜索品牌名称并获取其ID,以便在搜索过滤器中使用。

参数 类型 说明
query string 要搜索的品牌名称(例如“Nike”、“Zara”)

配置

环境变量 默认值 描述
VINTED_DOMAIN www.vinted.fr Vinted域(例如。, www.vinted.de, www.vinted.es, www.vinted.it)
PUPPETEER_EXECUTABLE_PATH -- Puppeter的自定义Chrome/Chromium路径
BROWSER_TIMEOUT_MS 30000 Cloudflare质询解决超时(ms)

支持的域名

域名 国家
www.vinted.fr 法国
www.vinted.de 德国
www.vinted.es 西班牙
www.vinted.it 意大利
www.vinted.nl 荷兰
www.vinted.be 比利时
www.vinted.pl 波兰
www.vinted.pt 葡萄牙
www.vinted.lt 立陶宛
www.vinted.cz 捷克共和国
www.vinted.co.uk 联合王国

建筑

src/
  index.ts              # Entry point, stdio transport
  server.ts             # MCP server config & tool registration
  tools/
    search.ts           # search_items tool
    item.ts             # get_item_details tool
    user.ts             # get_user_profile tool
    user-items.ts       # get_user_items tool
    brands.ts           # search_brands tool
  api/
    client.ts           # HTTP client (session, cache, rate limit, retry)
    session-provider.ts # Browser-based session (Cloudflare bypass)
    browser-utils.ts    # Shared Puppeteer/stealth utilities
    types.ts            # Vinted API response types
  utils/
    cache.ts            # TTL cache with LRU eviction
    rate-limiter.ts     # Token bucket rate limiter
    mcp-error.ts        # Shared MCP error response builder

可靠性特征

  • 速率限制:代币桶(10 req/10s)阻止API禁令
  • 缓存:LRU缓存(3分钟TTL,最多200个条目)减少了冗余请求
  • 重试:429/5xx错误的指数回退(1s,2s)
  • 会话恢复:401/403自动刷新cookie,请求合并
  • 请求重复数据删除:并发的相同请求共享单个API调用
  • Cloudflare旁路:带有会话获取隐形插件的Puppeteer

许可证

麻省理工学院