Skip to main content
Glama
ganyu123456

MCP Taobao Server

by ganyu123456

MCP Taobao Server(淘宝闪购 / 饿了么外卖)

为大模型提供淘宝闪购点外卖能力的 MCP 服务器:搜附近店 → 看菜单 → 加入购物车 → 生成待支付订单。 下单类工具会走到「确认订单/支付页」就停住,绝不自动付款;登录与付款都由你人工经 noVNC 完成

说明:淘宝闪购/外卖没有面向个人的下单开放 API。本 server 通过一个持久化的有头 Chromium 自动化饿了么 H5(h5.ele.me);部署在无屏 Linux 服务器时用 Xvfb 提供虚拟显示, 人工操作(登录的短信/滑块、最终付款)通过 noVNC 远程接管虚拟桌面完成。

⚠️ 登录态是会话级:服务进程存活期间有效,进程重启需重新登录一次。因此以单一常驻进程运行。

功能

  • 登录(人工):shangou_open_login 打开饿了么登录页(手机号+短信验证码+滑块),由人经 noVNC 完成;shangou_check_login 查登录态

  • 收货地址:shangou_list_addresses 列常用地址,shangou_set_address 选定地址(决定配送范围)

  • 搜附近店:shangou_search(奶茶/汉堡/超市/水果…)

  • 店内菜单:shangou_shop_menu

  • 加入购物车:shangou_add_to_cart

  • 查看购物车:shangou_view_cart

  • 生成待支付订单:shangou_create_order——走到支付页即停,返回金额+截图+人工付款指引,含金额上限护栏

  • 提交并取支付链接:shangou_submit_order——点『提交订单』进入支付宝收银台即停(不代付),返回收银台链接,人工点链接付款

  • 支持 stdio 与 SSE 两种传输

成熟度:登录 + 收货地址 + 搜店/进店/加购/店内搜/结算/提交已按真实页面实测校正 (饿了么 H5 为 tiga 影子DOM + 淘宝闪购 newretail 页,用文本/aria-label/坐标 tap 驱动)。 触发滑块/风控时工具返回结构化提示,请用 noVNC 人工处理。

Related MCP server: xianyu-buyer-mcp

安全护栏

  • 绝不自动付款/自动登录:登录与付款都是人工点击(noVNC)。

  • 金额上限:MCP_TAOBAO_MAX_ORDER_AMOUNT(默认 100 元),确认页金额超限则拒绝提交并提示。

  • 触发风控:检测到滑块/验证即停并提示人工处理,不盲目重试。

快速开始

1. 本地开发运行

python -m venv .venv && source .venv/bin/activate
pip install -e ".[sse]"
playwright install chromium

# stdio
mcp-taobao-server
# SSE
MCP_TRANSPORT=sse MCP_PORT=8094 mcp-taobao-server

2. 点外卖流程

  1. shangou_open_login → 经 noVNC 用手机+短信+滑块登录

  2. shangou_list_addressesshangou_set_address 选收货地址(决定配送城市/范围,务必先选对)

  3. shangou_search 搜店 → shangou_shop_menu 看菜 → shangou_add_to_cart 加购(达起送才能结算)

  4. shangou_create_order → 走到确认页,返回实付金额、截图(未提交、未付款)

  5. 核对无误后二选一付款:

    • shangou_submit_order → 提交订单,返回支付宝收银台链接,在已登录浏览器(noVNC:6080)点链接付款

    • 或直接在 noVNC(http://<服务器IP>:6080/vnc.html)里手动点『提交订单』并付款

部署

cp .env.example .env      # 按需改默认定位、金额上限、VNC 密码
docker compose up -d
  • 镜像基于 python:3.11-slim,内含 Chromium + Xvfb + x11vnc + noVNC + 精简中文字体,体积约 1.2GB

  • 暴露端口:8094(MCP SSE)、6080(noVNC 网页,人工登录/付款接管)。

  • 登录态卷 taobao_profile:/data/profile 持久化 cookie(注意饿了么登录态仍是会话级)。

  • 推送 v* tag 触发 GitHub Actions:amd64 + arm64 原生构建、推 Harbor、多架构 manifest、GitHub Release。 需仓库 secrets HARBOR_USERNAME / HARBOR_PASSWORD

MCP 客户端配置

SSE:

{ "mcpServers": { "shangou": { "url": "http://<your-server>:8094/sse" } } }

stdio:

{
  "mcpServers": {
    "shangou": {
      "command": "mcp-taobao-server",
      "env": {
        "MCP_TAOBAO_USER_DATA_DIR": "./profile",
        "MCP_TAOBAO_LAT": "32.06",
        "MCP_TAOBAO_LNG": "118.80",
        "MCP_TAOBAO_MAX_ORDER_AMOUNT": "100"
      }
    }
  }
}

环境变量

变量

默认值

说明

MCP_TRANSPORT

stdio

stdiosse

MCP_HOST / MCP_PORT

0.0.0.0 / 8094

SSE 监听地址

MCP_TAOBAO_USER_DATA_DIR

./profile

浏览器持久化 profile

MCP_TAOBAO_HEADLESS

false

有头(配 Xvfb)/无头

MCP_TAOBAO_LAT / MCP_TAOBAO_LNG

32.06 / 118.80

默认定位(决定“附近”范围;选地址后以地址为准)

MCP_TAOBAO_TIMEOUT

30

页面操作超时(秒)

MCP_TAOBAO_MAX_RESULTS

10

搜索/菜单返回条数上限

MCP_TAOBAO_MAX_ORDER_AMOUNT

100

下单金额上限(元),0=不限制

MCP_TAOBAO_SLOWMO

0

每步操作放慢(毫秒)

DISPLAY

:99

Xvfb 虚拟显示编号(容器内)

MCP_TAOBAO_SCREEN

1280x1024x24

虚拟屏分辨率

MCP_TAOBAO_NOVNC_PORT

6080

noVNC 网页端口

MCP_TAOBAO_VNC_PASSWORD

(空)

VNC 密码,空=无密码(建议放内网/反代后)

MCP 工具列表

工具

说明

是否需登录

shangou_open_login

打开饿了么登录页(人工经 noVNC 完成)

否(用于登录)

shangou_check_login

查询登录态

shangou_list_addresses

列出常用收货地址

shangou_set_address

选定收货地址

shangou_search

搜附近店/美食

shangou_shop_menu

查看店内菜单

shangou_add_to_cart

加入购物车

shangou_view_cart

查看购物车

shangou_create_order

生成待支付订单(停在支付前)

shangou_submit_order

提交订单并返回支付宝收银台链接(停在收银台,不代付)

shangou_get_server_status

配置与可用性自检

项目结构

04-mcp-taobao-server/
├── Dockerfile / docker-compose.yaml / entrypoint.sh / .env.example
├── pyproject.toml / requirements.txt
├── .github/workflows/build-release.yaml
└── src/mcp_taobao_server/
    ├── server.py                 # 入口 + shangou_* 工具 + stdio/sse
    └── platforms/
        ├── base.py               # BasePlatform / 结果 dataclass / PlatformError
        └── eleme.py              # 饿了么 H5 Playwright 驱动(登录/地址/搜店/加购/下单停在支付前)

许可

MIT

Available Tools

11 tools
shangou_add_to_cartA

把某店铺的菜品加入购物车。参数 shop=店铺ID/URL;item=菜品名称;quantity=份数(默认1)。可能需先选规格,返回是否成功及截图。

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYes菜品名称
shopYes店铺ID或URL
quantityNo份数,默认1

TDQS

A3.5/5.0
Behavior3/5

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

Without annotations, the description partially covers behavior by stating the return values (success status and screenshot) and hinting at potential need for specification selection. However, it lacks details on error handling, side effects, or permission requirements.

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 extremely concise, consisting of two sentences that front-load the purpose and then list parameters and a crucial note. Every word adds value, with no unnecessary information.

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?

The description provides basic return information and a note about specification selection, but it does not mention prerequisites (e.g., needing to be logged in) or error scenarios. Given the complexity of the tool (3 parameters, no output schema), it is minimally adequate but incomplete.

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 coverage is 100% for parameters, and the description essentially restates the parameter purposes from the schema. It adds no new semantic meaning beyond what the schema already provides, hence a baseline score of 3.

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 tool adds a dish from a store to the shopping cart, with a specific verb and resource. It distinguishes itself from sibling tools like shangou_view_cart and shangou_create_order by focusing solely on the add-to-cart action.

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 provides no explicit guidance on when to use this tool versus alternatives like shangou_shop_menu or shangou_submit_order. It does not mention preconditions or context where this tool is preferred.

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

shangou_check_loginA

检查是否已登录饿了么(淘宝闪购外卖)。未登录请调 shangou_open_login,并在 noVNC 里人工完成手机+短信+滑块登录。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so the description bears full burden. It discloses the check action and the need for manual authentication via noVNC if not logged in. However, it does not specify what the tool returns (e.g., a boolean), which is a minor gap.

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?

Two succinct sentences, front-loaded with purpose followed by actionable instruction. No wasted words.

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

Completeness4/5

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

With no output schema, the description provides enough context for an agent to decide when to use and what to do next. However, it lacks details about the return value (e.g., true/false), which would improve completeness.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. The description adds no parameter info, which is acceptable. Baseline for 0 parameters is 4.

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 tool checks login status for a specific resource (Ele.me/Taobao Flash Delivery). It distinguishes from the sibling tool shangou_open_login by instructing to call it if not logged in.

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

Usage Guidelines5/5

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

Explicitly tells when to use this tool (check login) and what to do if not logged in (call shangou_open_login), providing a clear decision tree. No ambiguity.

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

shangou_create_orderA

生成待支付外卖订单:点『去结算』走到确认订单/支付页即【停止,绝不提交付款】,返回金额、页面截图与人工付款指引。参数 shop=店铺ID/URL(需已在该店加购)。金额超过服务端上限(MCP_TAOBAO_MAX_ORDER_AMOUNT)会被拦截。付款请经 noVNC(:6080)在浏览器手动完成。

ParametersJSON Schema
NameRequiredDescriptionDefault
shopYes店铺ID或URL

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description fully discloses the tool's behavior: it stops before payment, returns amount and screenshot, and directs to manual payment via noVNC. It also mentions a server-side limit intercepting large amounts, ensuring the agent understands the non-destructive and advisory nature.

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

Conciseness4/5

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

The description is a single Chinese sentence that efficiently conveys the main purpose, constraints, and post-action guidance. It is front-loaded with the primary action but could be slightly more concise by separating instructions. However, it remains clear and informative without excessive verbosity.

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

Completeness5/5

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

Despite having no output schema and no annotations, the description sufficiently covers all aspects: the action, the required precondition (items in cart), the server-side limit, the returned data (amount, screenshot), and the manual payment method. This is complete for the tool's simple functionality.

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

Parameters4/5

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

The schema has 100% coverage for the single 'shop' parameter, describing it as '店铺ID或URL'. The description adds crucial context: '需已在该店加购' (must have added to cart in that shop), which goes beyond the schema and provides essential preconditions for usage.

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 tool generates a pending payment order for delivery, explicitly instructs to stop before submitting payment, and returns amount, screenshot, and manual payment guidance. The verb '生成' (generate) and resource '待支付外卖订单' (pending order) are precise, and it distinguishes itself from sibling tools like shangou_submit_order.

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

Usage Guidelines4/5

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

The description specifies that the shop parameter requires a shop ID/URL and that items must already be in the cart. It warns about a server-side amount limit and guides users to manually pay via noVNC. Although it does not explicitly state when not to use the tool, it implies alternatives like shangou_submit_order for actual submission.

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

shangou_get_server_statusA

查询服务配置与可用性(是否装好 playwright、profile 目录、有头/无头、默认定位、金额上限等)。无需登录即可调用。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description fully bears the burden. It discloses that the tool does not require authentication and specifies the type of information returned (playwright, profile, headless mode, amount limits). This adds behavioral context beyond the tool name.

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

Conciseness4/5

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

The description is a single sentence with a parenthetical list, which is concise and front-loaded. It could be slightly more structured, but there is no waste.

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

Completeness4/5

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

For a server status tool with no parameters and no output schema, the description provides a good overview of what the tool returns. It lacks exact format details, but the examples given are sufficient for an agent to understand the tool's output.

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

Parameters4/5

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

The input schema has zero parameters, so baseline is 4. The description does not need to add parameter details. It correctly implies no inputs are required.

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 tool's purpose: querying server configuration and availability, listing specific items like playwright installation, profile directory, headless/headful mode, and amount limits. This distinguishes it from sibling tools like shangou_add_to_cart or shangou_search, which are action-oriented.

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

Usage Guidelines4/5

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

The description mentions that no login is required to call the tool, providing a clear context for when it's appropriate. However, it does not explicitly state when not to use it or suggest alternative tools for related tasks.

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

shangou_list_addressesA

列出账号里的常用收货地址(index/名称/联系人)。下单前需先用 shangou_set_address 选定一个地址。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only states the listing action without mentioning login requirements, permissions, or side effects. Minimal behavioral disclosure.

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?

Two precise sentences: first defines purpose, second provides workflow context. No wasted words.

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?

Adequately covers core purpose and a key usage tip, but does not address login requirements, output format, or error scenarios. Given no output schema or annotations, additional context would improve completeness.

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

Parameters4/5

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

Zero parameters, schema coverage 100%, so baseline is 4. Description does not need to add parameter info.

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 tool lists commonly used shipping addresses with index/name/contact, and differentiates from sibling shangou_set_address by noting the workflow ordering.

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

Usage Guidelines4/5

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

Explicitly says to use this before ordering and then select an address via shangou_set_address, providing clear context and an alternative. Lacks explicit when-not-to-use, but sufficient for this simple tool.

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

shangou_open_loginA

打开饿了么登录页(手机号+短信验证码+滑块)。因含短信与滑块验证,须由人在 noVNC(http://<服务器IP>:6080/vnc.html) 的浏览器窗口里完成;返回当前页截图与操作指引。登录态在服务进程存活期间有效。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

Discloses need for human interaction, returns screenshot and operation guide, and mentions login session validity. No annotations present, but description covers key behavioral traits.

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?

Three concise sentences with no waste. First sentence states purpose, second gives usage constraint, third describes output and session. Front-loaded and efficient.

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

Completeness5/5

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

Given no parameters, no output schema, and no annotations, the description fully covers what the tool does, how to use it, what it returns, and session context.

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

Parameters4/5

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

No parameters in schema, so baseline is 4. Description adds no parameter info but none needed.

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 tool opens the Ele.me login page using phone number, SMS, and slider, specifying human interaction via noVNC. It distinguishes from sibling tools like check_login.

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

Usage Guidelines5/5

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

Explicitly states that due to SMS and slider verification, human operation in a noVNC browser window is required, providing a link. This gives clear when-to-use and when-not-to-use guidance.

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

shangou_set_addressA

选择收货地址以确定配送范围。参数 keyword=地址关键词(如'马家店春华园'),或 index=shangou_list_addresses 里的序号(从0起)。选好后即可搜附近店。

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNo地址序号,从0起(可选)
keywordNo地址关键词(可选)

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so the description must carry the burden. It states the tool selects an address to enable nearby store search, implying it modifies state. However, it doesn't disclose authentication requirements, side effects, or reversibility.

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?

Two sentences effectively communicate purpose, parameter guidance, and post-action. No wasted words; front-loaded with the main goal.

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

Completeness4/5

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

For a simple selection tool with no output schema, the description covers purpose, parameter usage, and outcome. It lacks details on return value or error handling, but remains sufficient for the tool's simplicity.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds value by giving examples ('马家店春华园') and clarifying the relationship between keyword and index (index from shangou_list_addresses starting at 0), beyond what the schema provides.

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 '选择收货地址以确定配送范围' (select delivery address to determine delivery range), providing a specific verb and resource. It distinguishes itself from sibling tools like shangou_list_addresses (lists addresses) and shangou_search.

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

Usage Guidelines4/5

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

The description explains parameter usage (keyword or index from shangou_list_addresses) and the follow-up action '选好后即可搜附近店' (after selection, can search nearby stores). It implies use after listing addresses, but does not explicitly exclude other scenarios.

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

shangou_shop_menuA

查看某店铺的菜单/商品。参数 shop=店铺ID或店铺URL;limit=返回条数。返回菜品名称与价格(尽力解析)。

ParametersJSON Schema
NameRequiredDescriptionDefault
shopYes店铺ID或URL
limitNo返回条数,默认10

TDQS

A4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It mentions the tool returns dish names and prices and that parsing is 'best effort', which is a useful behavioral trait. However, it does not disclose read-only nature or other typical constraints.

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?

Two sentences with no redundant information. Every part contributes: purpose, parameter format, output description. Extremely concise and front-loaded.

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

Completeness4/5

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

Despite lacking output schema, description adequately states that output includes dish names and prices with a caveat. For a simple list tool with two params, it covers essential information. Minor missing details like pagination or error handling, but overall sufficient.

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%, and the description reiterates the same parameter explanations (shop as ID or URL, limit as count). It adds Chinese translation but no new semantic depth beyond schema.

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?

Description clearly states the tool retrieves a store's menu/products (查看某店铺的菜单/商品), which is a specific verb+resource. It distinguishes from sibling tools like shangou_add_to_cart or shangou_search.

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?

Description explains how to use parameters (shop and limit) but does not provide when-to-use or when-not-to-use guidance, nor alternatives. Context signals show siblings, but no explicit usage context.

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

shangou_submit_orderA

【会真实提交订单】在确认订单页点『提交订单』,进入支付宝收银台即【停止,不输密码、不代付】,返回收银台支付链接与截图。仅在用户明确同意下单后调用(通常先 shangou_create_order 核对金额)。参数 shop=店铺序号。金额超上限(MCP_TAOBAO_MAX_ORDER_AMOUNT)会被拒绝。收银台链接与登录态/时效绑定,请在已登录浏览器(服务器为 noVNC:6080)打开付款。

ParametersJSON Schema
NameRequiredDescriptionDefault
shopYes店铺序号(shangou_search 返回的 shop_id)

TDQS

A4.4/5.0
Behavior4/5

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

Describes the exact behavior: submits order, stops at checkout without payment, returns payment link and screenshot. Discloses that the link is session-bound and must be opened in the browser. No annotation contradictions.

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

Conciseness4/5

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

The description is somewhat dense but front-loaded with key action and essential usage guidance. Could be slightly more concise, but every sentence adds value.

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

Completeness5/5

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

Given one parameter and no output schema, the description fully covers what the tool does, what it returns, and the necessary context (browser, login, amount limit). Complete enough for agent decision.

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?

Single parameter 'shop' is well described in schema as shop_id from shangou_search. The tool description repeats this without adding extra meaning. Schema coverage is 100%, so baseline 3.

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 it submits an order and stops at the Alipay checkout without paying, distinguishing it from sibling tool shangou_create_order which is for order creation and amount verification.

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

Usage Guidelines5/5

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

Explicitly says to call only after user consent and typically after shangou_create_order for amount check. Also mentions amount limit and that the payment link requires the browser session.

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

shangou_view_cartA

查看某店铺当前购物车内容(尽力解析菜品与价格)。参数 shop=店铺ID/URL。

ParametersJSON Schema
NameRequiredDescriptionDefault
shopYes店铺ID或URL

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that parsing dishes and prices is attempted but not guaranteed. However, it lacks details on error handling, authentication, or the nature of the output.

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 extremely concise—a single sentence plus a parameter hint. It is front-loaded with the main action and contains no unnecessary words.

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?

Given the tool has one required parameter and no output schema, the description covers the basic purpose. However, it does not specify what the return value looks like (e.g., list of items with prices) or any edge cases, which would be helpful for a view tool.

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?

The input schema has 100% coverage, and the description restates the parameter 'shop=店铺ID/URL' essentially matching the schema. No additional meaning or constraints are provided beyond the schema.

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 tool's purpose: viewing the current shopping cart content of a specific store. It also mentions an attempt to parse dishes and prices, adding specificity. This distinguishes it from sibling tools like shangou_add_to_cart or shangou_shop_menu.

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 provides no guidance on when to use this tool versus alternatives. It only describes what the tool does, without specifying prerequisites, context, or exclusions.

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. 19 tool updatesv2.0.0
    • Addedshangou_add_to_cart
    • Addedshangou_check_login
    • Addedshangou_create_order
    • Addedshangou_get_server_status
    • Addedshangou_list_addresses
    • Addedshangou_open_login
    • Addedshangou_search
    • Addedshangou_set_address
    • Addedshangou_shop_menu
    • Addedshangou_submit_order
    • Addedshangou_view_cart
    • Removedtaobao_add_to_cart
    • Removedtaobao_check_login
    • Removedtaobao_create_order
    • Removedtaobao_get_item_detail
    • Removedtaobao_get_login_qrcode
    • Removedtaobao_get_server_status
    • Removedtaobao_search
    • Removedtaobao_view_cart
  2. 8 tool updatesv1.0.0
    • First observedtaobao_add_to_cart
    • First observedtaobao_check_login
    • First observedtaobao_create_order
    • First observedtaobao_get_item_detail
    • First observedtaobao_get_login_qrcode
    • First observedtaobao_get_server_status
    • First observedtaobao_search
    • First observedtaobao_view_cart

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct action and resource (login, search, address management, cart, orders, server status). No two tools have ambiguous boundaries; the sequential steps (create_order vs submit_order) are clearly differentiated.

Naming Consistency4/5

All tools use the 'shangou_' prefix and verb_noun pattern (e.g., check_login, set_address, add_to_cart). The naming is mostly consistent, though 'shop_menu' deviates slightly from a clearer 'get_shop_menu'. Overall predictable and readable.

Tool Count5/5

11 tools is well-scoped for a food ordering server. It covers the entire workflow from login to order submission without unnecessary bloat or missing critical steps.

Completeness4/5

The set covers the core ordering flow (login, search, address, menu, cart, order creation, submission). Minor gaps exist (e.g., no remove-from-cart tool, no order history), but the stated purpose is fulfilled effectively.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers