过时的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
许可证
麻省理工学院
