Skip to main content
Glama
mercy719

Goofish MCP Server

by mercy719

Goofish MCP Server

独立的 Goofish / 闲鱼 MCP server,使用 Node.js + Playwright,并通过页面上下文里的 window.lib.mtop.request(...) 获取搜索数据。

当前状态

  • search_items:已按真实 Goofish 页面 + mtop 路线实现

  • get_item_detail:已接入 mtop.taobao.idle.pc.detail,可结构化返回价格、卖家、地区、图片、属性、描述

  • monitor_keyword:复用 search_items

  • ✅ 浏览器登录态持久化:使用 Playwright persistent context

Related MCP server: xianyu-buyer-mcp

安装

cd goofish-mcp-server
npm install

运行

npm start

默认使用:

  • 浏览器 profile 目录:./.profiles/goofish

  • 非 headless

可选环境变量:

GOOFISH_PROFILE_DIR=/path/to/profile
GOOFISH_HEADLESS=1

第一次登录

首次启动时会打开浏览器 profile。 你需要在这个 profile 里手动登录 Goofish 一次。 后续 session 会复用该登录态。

MCP tools

1. search_items

输入:

{
  "keyword": "iphone 15 pro",
  "limit": 10
}

2. get_item_detail

输入:

{
  "item_id": "1234567890"
}

或:

{
  "url": "https://www.goofish.com/item?id=1234567890"
}

3. monitor_keyword

输入:

{
  "keyword": "iphone 15 pro",
  "max_items": 20,
  "dedupe_key": "item_id"
}

Claude / OpenClaw 接入思路

把这个进程作为 stdio MCP server 挂进去即可。

配置示例文件:

  • mcp-config-examples.json

Claude Desktop 核心思路:

{
  "mcpServers": {
    "goofish": {
      "command": "node",
      "args": ["/absolute/path/to/goofish-mcp-server/index.js"],
      "env": {
        "GOOFISH_PROFILE_DIR": "/absolute/path/to/goofish-mcp-server/.profiles/goofish",
        "GOOFISH_HEADLESS": "0"
      }
    }
  }
}

下一步建议

  1. 补强 get_item_detail 的真实结构化字段

  2. 增加 cookie/export/import 管理

  3. 增加自动登录检测和错误提示

  4. 增加 remote/http transport

Available Tools

4 tools
get_item_detailB

Get Goofish/Xianyu item detail by item_id or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idNo
urlNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It indicates a read operation but lacks details on authentication, rate limits, or other behavioral traits beyond the basic get.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence conveying the core purpose without extraneous words. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with two parameters, but lacks details on return values, error cases, or limitations. Could be more complete given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, requiring the description to compensate. It mentions 'by item_id or URL' but does not add meaning beyond the schema's anyOf constraint, such as formats or priorities.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'Get' and the resource 'Goofish/Xianyu item detail', distinguishing it from sibling tools like monitor_keyword, publish_item, and search_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or alternatives. The sibling tools imply distinct purposes, but the description does not discuss exclusions or preferred scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

monitor_keywordC

Return a normalized Goofish/Xianyu keyword snapshot for monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
max_itemsNo
dedupe_keyNoitem_id

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral aspects. It fails to mention whether the tool is read-only, cached, or has side effects. The term 'snapshot' implies a point-in-time view, but no further context is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise in length but lacks sufficient detail. It could be restructured to include essential information without being overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no parameter descriptions, and no annotations, the description is critically incomplete. It does not specify the format or content of the snapshot, making it hard for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with no parameter descriptions in the schema. The description does not explain any of the three parameters (keyword, max_items, dedupe_key), leaving their purpose ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it returns a normalized keyword snapshot for monitoring, identifying the action and resource. However, it does not explain what 'normalized' means or how it differs from similar tools like search_items, which also return keyword-related results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives like search_items or get_item_detail. It only mentions 'for monitoring' without clarifying conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_itemB

Publish a new Goofish/Xianyu second-hand item listing.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes商品标题
descYes商品描述
price_yuanYes售价(元),如 99.5
category_idNo分类ID(可选)
imagesNo图片本地路径列表(如 /tmp/img.jpg),可选

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description merely states 'Publish' without disclosing behavioral traits like authentication needs, side effects, or whether the operation is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words, efficiently conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and no output schema, the description lacks essential details such as return values, error handling, or behavior on success/failure, and does not differentiate from sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description adds no additional meaning beyond the schema’s basic parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Publish' and the resource 'Goofish/Xianyu second-hand item listing', distinguishing it from sibling tools like get_item_detail, monitor_keyword, and search_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided; the description does not explain when to use this tool, prerequisites, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_itemsB

Search Goofish/Xianyu items by keyword using a logged-in Playwright browser context. Example queries: iphone 15 pro, sony a7, dyson v12.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
limitNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry full burden. Only mentions automation context but omits details on rate limits, blocking risks, session requirements, or return format. Insufficient for being the sole source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with relevant examples, no fluff. Every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes the basic action and prerequisite, but for a 2-param search tool with no output schema, it should hint at return structure or pagination. Leaves agent guessing about results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 0%, but description only mentions keyword via examples, not its format or required roles. Limit parameter and its default are completely ignored. Fails to compensate for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Search' and resource 'Goofish/Xianyu items' via unique context 'logged-in Playwright browser context'. Distinct from siblings like get_item_detail or monitor_keyword.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies prerequisite (logged-in Playwright context) but lacks explicit when-to-use vs alternatives like monitor_keyword or get_item_detail. Example queries help but no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 4 tool updatesv1.0.0
    • First observedget_item_detail
    • First observedmonitor_keyword
    • First observedpublish_item
    • First observedsearch_items

TDQS

B3.3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: one for getting item details, one for setting up keyword monitoring, one for publishing items, and one for searching. No overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (get_item_detail, monitor_keyword, publish_item, search_items), making them predictable and easy to understand.

Tool Count5/5

With 4 tools covering search, detail retrieval, publishing, and monitoring, the set is well-scoped for its domain without being excessive or insufficient.

Completeness3/5

While the server covers search, detail, publish, and monitoring, it lacks update and delete capabilities, leaving a notable gap in the full lifecycle of item management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables automated interaction with Xiaohongshu (Little Red Book) to search for notes, retrieve content or comments, and post targeted smart comments. It utilizes Playwright to manage browser-based tasks such as secure login and automated engagement.
    124
    -
  • 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
    1
    -