Skip to main content
Glama
goofish-mcp
by ant-cave

goofish-mcp

闲鱼(Goofish)MCP 服务器:基于本机 goofish-client 登录态,通过 mtop 接口提供商品搜索、详情、关键词监控快照与发布能力,输出为 MCP tools(streamable-http)。

工具

  • search_items — 关键词搜索(返回 item_id/标题/价格/卖家/地区/发布时间)

  • get_item_detail — 商品详情(标题/价格/描述/浏览收藏/卖家/图片 URL 列表)

  • monitor_keyword — 关键词监控快照(带去重 key)

  • publish_item — 发布闲置商品(支持本地图床上传)

Related MCP server: xianyu-buyer-mcp

运行

GOOFISH_CLIENT_DIST=/home/ant/dev/goofish-client/dist/index.js \
GOOFISH_API_KEY=<admin-key> \
GOOFISH_DATA_DIR=/home/ant/service/goofish-mcp/data \
node server.js

默认监听 127.0.0.1:8670。建议前置 nginx 反代到公网域名(需配置 GOOFISH_ISSUER 与 HTTPS)。

环境变量

说明

GOOFISH_API_KEY

初始管理密钥(仅首次;之后在面板内修改,存 DATA_DIR/api-key.txt)

GOOFISH_DATA_DIR

数据目录:密钥文件、API Keys、日志(默认 /home/ant/service/goofish-mcp/data)

GOOFISH_CLIENT_DIST

goofish-client 入口(缺省用内置 mock,便于本地演示)

GOOFISH_DEMO

演示模式:mock 数据 + 面板出现「模拟扫码确认」按钮

GOOFISH_ISSUER

OAuth issuer(默认取请求 host)

GOOFISH_PORT

监听端口(默认 8670)

客户端接入

MCP endpoint(streamable-http):

https://<your-domain>/mcp

鉴权三级,任一通过即可:

  1. 管理密钥 — Authorization: Bearer <管理密钥>(面板登录同一把钥匙,权限最大)

  2. 客户端 API Key — 在「API Keys」面板创建的多把 key,可单独命名/禁用/删除,禁用后调用即 401

  3. OAuth token — 标准 MCP OAuth 流程(PKCE);/authorize 要求鉴权:携带 ?key=<key>,或使用已登录 /admin 的会话

OpenClaw / Claude / ChatGPT 等客户端的 MCP 配置示例:

{
  "mcpServers": {
    "goofish": {
      "url": "https://<your-domain>/mcp",
      "transport": "streamable-http",
      "headers": { "Authorization": "Bearer <api-key>" }
    }
  }
}

管理界面

https://<your-domain>/admin — 登录密钥即管理密钥(首次为 GOOFISH_API_KEY)。

  • 概览 — 闲鱼扫码登录/登录态管理、MCP endpoint 与客户端配置示例(一键复制)、OAuth token 吊销

  • 调用日志 — 全量审计(MCP 请求与管理操作),按类型/结果/工具筛选、关键词搜索、分页、CSV 导出、自动刷新

  • API Keys — 客户端 key 的创建/复制/禁用/删除,显示最近使用时间

  • 设置 — 修改管理密钥(热更新,改后旧会话与旧密钥立即全部失效)

项目结构

server.js          # 薄入口:组装模块、三级鉴权、/mcp 路由
routes/admin.js    # /admin 全部路由(页面 + JSON API + OAuth 守卫)
lib/config.js      # 管理密钥热配置(DATA_DIR/api-key.txt, chmod 600)
lib/apikeys.js     # 客户端多 Key 管理(DATA_DIR/api-keys.json)
lib/logger.js      # JSONL 调用日志(按日切分、保留 7 天、统计聚合)
lib/ratelimit.js   # IP 防爆破(失败计数 + 内存锁定)
lib/session.js     # HMAC 无状态会话(管理密钥 + 日期签名)
public/            # 零构建前端:admin.html / login.html / app.css / js/

安全

  • 防爆破:/mcp 与 /admin 鉴权失败按 IP 计数,超限临时锁定(默认 10 次/10min 锁 15min)

  • OAuth /authorize 必须携带凭证,无匿名授权

  • 数据文件(密钥、API Keys)均 chmod 600,位于 GOOFISH_DATA_DIR

  • /health 无需鉴权(仅状态信息)

依赖

  • Node.js ≥ 20

  • 本地 goofish-client(提供登录态与 mtop client)

  • @modelcontextprotocol/sdk、zod

License

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      A
      maintenance
      MCP server for automating Xianyu (Goofish) marketplace operations: publish, manage items, handle IM messages, and more via CLI or AI agents.
      17
      787 PyPI
      425
      Apache 2.0
    • F
      license
      C
      quality
      B
      maintenance
      Provides MCP interface to Xianyu (Goofish) for searching items, managing price watches, and monitoring prices via CLI, HTTP API, or MCP.
      37
      4
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables automating buyer-side workflows on Xianyu (Goofish) by searching products, sending individual or batch price inquiries, and retrieving seller responses through MCP tools.
      1
      MIT