xianyu-mcp
Enables AI agents to search Xianyu second-hand marketplace for product prices with automatic cookie detection.
README
闲鱼 MCP Server 🏪
让 AI Agent(如 OpenCode)能够通过 MCP 协议搜索闲鱼二手商品价格。
✨ 核心特性
- 🔍 搜索闲鱼二手价格 — 输入关键词,获取商品标题、价格、地区、链接
- 🍪 Cookie 全自动检测 — 不再需要手动导 Cookie!按优先级自动尝试 4 种方式:
- 从 Chrome 浏览器自动提取(已登录闲鱼时,全自动,无感)
- 从已保存的配置文件读取(之前登录过,自动复用)
- 从环境变量读取(服务器/CI 场景)
- 弹出浏览器窗口让您登录(首次无 Cookie + 有图形界面时,只需一次)
- 🔄 一次登录,永久使用 — 交互式登录成功后,Cookie 自动保存复用
- ⚡ 基于 Playwright — 可靠渲染闲鱼 SPA 页面,精确提取商品信息
📦 安装
# 1. 安装 Python 依赖
pip install -r /home/hesheng/projects/xianyu-mcp/requirements.txt
# 2. 安装 Playwright Chromium 浏览器
python -m playwright install chromium
🚀 启动
# 方式一:直接启动
mcp run /home/hesheng/projects/xianyu-mcp/main.py
# 方式二:配置到 OpenCode
在 opencode.jsonc 中添加:
{
"mcpServers": {
"xianyu-mcp": {
"command": "mcp",
"args": ["run", "/home/hesheng/projects/xianyu-mcp/main.py"]
}
}
}
🎯 使用示例
在 OpenCode 中直接问:
「帮我搜一下闲鱼上 iPhone 15 Pro Max 256G 二手什么价」 「MacBook Air M3 在闲鱼上大概多少钱」 「索尼 A7M4 二手行情怎么样」
Agent 会自动调用 xianyu_search 工具,返回:
| 标题 | 价格 | 地区 | 链接 |
|---|---|---|---|
| iPhone 15 Pro Max 256G 原色 99新 | ¥8,299 | 上海 | [查看] |
| iPhone 15 Pro Max 256G 国行在保 | ¥7,999 | 深圳 | [查看] |
🍪 Cookie 获取方式(按自动化程度排序)
方式 1:从 Chrome 自动提取(全自动,推荐 ✅)
如果您的 Chrome 浏览器已经登录过闲鱼,MCP 会自动从 Chrome 的 Cookie 数据库中提取登录态,无需任何操作。
注意:此方式需要安装
keyring库以解密 Chrome 的加密 Cookie:pip install keyring如果未安装
keyring,MCP 会自动降级到方式 4。
方式 2:已保存的配置文件(自动复用)
如果您之前通过方式 4 登录过一次,Cookie 会自动保存到 ~/.config/xianyu/cookies.json,后续启动时自动复用,无需再次登录。
方式 3:环境变量(服务器/无界面环境)
export XIANYU_COOKIE='[{"name":"_m_h5_tk","value":"xxx"...}]'
用 EditThisCookie 插件导出 JSON 后,将内容设为环境变量。
方式 4:弹窗登录(首次使用,有图形界面时)
如果以上方式都不可用,且系统有图形界面,MCP 会自动打开一个浏览器窗口,您扫码或登录闲鱼后,Cookie 自动捕获并保存。
🔧 自测试
# 检查语法
python -c "import ast; ast.parse(open('/home/hesheng/projects/xianyu-mcp/main.py').read()); print('Syntax OK')"
python -c "import ast; ast.parse(open('/home/hesheng/projects/xianyu-mcp/cookie_manager.py').read()); print('Syntax OK')"
python -c "import ast; ast.parse(open('/home/hesheng/projects/xianyu-mcp/browser.py').read()); print('Syntax OK')"
python -c "import ast; ast.parse(open('/home/hesheng/projects/xianyu-mcp/search.py').read()); print('Syntax OK')"
# 测试导入(仅测试无外部依赖的部分)
python -c "from cookie_manager import CookieManager; print('CookieManager 导入成功')"
📁 项目结构
xianyu-mcp/
├── main.py # MCP 服务入口,FastMCP 定义 tools
├── cookie_manager.py # Cookie 自动检测(4 种方式链式尝试)
├── browser.py # Playwright 浏览器管理器(headless/headful 双模式)
├── search.py # 闲鱼搜索逻辑(页面加载 → 滚动 → DOM 解析)
├── __init__.py
├── requirements.txt
└── README.md
⚠️ 注意事项
- 首次使用时,如果无 Cookie 且有图形界面,会自动弹出浏览器窗口
- 搜索过频繁可能触发闲鱼风控,建议间隔几秒再搜
- Cookie 有效期约 1-3 天,过期后需要重新登录
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。