MCP Taobao Server
The MCP Taobao Server enables AI models to automate food delivery ordering on 饿了么 (Ele.me) via 淘宝闪购 (Taobao Flash Buy), handling everything from browsing to order creation — while requiring human intervention for login and payment via noVNC.
Key capabilities:
Login & Session Management: Check current login status (
shangou_check_login) or open the login page (shangou_open_login); actual login (SMS + CAPTCHA slider) must be completed manually via noVNC.Address Management: List saved delivery addresses and select one to define the delivery area (
shangou_list_addresses/shangou_set_address).Search Nearby Restaurants (
shangou_search): Search for nearby shops and food by keyword (e.g., milk tea, burgers, supermarkets).Browse Shop Menu (
shangou_shop_menu): View a shop's menu items and prices.Cart Operations: Add items to the cart (
shangou_add_to_cart) and view current cart contents (shangou_view_cart).Create Pending Order (
shangou_create_order): Navigate to the order confirmation/payment page and stop — returns the total amount and a screenshot without submitting or paying.Submit Order (
shangou_submit_order): Click 'Submit Order' to reach the Alipay checkout page and return the payment link — payment must be completed manually.Server Status (
shangou_get_server_status): Query server configuration (Playwright setup, headless mode, order amount limit, etc.) without requiring login.
Safety features: Includes a maximum order amount safeguard, and pauses for human intervention on security challenges (captchas, payment). All sensitive actions (login, payment) are handled manually through a noVNC remote desktop.
Search products, add to cart, and generate pending orders for Taobao. Supports QR code login and payment via manual VNC takeover.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Taobao Serversearch for wireless bluetooth headphones under 200 yuan"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-server2. 点外卖流程
shangou_open_login→ 经 noVNC 用手机+短信+滑块登录shangou_list_addresses→shangou_set_address选收货地址(决定配送城市/范围,务必先选对)shangou_search搜店 →shangou_shop_menu看菜 →shangou_add_to_cart加购(达起送才能结算)shangou_create_order→ 走到确认页,返回实付金额、截图(未提交、未付款)核对无误后二选一付款:
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。 需仓库 secretsHARBOR_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"
}
}
}
}环境变量
变量 | 默认值 | 说明 |
|
|
|
|
| SSE 监听地址 |
|
| 浏览器持久化 profile |
|
| 有头(配 Xvfb)/无头 |
|
| 默认定位(决定“附近”范围;选地址后以地址为准) |
|
| 页面操作超时(秒) |
|
| 搜索/菜单返回条数上限 |
|
| 下单金额上限(元),0=不限制 |
|
| 每步操作放慢(毫秒) |
|
| Xvfb 虚拟显示编号(容器内) |
|
| 虚拟屏分辨率 |
|
| noVNC 网页端口 |
| (空) | VNC 密码,空=无密码(建议放内网/反代后) |
MCP 工具列表
工具 | 说明 | 是否需登录 |
| 打开饿了么登录页(人工经 noVNC 完成) | 否(用于登录) |
| 查询登录态 | 否 |
| 列出常用收货地址 | 是 |
| 选定收货地址 | 是 |
| 搜附近店/美食 | 是 |
| 查看店内菜单 | 是 |
| 加入购物车 | 是 |
| 查看购物车 | 是 |
| 生成待支付订单(停在支付前) | 是 |
| 提交订单并返回支付宝收银台链接(停在收银台,不代付) | 是 |
| 配置与可用性自检 | 否 |
项目结构
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 toolsshangou_add_to_cartA
把某店铺的菜品加入购物车。参数 shop=店铺ID/URL;item=菜品名称;quantity=份数(默认1)。可能需先选规格,返回是否成功及截图。
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | 菜品名称 | |
| shop | Yes | 店铺ID或URL | |
| quantity | No | 份数,默认1 |
TDQS
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.
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.
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.
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.
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.
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 里人工完成手机+短信+滑块登录。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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)在浏览器手动完成。
| Name | Required | Description | Default |
|---|---|---|---|
| shop | Yes | 店铺ID或URL |
TDQS
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.
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.
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.
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.
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.
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 目录、有头/无头、默认定位、金额上限等)。无需登录即可调用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 选定一个地址。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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) 的浏览器窗口里完成;返回当前页截图与操作指引。登录态在服务进程存活期间有效。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_searchA
搜索附近可配送的店铺/美食。参数 keyword=关键词(如'奶茶'/'汉堡'/'超市'/'水果');limit=返回条数。需先登录并设好收货地址,否则返回结构化错误。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回条数,默认10 | |
| keyword | Yes | 搜索关键词 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description covers prerequisite but does not disclose other behavioral details like rate limits, response format, or explicit read-only nature. Adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence covering purpose, parameters, and prerequisite with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description covers key aspects: purpose, parameters, and prerequisite. Lacks output format details but sufficient for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds value with keyword examples (奶茶/汉堡/超市/水果) and clarifies limit meaning. Exceeds baseline by providing concrete usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches for nearby deliverable shops/food with specific keyword examples, distinguishing it from sibling tools like shangou_shop_menu or shangou_list_addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite of being logged in and having a delivery address set, with a note on error behavior. Lacks mention of when not to use or direct alternatives.
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起)。选好后即可搜附近店。
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 地址序号,从0起(可选) | |
| keyword | No | 地址关键词(可选) |
TDQS
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.
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.
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.
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.
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.
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_submit_orderA
【会真实提交订单】在确认订单页点『提交订单』,进入支付宝收银台即【停止,不输密码、不代付】,返回收银台支付链接与截图。仅在用户明确同意下单后调用(通常先 shangou_create_order 核对金额)。参数 shop=店铺序号。金额超上限(MCP_TAOBAO_MAX_ORDER_AMOUNT)会被拒绝。收银台链接与登录态/时效绑定,请在已登录浏览器(服务器为 noVNC:6080)打开付款。
| Name | Required | Description | Default |
|---|---|---|---|
| shop | Yes | 店铺序号(shangou_search 返回的 shop_id) |
TDQS
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.
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.
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.
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.
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.
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。
| Name | Required | Description | Default |
|---|---|---|---|
| shop | Yes | 店铺ID或URL |
TDQS
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.
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.
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.
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.
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.
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.
19 tool updates
v2.0.0- Added
shangou_add_to_cart - Added
shangou_check_login - Added
shangou_create_order - Added
shangou_get_server_status - Added
shangou_list_addresses - Added
shangou_open_login - Added
shangou_search - Added
shangou_set_address - Added
shangou_shop_menu - Added
shangou_submit_order - Added
shangou_view_cart - Removed
taobao_add_to_cart - Removed
taobao_check_login - Removed
taobao_create_order - Removed
taobao_get_item_detail - Removed
taobao_get_login_qrcode - Removed
taobao_get_server_status - Removed
taobao_search - Removed
taobao_view_cart
8 tool updates
v1.0.0- First observed
taobao_add_to_cart - First observed
taobao_check_login - First observed
taobao_create_order - First observed
taobao_get_item_detail - First observed
taobao_get_login_qrcode - First observed
taobao_get_server_status - First observed
taobao_search - First observed
taobao_view_cart
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
Product search for AI agents: Amazon + Shopify, cart-to-checkout buy path. Pay-per-call, no API key.
Agentic commerce gateway: discovery, search, checkout across Shopify/Woo/Odoo/PrestaShop.
Shopify product discovery and x402-paid offer verification for AI agents.
AI shopping gateway for product search, inventory, carts, and merchant-hosted checkout.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search products, manage shopping carts, place orders, and retrieve order history from Amazon and Target accounts.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Goofish (闲鱼) marketplace, supporting product search, batch inquiry messaging, and conversation management for buyers.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to search products, manage cart, place orders, and track shipments on Amazon via browser automation.13 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to browse product catalogs, search products with filters, and initiate checkouts, generating order summaries and checkout URLs.-