Our own visit statistics are always on. Google Analytics, which helps us understand how people use our public pages (not your signed-in workspace), is enabled only with your permission. See our Privacy policy.

Qwen Agent MCP: a Taobao, JD and Xianyu review analyst

Attach a custom MCP server to a Qwen agent on Model Studio or Qwen-Agent, then compare one product on Taobao, JD and Xianyu with real calls and costs.

Isometric illustration. A handheld gimbal camera stands on a dark desk. Thin teal lines link it and three small shops to one small server in front. The shops look like an online stall, a big retail counter and a flea market table.

We searched Xianyu for a Labubu blind box and got 50 results. All 50 were books about stock trading. We tried a second query with the Chinese name of the toy. The tool returned the same 50 books again.

Both calls succeeded, and both calls were billed. A language model that reads these results without a check would report a used Labubu price that is really the price of a finance book. This article is about how to stop that from happening.

The goal is an "ecommerce review analyst". You ask Qwen one question, such as "Where should I buy a DJI Pocket 3 now?". Qwen then calls six data tools across three Chinese marketplaces. Taobao is the large consumer marketplace.

JD is the retailer known for its own warehouses and fast delivery. Xianyu is the second-hand marketplace. Qwen reads the results and writes a one-page buying verdict. The connection between the model and the data tools is MCP (Model Context Protocol, an open protocol that lets a model call external tools).

We cover two ways to build it. The first way is Alibaba Cloud Model Studio and its Managed Agents service, which the Chinese docs call the Agent API. The second way is the open-source Qwen-Agent framework. We do not have a Model Studio account on our test machine.

So the Model Studio part is a configuration example, based on the official help pages. We did not run it. The Qwen-Agent part is real. We connected Qwen-Agent 0.0.34 to the EveryInfra remote MCP endpoint and made live calls on 2026-11-03, starting at 00:20 Singapore time.

What a Qwen Agent MCP review analyst does

The task is narrow on purpose. The user asks one question about one product. The analyst runs a fixed sequence of calls. It searches Taobao, then tries Taobao reviews.

If reviews are empty, it reads the Taobao Q&A section, where buyers ask questions and past buyers answer. It then searches JD, opens the JD product page, and searches Xianyu. Finally it writes a short report with price ranges, medians, the used discount, common buyer worries, and three questions to ask the seller.

A model alone cannot do this job. It does not know today's prices. A data API alone also cannot do it well. Xianyu sellers write the condition of an item in free text, with phrases such as "sealed", "factory replacement" or "with inspection service".

Somebody has to read those titles and sort them. MCP joins the two halves. The model decides which tool to call and with which parameters. The tool gets the data from the marketplace and returns structured rows.

Isometric illustration. On the right, a small robot sits at a desk and reads review cards and price tags with a magnifying glass. A clipboard on the desk shows a bar chart and a check mark. On the left, the robot's cable goes into one socket on a small server. Three more cables go from the server to an online shop, a large retail warehouse and a second-hand market stall.
One model, one MCP endpoint, three marketplaces Illustration generated for this article

The table below shows what our live calls returned. "Rows" is the number of rows that came back. "Cost" is the real charge per call at the EveryInfra catalog price. Calls that return nothing are refunded automatically.

CapabilityLive resultCost per callLatency
taobao/search20 rows for Pocket 3, only 9 fields$0.01351.8–3.7 s
taobao/reviews7 products, 0 rows each, refunded$011.8–19.8 s
taobao/questions20 Q&A rows, from 2026-03-01 to 2026-10-21$0.0013897.3 s
jd/search5 rows, 4 of them Pocket 3$0.0024726.1 s
jd/product_detailOfficial store page out of stock, price masked$0.00138911.4–14.0 s
jd/reviewsPaused in the catalog, HTTP 503, no charge$00.1 s
xianyu/search50 used listings, 1,199–1,900 CNY$0.0055568.9–9.2 s

The table already shows the limits of this analyst. Price and condition data came back in full. Taobao reviews returned nothing this time. JD reviews are paused. The rest of this article explains the Model Studio rules first, then the open-source setup, then the real data and the bill.

Model Studio agents and MCP: models, fields, limits and the four custom types

Model Studio has two products called "agent", and many posts mix them up. The first is the console "agent application". You create it on the application page and tick MCP services in a form. The second is Managed Agents.

You create an agent with POST /agents and start a run with POST /sessions. The agent then runs in a sandbox that Model Studio hosts. The API overview gives the base address https://{workspace_id}.{region}.maas.aliyuncs.com/api/v1/agentstudio. The only region today is cn-beijing (API overview).

The model list comes from the "define an agent" page, which we read on 2026-11-03. It lists qwen3.8-max, qwen3.8-flash, qwen3.7-max, qwen3.7-plus, qwen3.6-plus and qwen3.6-flash. It also lists third-party models such as deepseek-v4.1-flash, deepseek-v4-pro, glm-5.3 and kimi-k3. There are four run modes: auto, performance, balanced and economy (agent definition).

Agents can be archived but not deleted. An update replaces the whole agent and must send the current version number. A session locks the agent version at creation, so later edits do not change running sessions (agent API).

The mcp_servers field is an array. Each item has two keys: type and name. The type is official for a service from the MCP market, or customer for a service you register yourself. Note the value is customer, not custom.

The field that really turns tools on is tools. You add an item with type set to mcp_toolkit. Its mcp_server_name repeats the service name, and its configs list enables each tool by name (create agent).

FieldValueNoteSource page, read on
modelObject with required id, such as qwen3.8-maxOptional enable_thinking, max_tokens, temperatureCreate agent, 2026-11-03
mcp_servers[].typeofficial or customerUse customer for your own serverCreate agent, 2026-11-03
mcp_servers[].nameService ID such as mcp-xxxxxxxxA display name gives error AGENT_010Custom MCP and Skills, 2026-11-03
tools[].typebuiltin_toolkit once, mcp_toolkit many timesTools not enabled one by one go silently missingCreate agent, 2026-11-03
permission_policy{"type": "always_allow"} or {"type": "always_ask"}Object only, main agent onlyBuilt-in tools, 2026-11-03

The two types are checked at opposite times. This is the easiest mistake to make. For official, the create call does not check the name. A typo still creates the agent. At run time the tools are missing, and the model only says it has no tools.

For customer, the create call checks the name and returns HTTP 400 with AGENT_010 when the service is not registered. So your own server is easier to debug. Register it in the console first, then put its ID into the agent. The docs also say custom MCP services can only be added or edited in the console. There is no API for that step (custom MCP and Skills).

Screenshot of the Model Studio help page on custom MCP and Skills. The page shows the update time 2026-10-16 10:41:23. A table splits external agent tools into three levels: the built-in toolkit, market MCP with type official, and your own assets with type customer. A teal box marks the last row.
The Model Studio docs map your own MCP server to type customer Screenshot of the Alibaba Cloud help center

The limit on MCP servers per agent is different for console apps and Managed Agents. The FAQ at the end gives both answers. The console limit comes from the official MCP services page.

The custom MCP types also differ between two pages. The older "custom MCP" page lists three deployment methods: script deployment, AI gateway and Alibaba Cloud OpenAPI (custom MCP). The newer Managed Agents page lists four access types: plug-in, script deployment, AI gateway and Alibaba Cloud OpenAPI.

Only script deployment has a cost note. With npx or uvx, the server is deployed to Function Compute and billed there. With http, you only register an endpoint that already runs, and there is no deployment fee. The AI gateway type suits teams that already manage MCP through the Alibaba Cloud AI gateway. The OpenAPI type turns Alibaba Cloud product APIs into MCP tools. The page only names the plug-in type.

A service like EveryInfra already runs a remote MCP endpoint. So the right choice is script deployment with the http install method. The docs say this step only tells Model Studio the endpoint address and the auth method. It deploys nothing and has no deployment fee. The Function Compute docs give the same advice for servers hosted elsewhere (Function Compute MCP). For Alibaba Cloud's own product APIs, a separate guide covers the OpenAPI MCP server (OpenAPI MCP server).

What the "MCP Square shutdown" really removed

When you search for the Model Studio MCP Square, you often see claims that the square is shutting down. We read the original notices. Only named services went offline, not the whole square. The notice published on 2026-01-05 says 7 services leave the square at 00:00 Beijing time on 2026-06-30.

They are Ever Art, the old Bocha AI search and the old Xiaosu smart search. The others are a Douyin assistant, Qiankun Guadong, Wanxing Tianmu and a stock data service. Bocha and Xiaosu have new versions (notice 117858).

A second notice on 2026-03-26 said 4 old Qibaike services go offline on 2026-04-01. They cover intellectual property, business registration, bidding and risk data. New versions exist (notice 118111). A third notice is about billing, not removal.

Managed Agents billing started at 09:00 on 2026-08-17. The session runtime costs 0.5 CNY per hour while it runs, and idle time is free. New users get 10 free hours for 30 days. Model tokens and tool or MCP calls are billed separately (notice 118456).

NoticePublishedEffectiveScope
1178582026-01-052026-06-307 services, 2 have new versions
1181112026-03-262026-04-014 old Qibaike services, new versions exist
1184562026-07-162026-08-17Managed Agents billing starts, no removal

For a review analyst, the two removal notices hardly matter. Our design uses a customer server that you register yourself. It does not depend on any service in the square. The billing notice matters more, and we use its numbers in the cost section below.

The flow of one comparison run

Animated flow, 9 second loop, from "Your question" to "Qwen model" to "EveryInfra remote MCP". A teal dot then visits six capability boxes in turn: taobao/search 20 rows $0.0135, taobao/reviews 0 rows free, taobao/questions 20 rows $0.0014. Next come jd/search 5 rows $0.0025, jd/product_detail out of stock $0.0014, and xianyu/search 50 rows $0.0056. The dot returns to Qwen and lights "One-page verdict". A note says jd/reviews is paused with no charge.

The flow has one main line. First, the user sends the question to Qwen. The system prompt tells the analyst the order of calls and the output format. Second, Qwen gets the tool list over MCP. The EveryInfra remote MCP exposes 12 tools, but the analyst needs only two.

everyinfra_list_capabilities shows the platforms, capabilities and parameters. everyinfra_call_api runs a capability. Third, Qwen calls everyinfra_call_api six times with different platform, action and params values. Fourth, the six results go back to the model, which writes the verdict.

Two details in this line are easy to miss. The first is result size. The 50 Xianyu rows count as 21,710 Qwen tokens. The empty Taobao reviews result counts as only 432 tokens. The model reads all earlier results again on every turn.

So the longest result should come last, where the model reads it only once. The second detail is the empty result. When Taobao reviews return 0 rows, the response says "charged": false and "reason": "empty_result_refunded". The model can then tell the user that reviews are not available. It must not read the empty result as "no bad reviews".

Model Studio configuration example (we did not run it)

The three blocks below follow the Model Studio help pages field by field. We checked names, values and order against the docs. We do not have a Model Studio account, so we did not run them. Treat them as a starting point, not as tested code. If you run them and something differs from the docs, please tell us.

Block one registers the EveryInfra remote MCP in the console. Go to the "Custom" tab under Managed Agent and MCP. Click the button to create an MCP service. Choose script deployment and the http install method. Paste the JSON below into the service configuration box.

Note one Model Studio detail. The transport is written streamableHttp in camel case. Open-source Qwen-Agent uses streamable-http with a hyphen. Do not mix them. We use a dynamic header placeholder for the key, so each session can pass its own key.

json
{
  "mcpServers": {
    "everyinfra": {
      "type": "streamableHttp",
      "url": "https://api.everyinfra.com/mcp",
      "headers": {
        "Authorization": "${Authorization}"
      }
    }
  }
}

Block two creates the agent. After registration, copy the service ID from the MCP list. It looks like mcp-xxxxxxxx. It must appear in mcp_servers[].name and in tools[].mcp_server_name.

We enable only two tools. Our tool list marks everyinfra_call_api with destructiveHint: true, because each call can cost money. So the default policy is always_ask, and you can switch to always_allow for unattended runs. The docs say approval works only on the main agent, not on sub-agents.

bash
curl -X POST "https://${WORKSPACE_ID}.cn-beijing.maas.aliyuncs.com/api/v1/agentstudio/agents" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ecommerce-review-analyst",
    "description": "Compare one product on Taobao, JD and Xianyu",
    "model": {"id": "qwen3.8-max"},
    "system": "You are an ecommerce review analyst. First call everyinfra_list_capabilities to confirm parameters. Then call taobao/search, taobao/reviews (if 0 rows, call taobao/questions), jd/search, jd/product_detail and xianyu/search. Do not call jd/reviews. Write one page: price range and median per marketplace, used discount, top buyer worries, three questions for the seller.",
    "mcp_servers": [{"type": "customer", "name": "mcp-xxxxxxxx"}],
    "tools": [{
      "type": "mcp_toolkit",
      "mcp_server_name": "mcp-xxxxxxxx",
      "default_config": {"enabled": false, "permission_policy": {"type": "always_ask"}},
      "configs": [
        {"name": "everyinfra_list_capabilities", "enabled": true, "permission_policy": {"type": "always_allow"}},
        {"name": "everyinfra_call_api", "enabled": true}
      ]
    }]
  }'

Block three starts a session and passes the real key. mcp_configs sits at the top level of the POST /sessions body. Its mcp_server_name is the same service ID. The docs warn about two things.

A wrong service name does not cause an error, but the config has no effect. Also, mcp_configs does not appear in the create response. Use GET /sessions/{id} to check it (create session).

bash
curl -X POST "https://${WORKSPACE_ID}.cn-beijing.maas.aliyuncs.com/api/v1/agentstudio/sessions" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent": {"id": "agent_xxx"},
    "environment_id": "env_xxx",
    "title": "Pocket 3 comparison",
    "mcp_configs": [{
      "mcp_server_name": "mcp-xxxxxxxx",
      "headers": {"Authorization": "Bearer <your EveryInfra API key>"}
    }]
  }'

The Model Studio Vault covers requests from sandbox tools such as bash (Vault and egress gateway). The platform itself sends custom MCP requests, so the Vault does not apply. Send the key in the registration header or in the session mcp_configs above.

Open-source Qwen-Agent with the same MCP server: the part we ran

You may not want a hosted service. You may want the analyst on your own machine. The open-source Qwen-Agent framework can connect to a remote MCP server directly. The Qwen team maintains it on GitHub (Qwen-Agent repository). The latest PyPI release is 0.0.34, from 2026-02-16 (qwen-agent on PyPI).

We installed it in a clean Python 3.11 virtual environment. We used its MCP manager to connect to https://api.everyinfra.com/mcp, and that part ran for real. The model call needs a DashScope key, which we did not have. So llm_cfg and bot.run below are a configuration example.

python
# pip install "qwen-agent[mcp]==0.0.34" "mcp==1.30.0" numpy soundfile tqdm python-dateutil
import os
from qwen_agent.agents import Assistant

tools = [{
    "mcpServers": {
        "everyinfra": {
            "type": "streamable-http",          # without "type", a bare url connects over sse
            "url": "https://api.everyinfra.com/mcp",
            "headers": {"Authorization": "Bearer " + os.environ["EVERYINFRA_API_KEY"]},
        }
    }
}]

# Configuration example: we did not call the model in this article
llm_cfg = {"model": "qwen3.8-flash", "model_server": "dashscope",
           "api_key": os.environ["DASHSCOPE_API_KEY"]}
bot = Assistant(llm=llm_cfg, function_list=tools,
                system_message="You are an ecommerce review analyst ... (same as the Model Studio example)")
for reply in bot.run(messages=[{"role": "user", "content": "Where should I buy a DJI Pocket 3 now?"}]):
    pass
print(reply[-1]["content"])

Each dependency in that install line came from a real error. With only qwen-agent[mcp], the import of qwen_agent.agents failed four times. It wanted numpy, soundfile, tqdm and python-dateutil. Numpy and python-dateutil sit in a different optional group of the package. We did not find soundfile and tqdm in its declared dependencies at all. After that, the import still failed with ImportError, and the cause was the mcp package.

The mcp Python package released 2.0.0 on 2026-07-28 and reached 2.3.0 on 2026-10-02 (mcp on PyPI). From 2.0, streamablehttp_client is renamed streamable_http_client. The migration guide says the old name is removed (MCP Python SDK migration guide). Qwen-Agent 0.0.34 still imports the old name.

A user reported this on GitHub on 2026-08-25 (issue #949). Our fix was to pin mcp==1.30.0. After that, everything worked.

Once connected, you can see how Qwen-Agent shows MCP tools to the model. It registers each tool as "server-tool". So everyinfra_call_api becomes everyinfra-everyinfra_call_api. It also adds two resource tools, everyinfra-list_resources and everyinfra-read_resource. That makes 14 tools in total.

From each tool schema it keeps only type, properties and required. Parameter descriptions and enum values stay, so the model still knows that mode is sync or async. The tool list is not small. Our tools/list response has 16,634 characters, or 4,211 tokens with the Qwen tokenizer that ships with Qwen-Agent. The model reads it on every turn.

ItemModel Studio Managed AgentsOpen-source Qwen-Agent 0.0.34
Transport valuestreamableHttp or ssestreamable-http or sse, default sse
Where the server comes fromRegister in the console, get a service IDWrite the URL directly
AuthHeader at registration, or session mcp_configsheaders in the config
Tool namesOriginal names, enabled one by one"server-tool", all registered
Approvalalways_ask asks a personNot handled, add your own check
Where it runsModel Studio sandbox, billed by session timeYour own machine
Status in this articleConfiguration example, not runMCP part run, model part is an example
Date that mattersGuide updated 2026-10-16Release 2026-02-16
Checked on2026-11-032026-11-03
Response screenshot of a dark terminal with two JSON panels. Left, taobao/reviews at 00:22:36 Singapore time: count 0, charged false, reason empty_result_refunded, refund succeeded. Right, xianyu/search at 00:22:55: count 50, first item 1299 CNY with 42000 wants, charged_usd 0.005556, with teal boxes on key fields.
Live calls through the Qwen-Agent MCP manager, with balance fields cut and the seller name hidden. Response screenshot of the EveryInfra remote MCP

We did not let a model choose the tools in our test. We sent each call in order through the MCP manager, so every request is easy to check. The only difference from a model-driven run is who picks the tool. The request is the same.

It is one tools/call to everyinfra_call_api with a body like {"platform": "xianyu", "action": "search", "params": {"keyword": "...", "limit": 50}}. To see all platforms and tools, open the MCP server page and the remote MCP setup guide. The first steps are in the quickstart.

Live round trip: one DJI Pocket 3 on three marketplaces

We chose the DJI Osmo Pocket 3 as the main product for three reasons. All three marketplaces list it in large numbers. Its new price is fairly uniform, so the used discount is easy to compute. Its successor, the Pocket 4, launched on 2026-04-16.

The standard kit costs 2,999 CNY and the full kit 3,799 CNY (DJI Pocket 4 launch). So used prices for the older model are moving right now. All CNY prices in this section are list prices on the marketplaces. At the central parity rate of 6.7146 CNY per USD on 2026-11-02, 2,399 CNY is about $357.

At 00:20 Singapore time on 2026-11-03, taobao/search returned 20 rows. We sorted them by title. 14 rows name only the Pocket 3. 5 rows also name other models, such as the Pocket 4. 1 row is used.

Across the 14 single-model rows, the median is 2,399 CNY, the low is 1,508 CNY and the high is 4,823 CNY. 7 rows list exactly 2,399 CNY. Neither extreme is a market price. A low price may be for parts or a refurbished unit. A high price is usually a bundle.

This Taobao search returned only 9 fields: ID, link, title, price, original price, currency, location, image and platform. It had no sales count and no shop name. A second search with the Tmall-only filter returned 14 fields, including shop name and free shipping. We do not know why the two calls differ. So the prompt needs one rule: if a field is missing, say it is missing, and do not guess.

4 of the 20 Taobao titles claim a "national subsidy". The 2026 trade-in notice from China's Ministry of Commerce lists only four digital categories at the national level. They are phones, tablets, smart watches or bands, and smart glasses. The item price must be under 6,000 CNY, the subsidy is 15%, and the cap is 500 CNY per item. Cameras are not on the list.

The notice also forbids sellers from using the government subsidy name falsely (Ministry of Commerce notice). This does not prove these listings are wrong. A local program may apply. But the analyst should add a question for the seller: which subsidy is it, and what is the final price?

At 00:20:32 Singapore time, jd/search returned 5 rows. 4 rows are Pocket 3 units. The JD self-operated official store and two authorized stores all list 2,399 CNY. A full kit lists 3,199 CNY.

The fifth row is a Pocket 4 from a second-hand shop at 1,489 CNY. JD search shows review counts as page text, such as "500,000+" or "100,000+". The positive rate is 98% to 99%. These numbers are rounded, so they are not good for exact comparison.

At 00:21:57 Singapore time, jd/product_detail opened the official store listing. It was out of stock. JD masked the price as "2??9", and the field price_masked was true. The page had 7 variants, a 1-year warranty and a weight of 0.35 kg.

The catalog note for this field is clear. When the price is masked, do not treat the shown price as the real price. So the analyst should use 2,399 CNY from the search results and note that the official store is out of stock.

Horizontal dot plot, one dot per listing, price in CNY from 1,000 to 5,000. Taobao, 14 single-model rows: median 2,399, other dots at 1,508, 2,799, 2,987, 3,199, 3,499 and two near 4,800. JD, 4 Pocket 3 rows: median 2,399 and one dot at 3,199. Xianyu, 50 used rows: median 1,499, dots packed from 1,199 to 1,900. Dashed lines mark the new price of 2,399 and the Pocket 4 price of 2,999.

At 00:22:55 Singapore time, xianyu/search returned 50 rows through MCP. Prices run from 1,199 to 1,900 CNY. The median is 1,499 CNY, and the quartiles are 1,388.5 and 1,607.25 CNY. That median is 37.5% below the common new price of 2,399 CNY.

It is exactly half the price of a new Pocket 4 standard kit. 31 of the 50 listings went up on or after 2026-10-16, so most of this stock is less than three weeks old. The top listing has 42,000 "wants". Its title says "sealed, not activated, factory replacement", at 1,299 CNY.

Xianyu sellers pick their own condition tags. We used the card tag where one exists. Where none exists, we read the title for words such as "sealed" or "factory replacement". The result is in the table below.

ConditionRowsMedian (CNY)Versus new at 2,399
New41,74927.1% lower
Sealed, factory replacement (from title)31,35043.7% lower
Like new201,499.537.5% lower
Minor marks81,549.535.4% lower
Light scratches21,28846.3% lower
Visible damage11,35043.7% lower
No tag121,44939.6% lower

The second row is the surprise. The 3 listings marked "sealed, factory replacement" have a median of 1,350 CNY. That is 23% below the 4 listings marked "new" at 1,749 CNY. A factory replacement is usually a unit returned through after-sales service. Warranty, activation and the DJI Care Refresh plan are the open questions.

These topics appear again and again in Xianyu titles. 18 of the 50 listings mention Care Refresh, 3 mention factory replacement, 17 use the paid inspection service, and 26 have free_shipping set to true. For a sealed unit that costs less than a new one, the right verdict is not "best deal". It is "ask the most questions".

Horizontal bar chart of the median Xianyu price in CNY by condition. New 1,749 (4 rows); sealed and replaced 1,350 (3 rows, teal); like new 1,499.5 (20 rows). Minor marks 1,549.5 (8 rows); light scratches 1,288 (2 rows); visible damage 1,350 (1 row); no tag 1,449 (12 rows). The sealed replacement units cost 23% less than new.

Reviews are the biggest gap in this test. From 00:22:36 Singapore time, we called taobao/reviews through MCP for 7 products. One was a Tmall store, and one was the Labubu item from later in this article. All 7 calls returned 0 rows.

Each response said empty_result_refunded, and nothing was charged. Zero rows does not mean "no bad reviews". We do not know why these 7 products returned no rows. So we switched to taobao/questions, the Taobao Q&A section.

At 00:25:53 Singapore time, taobao/questions returned 20 rows, posted from 2026-03-01 to 2026-10-21. The newest one, from 2026-10-21, asks if the camera is easy to use. The next one, from 2026-10-17, asks if you must buy the memory card yourself. We tagged each question by topic, and one question can have more than one tag. Image and photo quality had 6 questions.

Use cases such as concerts, car mounts and first-person video had 5. Authenticity, authorized stores and activation had 5. Accessories and storage had 4. Ease of use had 2, and price had 1.

Do not copy the Q&A answers into the verdict as facts. Each of the 20 questions came back with only 1 answer. But answer_count shows that 14 of them have 2 to 4 answers. So the analyst sees only the first answer to each question. In these 20 answers, at least three points need a check against the official specs.

First, on 2026-04-19 a buyer asked if the camera has a built-in microphone. The answer was "you need to buy the microphone". The DJI specs page says the Pocket 3 has 3 microphones (Osmo Pocket 3 specs). The buyer probably meant an extra wireless microphone.

Second, the 2026-10-17 answer says you must buy the memory card yourself. This one is correct. The specs page says the camera has no internal storage and takes a microSD card of up to 1 TB.

Third, two questions ask about concerts, and the answers disagree. The answer under the 2026-07-08 question says "it is OK, but not as good as I expected". The answer under the 2026-04-11 question says "not suitable". When answers disagree, the analyst must write "buyers disagree". It must not pick one answer as the verdict.

One more answer is about price. On 2026-03-04, a buyer asked what others paid, and the answer was 2,700 CNY. In this test, the median new price on Taobao and JD was 2,399 CNY. One answer is not a market price.

But the timing matches the Pocket 4 launch on 2026-04-16, so the old model dropped by about 300 CNY in half a year. Two more answers say the unit needs no in-person activation and arrived "not activated, not opened". Xianyu titles say "not activated" again and again. Activation status is clearly what buyers and sellers care about most for this camera.

Question (date)Buyer answerOfficial spec or other dataWhat the analyst writes
Built-in microphone? (2026-04-19)Buy it yourself3 microphones on the cameraAnswer is wrong or means an extra mic
Memory card included? (2026-10-17)Buy it yourselfNo internal storage, microSD up to 1 TBCorrect; budget for a card
Good for concerts? (2026-07-08, 2026-04-11)"OK" and "not suitable"No spec covers thisBuyers disagree
What did you pay? (2026-03-04)2,700 CNY2,399 CNY median in this testOne data point, not a market price

Put the Q&A next to the Xianyu titles, and buyers worry about the same three things. First, is the unit genuine, and how is it activated? Second, do you need to buy a memory card and other parts? Third, does it fit a specific use? These three points become the seller questions in the verdict.

For JD reviews, jd/reviews is marked as unavailable in the capability catalog. We called it once at 00:20:53 Singapore time. It returned HTTP 503 with no charge and a retry hint of 900 seconds. So the verdict simply says "JD reviews not available". You can read about each capability on the Taobao reviews API, Taobao Q&A API and JD reviews API pages.

The one-page verdict the analyst should write

Before we hand data to a model, we write the expected answer ourselves. We then use it to judge the model output. Here is that answer. All numbers come from live calls between 00:20 and 00:29 Singapore time on 2026-11-03.

Buying new. The median is 2,399 CNY (about $357) on Taobao, across 14 single-model rows, and on JD, across 4 rows. The JD official store is out of stock. New prices hardly differ between the two marketplaces. Pick a store that gives an invoice and official warranty. If a title claims a subsidy, ask which one and what the final price is.

Buying used. The Xianyu median is 1,499 CNY (about $223), which is 37.5% below new. The 20 "like new" rows have a median of 1,499.5 CNY and are the main choice. The 3 "sealed, factory replacement" rows have a median of 1,350 CNY. They look cheapest, but check the serial number first.

Three questions for the seller. Can the serial number show the activation and warranty dates on the DJI site? Is the Care Refresh plan still valid, and can it move to a new owner? Does the price include a memory card and every part in the title? Data gaps. Taobao reviews returned nothing this time. JD reviews are paused. The only buyer voice here is 20 Taobao Q&A rows.

For sellers, the verdict changes angle. Half of the 50 Xianyu prices sit between 1,388.5 and 1,607.25 CNY. This is the band that buyers see most. A price under 1,388.5 CNY falls in the cheapest quarter, and buyers will ask why.

A clear title may help more than a 100 CNY cut. Say that the serial number can be checked, all parts are included and inspection is available. For new stock on Taobao or JD, 2,399 CNY is already the common price. A new Pocket 4 standard kit costs only 600 CNY more, so the margin on the old model is getting thin.

How do you check that the model wrote the verdict correctly? We compare its output with the answer above, line by line. We do not ask the model to grade itself. There are five checks. Are the three medians 2,399, 2,399 and 1,499 CNY?

Is the used discount near 37.5%? Does it state the two review gaps instead of calling the reviews "good"? Does it flag the subsidy claims? Does it single out the sealed replacement units? If one check fails, fix the prompt before you try a bigger model.

Most number errors come from the model computing medians in its head. A safer design sorts the prices in a few lines of code after the tools return. The code computes the quartiles, and the model only turns those numbers into words. This also makes the verdict repeatable. Two runs on the same data give the same numbers, even if the wording changes.

Prompt design: sort first, judge second

We rewrote the analyst prompt three times. Three rules survived. Rule one: sort, then count. For each row, the model first checks the product.

Is it the right model, new or used, a single unit, a bundle or a part? Only rows that pass go into the price math. In the Taobao Pocket 3 results, 5 rows also name other models and 1 row is used. Without sorting, the median moves down.

Rule two: say what is missing. A missing field, an empty result or a paused capability must appear in the verdict. The verdict must also say which judgment gets weaker because of the gap. An empty review result must never become "no complaints".

Rule three: write advice only at the end. Earlier turns only collect and sort. The last turn writes the text for the user. Each turn stays short, which also lowers the token bill.

These rules also set the call order. The cheapest and fastest call, Taobao search, goes first. It confirms the product name and how sellers write the model. The longest call, Xianyu search, goes last, so its 21,710 tokens are read only once. Taobao reviews go before Taobao Q&A, so an empty result leads straight into the fallback. With the same six calls, a different order can change the input by tens of thousands of tokens.

A second product: why you cannot trust a search result blindly

To test the analyst on another category, we switched to a popular collectible between 00:27 and 00:29 Singapore time. We chose the Pop Mart Labubu third-generation vinyl plush series. Its Chinese name means roughly "high energy ahead". Taobao search returned 20 rows. 12 rows were charms or blind boxes, with a median of 104.9 CNY and a range of 60.9 to 268 CNY. 4 rows were large dolls, and 4 were accessories such as display cases.

JD search returned 5 rows. The Pop Mart flagship store sells one blind box for 99 CNY and a case of 6 for 594 CNY. Three reseller shops list 109, 1,146 and 2,399 CNY. The JD detail page was out of stock again, with the price masked as "9?". These results are normal, and the analyst can compare them as usual. On JD, a reseller's single box costs 10 CNY more than the flagship store.

Xianyu was the problem. Our first query was the brand name plus the Chinese series name and "third generation". It returned 50 rows, and every title was a book or course about stock trading. Not one row was a Labubu. Our second query used the Chinese name of the toy, the series name and "blind box".

It returned the same 50 item IDs in a different order. One example title is a two-book set on price and volume and on trading. Both calls were billed as normal results, at $0.005556 each.

Stacked horizontal bar chart, each result sorted by title. Taobao search, 20 rows: 12 charms or blind boxes, 4 large dolls, 4 accessories. Xianyu query A and query B, 50 rows each: all stock trading books, the same items both times. Two Xianyu queries gave zero matching results.

The lesson for the analyst is clear. A tool that returns 50 rows has not returned 50 relevant rows. The prompt needs a relevance step. Check that each title contains the product name. If fewer than half of the rows match, change the query or tell the user. Without that step, the model will compute a used Labubu price from 50 finance books.

On the Pocket 3, all 50 Xianyu rows were relevant. On Labubu, none were. Same tool, same call pattern, very different quality. So the relevance check belongs in the flow, not in the hope that the model notices.

Cost of one comparison run

Start with the data calls. EveryInfra charges the catalog price for each call. taobao/search costs $0.0135 per call. xianyu/search costs $0.005556. jd/search costs $0.002472. jd/product_detail, taobao/reviews and taobao/questions each cost $0.001389.

Empty results are refunded. One run of our flow, with empty Taobao reviews and the Q&A fallback, costs $0.024306. If Taobao reviews return rows, add $0.001389 for a total of $0.025695. See the pricing page and each capability page for current prices. Examples are the Taobao search API, JD search API, JD product detail API and Xianyu search API.

CapabilityPrice per callCalls per runSubtotal
taobao/search$0.01351$0.0135
taobao/reviews$0.001389, refunded when empty1$0
taobao/questions$0.0013891$0.001389
jd/search$0.0024721$0.002472
jd/product_detail$0.0013891$0.001389
xianyu/search$0.0055561$0.005556
Total6$0.024306

Model cost depends on result length. We counted tokens in our six real responses with the Qwen tokenizer that ships with Qwen-Agent. Xianyu with 50 rows had 21,710 tokens. Taobao Q&A had 4,923. Taobao search had 3,961. JD search had 1,955.

JD detail had 1,831. The empty Taobao reviews result had 432. The total is 34,812 tokens, and Xianyu alone is 62% of it. This tokenizer may differ from the one Model Studio uses for billing. So the model cost below is an estimate.

Here are the assumptions. The tool list is 4,211 tokens, the system prompt is 500 and the question is 100. There are 7 turns: 6 tool calls and 1 final answer. On each turn the model reads everything before it.

Each tool call has 80 output tokens, and the final answer has 1,500. No cache. With these numbers, one run reads 116,703 input tokens and writes 1,980 output tokens.

Horizontal bar chart of tokens per capability result in one run. taobao/search 3,961 (11%); taobao/questions 4,923 (14%); taobao/reviews 432 (1%). jd/search 1,955 (6%); jd/product_detail 1,831 (5%); xianyu/search 21,710 (62%, teal). The 50 Xianyu rows are 62% of all tool output.

In the Beijing region, qwen3.8-max costs 12 CNY per million input tokens and 36 CNY per million output tokens. A cache hit costs 1.5 CNY. The page was updated on 2026-10-10 (qwen3.8-max model page). qwen3.8-flash costs 0.8 CNY input, 2.7 CNY output and 0.1 CNY for a cache hit. That page was updated on 2026-10-29 (qwen3.8-flash model page). We convert at 6.7146 CNY per USD, the central parity rate published by China's foreign exchange regulator for 2026-11-02 (SAFE central parity).

With qwen3.8-max, one run costs about 1.4717 CNY, or about $0.2192. That is 9.02 times the data cost. With qwen3.8-flash, one run costs about 0.0987 CNY, or about $0.0147. The international site lists qwen3.8-max in the Singapore region at $2 input and $6 output per million tokens. That page was updated on 2026-10-11 (qwen3.8-max international page). It is a little more than the Beijing price after conversion.

Horizontal bar chart of the USD cost to run one product through 6 capabilities, with no cache. EveryInfra data calls $0.0243; qwen3.8-max tokens $0.2192 (teal); qwen3.8-flash tokens $0.0147; session runtime for 3 minutes $0.0037. With qwen3.8-max, the model costs 9 times the data calls.
SetupDataModelSession runtimePer run100 products a day30 days
qwen3.8-max on Model Studio$0.0243$0.2192$0.0037$0.2472$24.72$741.62
qwen3.8-flash on Model Studio$0.0243$0.0147$0.0037$0.0427$4.27$128.12
Data calls only$0.0243——$0.0243$2.43$72.92

The session runtime assumes 0.5 CNY per hour and 3 minutes per run. That is about 0.025 CNY, or $0.0037. The built-in web_search tool costs 0.03 CNY per call, or about $0.00447. Our flow does not use it (built-in tools).

The table tells two things. First, the main cost is the model, not the data. With qwen3.8-max, the model is 89% of each run. Second, the way to save money is to make the model read less, not to drop a data call. We tried cutting Xianyu from 50 rows to 20.

The qwen3.8-max cost fell only from $0.2192 to $0.1959, about 11%. Xianyu comes last, so its long result is read only once. Two changes work better. Use qwen3.8-flash to sort rows, and give only the sorted summary to qwen3.8-max. Or turn on the cache.

What the analyst cannot do yet

ProblemWhat we sawWhat to doSeen on
No Taobao reviews7 products, 0 rows each, refundedUse Taobao Q&A and state the gap2026-11-03
JD reviews pausedjd/reviews marked unavailable, HTTP 503Write "JD reviews not available"2026-11-03
JD price maskedDetail page shows "2??9" or "9?", out of stockUse the search price and note the stock2026-11-03
Taobao fields vary9 fields once, 14 fields another timeTell the model to report missing fields2026-11-03
Xianyu query driftTwo Labubu queries returned 50 stock booksCheck relevance and change the query2026-11-03
Self-reported condition"New" costs more than "sealed replacement"Ask about serial number and warranty2026-11-03
Model Studio not runNo account on our test machineTreat our config as an example2026-11-03
MCP server limit5 for console apps, none stated for Managed AgentsTest in your own workspace2026-11-03
Tokenizer mismatchEstimated with the open-source tokenizerCheck the real Model Studio bill2026-11-03

Two more points need attention before you go live. The first is returns. China's interim rule on seven-day no-reason returns for online purchases applies to online sellers that run a business (seven-day return rule). For a private person who sells a used item on Xianyu, it depends on the seller and the platform rules. One Taobao title in our data even says "no seven-day returns once opened". The verdict should warn about this.

The second point is rate limits. Our test key allows 10 calls per minute. The JD detail call hit HTTP 429 on the first try, and a retry after 7 seconds worked. For production, add retries to the flow or use async mode. Every sync response includes a hint: add "mode": "async" to the body to get a job ID at once. You then read the result with the everyinfra_get_job tool or GET /api/v1/jobs/{job_id}.

For this analyst, JD detail takes 11 to 14 seconds and Taobao reviews take 12 to 20 seconds. With a dozen products per run, waiting on sync calls makes the session long. On Model Studio, a long session costs more. We compared only two products and did not use async mode. So this is advice, not a test result.

Recent changes around Qwen and MCP

The biggest change is on the open-source side. The mcp Python package released 2.0.0 on 2026-07-28. That release renamed streamablehttp_client to streamable_http_client. The package then moved to 2.3.0 on 2026-10-02. Qwen-Agent is still at 0.0.34 from 2026-02-16. If you build a fresh environment today and do not pin the version, you will hit the import error from issue #949. Keep mcp==1.30.0 in the pip install line from the Qwen-Agent section.

On the model side, the qwen3.8-flash page, updated on 2026-10-29, lists 0.8 CNY input and 2.7 CNY output per million tokens. The qwen3.8-max page, updated on 2026-10-10, lists a context of 1,000,000 tokens and a maximum output of 131,072 tokens. Its snapshot is qwen3.8-max-0902.

This has two effects on the analyst. One run uses 116,703 input tokens, far below the context limit, so you do not need to cut Xianyu rows to fit the window. And flash costs less than one tenth of max. That is why the cost section splits the work: flash sorts the rows, and max writes the verdict. The international page, updated on 2026-10-11, lists the Singapore price for qwen3.8-max in US dollars.

DateChangeEffect on this analyst
2026-07-28mcp 2.0.0 renames the HTTP clientQwen-Agent 0.0.34 fails to import
2026-10-02mcp 2.3.0 on PyPIA fresh install still breaks; pin 1.30.0
2026-10-10qwen3.8-max page: 1M context, 131,072 outputOne run fits with room to spare
2026-10-11qwen3.8-max international pageSingapore price, $2 and $6 per million tokens
2026-10-16Custom MCP and Skills guide updateUse customer, the service ID and mcp_toolkit
2026-10-29qwen3.8-flash pageCheap model for the sorting step

On the platform side, Model Studio updated the custom MCP and Skills guide on 2026-10-16. The rules on customer, the service ID and mcp_toolkit come from this version. If a tutorial is older than this date and uses custom or the display name, follow the new guide. The pages we read and the data we pulled on 2026-11-03 may change within a month. So run the analyst on a schedule, not once.

To add more products, read the capability lists first. They are on the Taobao data API, JD data API and Xianyu data API pages. For other agent frameworks, see Agent Skills for review analysis. Also see an OpenAI Agents API review monitor. For MCP on ModelScope, see ModelScope MCP for Xiaohongshu and Douyin.

FAQ

How does Qwen Agent MCP connect to a remote MCP server?

Put an mcpServers block in the Qwen-Agent function_list. For a remote server, set "type": "streamable-http", the url, and the auth in headers. Without type, the framework connects over sse. Tool names become "server-tool".

On Model Studio Managed Agents, register the server in the console first, and write the transport as streamableHttp. Question source: search suggestions for "qwen agent mcp server", checked on 2026-11-03. Basis: Qwen-Agent repository and custom MCP and Skills.

Why does Qwen-Agent fail with ImportError: streamablehttp_client?

From version 2.0, the mcp package renamed streamablehttp_client to streamable_http_client. Qwen-Agent 0.0.34 still uses the old name. Pin mcp below 2.0. We used mcp==1.30.0. Question source: GitHub issue #949, opened on 2026-08-25. Basis: MCP Python SDK migration guide.

Is the Model Studio MCP Square shut down?

No. On 2026-06-30, 7 named services went offline. On 2026-04-01, 4 old Qibaike services went offline. Other services still work, and your own custom MCP server is not affected. Question source: search suggestions for the Chinese term for the Model Studio MCP Square, checked on 2026-11-03. Basis: notice 117858 and notice 118111.

How many MCP servers can one Model Studio agent use?

The console agent application page says at most 5 at the same time. The Managed Agents create page says mcp_toolkit can appear many times, with no stated limit. The figure of 10 in a community article is not in the help center. Question source: the help center and a developer community article disagree, checked on 2026-11-03. Basis: official MCP services and create agent.

Are the Qwen Agent API and open-source Qwen-Agent the same thing?

No. The Model Studio Agent API, also called Managed Agents, is a hosted service. The agent runs in a Model Studio sandbox, billed by session time and model tokens, and only in cn-beijing today. Open-source Qwen-Agent is a Python framework on your own machine, and you pay only for model calls. Both can use MCP, but the config differs. Question source: search suggestions for "qwen agent api", checked on 2026-11-03. Basis: API overview and qwen-agent on PyPI.

References

  1. Managed Agents advanced: custom MCP and Skills (Alibaba Cloud help center, updated 2026-10-16)
  2. Create agent API: POST /agents (Alibaba Cloud help center)
  3. Managed Agents MCP (Alibaba Cloud help center)
  4. Define an agent: models and run modes (Alibaba Cloud help center)
  5. Managed Agents API overview and auth (Alibaba Cloud help center)
  6. Agent API: operations and versions (Alibaba Cloud help center)
  7. Custom MCP (Alibaba Cloud help center)
  8. Official MCP services: up to 5 per agent application (Alibaba Cloud help center)
  9. Create session: mcp_configs (Alibaba Cloud help center)
  10. Managed Agents built-in tools and approval (Alibaba Cloud help center)
  11. Vault and egress gateway (Alibaba Cloud help center)
  12. Managed Agents in production (Alibaba Cloud help center)
  13. Managed Agents multi-agent (Alibaba Cloud help center)
  14. Managed Agents skills (Alibaba Cloud help center)
  15. qwen3.8-max model page (Alibaba Cloud help center, updated 2026-10-10)
  16. qwen3.8-flash model page (Alibaba Cloud help center, updated 2026-10-29)
  17. Model Studio model pricing (Alibaba Cloud help center)
  18. Model Studio free quota for new users (Alibaba Cloud help center)
  19. Function Compute MCP server (Alibaba Cloud help center)
  20. OpenAPI MCP server guide (Alibaba Cloud help center)
  21. What is Model Studio (Alibaba Cloud help center)
  22. Model Studio model list (Alibaba Cloud help center)
  23. Alibaba Cloud notice 117858: 7 MCP Square services go offline (2026-01-05)
  24. Alibaba Cloud notice 118111: old Qibaike services go offline (2026-03-26)
  25. Alibaba Cloud notice 118456: Managed Agents billing (2026-07-16)
  26. qwen3.8-max international model page (updated 2026-10-11)
  27. QwenLM/Qwen-Agent (GitHub)
  28. Qwen-Agent issue #949: streamablehttp_client import error (GitHub, 2026-08-25)
  29. qwen-agent 0.0.34 (PyPI, 2026-02-16)
  30. mcp 2.3.0 (PyPI, 2026-10-02)
  31. MCP Python SDK migration guide
  32. MCP specification 2025-06-18: transports
  33. MCP specification 2025-06-18: tools
  34. MCP specification 2025-06-18: lifecycle
  35. EveryInfra remote MCP endpoint
  36. EveryInfra capability catalog (free, with price_usd)
  37. SAFE: RMB central parity rate (2026-11-02)
  38. Ministry of Commerce: 2026 consumer goods trade-in notice
  39. Interim rule on seven-day no-reason returns for online purchases (Cyberspace Administration of China)
  40. DJI Osmo Pocket 4 launch (2026-04-16)
  41. DJI Osmo Pocket 3 launch
  42. Osmo Pocket 3 specs (DJI)

Reference BL-74