SocialDataX 抖音 Douyin MCP
Server Details
Douyin hot search, work/user search, work details, comments/replies, profiles, series, transcript.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 20 tools
Each tool targets a distinct resource and action, with identifier variants (sec_user_id, profile_url, aweme_id, comment_id) clearly separated. Search, user info, video detail, comments, series, and speech-text tools do not overlap in purpose.
Tool names uniformly follow a douyin_<verb>_<resource>_by_<identifier> pattern, with douyin_search_* and douyin_submit_* as clear exceptions that still read predictably. The socialdatax_get_points_balance tool breaks the prefix convention, but the verb_noun structure remains consistent.
20 tools is on the higher end, but the count is justified by multiple equivalent lookup entry points and an asynchronous speech-to-text workflow. The set feels slightly large rather than bloated, and each tool has a defensible role.
The surface covers hot search, user profiles, user videos, series, video details, comments, replies, search, and speech-to-text with sensible task pairing. Minor gaps exist such as no follower/following endpoints and no pagination on hot search, but core data access workflows are complete.
Available Tools
22 toolsdouyin_get_hot_search_listARead-onlyInspect
获取抖音主热榜;当前不支持翻页。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| hot_items | Yes | 抖音主热榜条目 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true (read-only) and openWorldHint=true (open-world result set). The description adds beyond this by stating pagination is not supported and it retrieves the 'main' list, suggesting possible sub-lists or limitations. This is valuable behavioral context not present in annotations.
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 two short sentences with zero wasted words. The primary purpose is front-loaded, and the pagination limitation is succinctly stated. Every sentence earns its place.
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 tool with no parameters and an output schema, the description is complete. It states the exact action and the only important behavioral constraint (no pagination). Since an output schema exists, no return value explanation is needed.
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?
There are zero parameters, so the description cannot add meaning beyond the schema. Schema coverage is 100% (empty object). Per guidelines, baseline is 4 for no parameters, and the description does not need to provide additional param info. It is adequate.
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 retrieves the Douyin main hot search list, using specific verb and resource. The name and description align perfectly, and it is distinct from all sibling tools which deal with user info, videos, or search, making selection unambiguous.
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?
No explicit guidance on when to use this tool versus alternatives is provided. However, the tool is the only one for hot search lists among siblings, and with no parameters, usage is straightforward. Implied usage is clear but lacks explicit when/when-not context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_product_detail_by_product_idARead-onlyInspect
根据 product_id 读取抖音商品详情;已有完整商品 ID(包括用户直接提供)时直接使用,无需先搜索;否则可从 douyin_search_products 获取。只有商品链接或分享文案时使用 douyin_get_product_detail_by_url。
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | 抖音商品 ID;用户已提供完整 ID 时原样使用,无需先搜索;否则可从 douyin_search_products 返回的 items[*].product_id 原样复制;不要传 sku_id、商品链接或搜索词。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| price | Yes | 商品起售价,单位:元;不是指定 SKU 的价格,也不保证是最终实付价 |
| title | Yes | 商品标题 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| on_sale | Yes | 商品当前是否在售;不等同于指定 SKU 有库存或当前用户可购买 |
| shop_id | Yes | 店铺 ID |
| shipping | Yes | 发货信息;不包含发货地 |
| shop_name | Yes | 店铺名称 |
| assurances | Yes | 商品保障服务列表;空列表表示当前未返回保障信息,不代表商品没有保障服务 |
| product_id | Yes | 商品 ID;可直接使用商品搜索结果中的 product_id |
| sales_text | Yes | 平台展示的商品销量文本;没有时为空字符串;带“+”的数量表示下限,不是精确销量 |
| sold_count | Yes | 从销量文本解析的已售数量;不带“+”的万级展示数量换算为整数(如已售 1.5万返回 15000),不代表精确销量,须结合 sales_text 解读;缺失或无法解析时为 null,不代表零销量;0 表示明确已售 0 |
| main_images | Yes | 商品顶部主图/轮播图列表;空列表表示当前未返回对应图片 |
| detail_images | Yes | 商品详情图列表;空列表表示当前未返回对应图片 |
| discount_price | Yes | 优惠后起售价,单位:元;不限定为券后价,也不保证是最终实付价;没有单独优惠价时与 price 相同 |
| variant_groups | Yes | 可选商品规格组(name/options),不是商品属性参数或已选 SKU;空列表表示当前未返回规格信息,不代表商品只有一种规格 |
| shop_avatar_url | Yes | 店铺头像链接 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation and adds some context about not needing to search first, but does not disclose additional behavioral traits such as rate limits or error conditions. The annotation already covers read-only safety, so this is adequate but not exceptional.
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 compact and front-loaded with the main purpose, and every additional sentence provides actionable guidance without fluff.
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 that an output schema exists, the description sufficiently covers input requirements and decision logic, making it complete for an agent to invoke correctly.
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 parameter description is highly detailed: it specifies that a full product ID should be used as-is, can be copied from search results, and explicitly excludes sku_id, links, and search terms. This goes well beyond the basic 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 action (读取/read) and the resource (抖音商品详情/product details), and distinguishes it from the URL-based alternative by explicitly telling when to use each.
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?
Provides explicit when-to-use instructions: use directly when a full product ID is available, fall back to search_products if not, and use the by_url variant for links or share text. This fully eliminates ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_product_detail_by_urlARead-onlyInspect
根据抖音商品链接或分享文案读取商品详情;只有链接类输入时使用此入口。
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 抖音商品短链接、商品页面链接或包含商品链接的分享文案;不要传 product_id、sku_id 或搜索词。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| price | Yes | 商品起售价,单位:元;不是指定 SKU 的价格,也不保证是最终实付价 |
| title | Yes | 商品标题 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| on_sale | Yes | 商品当前是否在售;不等同于指定 SKU 有库存或当前用户可购买 |
| shop_id | Yes | 店铺 ID |
| shipping | Yes | 发货信息;不包含发货地 |
| shop_name | Yes | 店铺名称 |
| assurances | Yes | 商品保障服务列表;空列表表示当前未返回保障信息,不代表商品没有保障服务 |
| product_id | Yes | 商品 ID;可直接使用商品搜索结果中的 product_id |
| sales_text | Yes | 平台展示的商品销量文本;没有时为空字符串;带“+”的数量表示下限,不是精确销量 |
| sold_count | Yes | 从销量文本解析的已售数量;不带“+”的万级展示数量换算为整数(如已售 1.5万返回 15000),不代表精确销量,须结合 sales_text 解读;缺失或无法解析时为 null,不代表零销量;0 表示明确已售 0 |
| main_images | Yes | 商品顶部主图/轮播图列表;空列表表示当前未返回对应图片 |
| detail_images | Yes | 商品详情图列表;空列表表示当前未返回对应图片 |
| discount_price | Yes | 优惠后起售价,单位:元;不限定为券后价,也不保证是最终实付价;没有单独优惠价时与 price 相同 |
| variant_groups | Yes | 可选商品规格组(name/options),不是商品属性参数或已选 SKU;空列表表示当前未返回规格信息,不代表商品只有一种规格 |
| shop_avatar_url | Yes | 店铺头像链接 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool reads product details, consistent with the readOnlyHint annotation. However, it does not add additional behavioral context such as side effects, rate limits, or error conditions beyond what the annotation already implies.
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 concise and well-structured, with a single clear sentence conveying the purpose and usage condition. The parameter description adds essential detail without redundancy.
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 tool is simple with a single parameter, and the description fully covers its purpose and input constraints. Given the presence of an output schema, no further explanation of return values is necessary.
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 parameter description is highly informative, detailing the accepted URL types (short link, product page link, or shared copy containing the link) and explicitly excluding product_id, sku_id, and search terms. This goes far beyond the basic 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 explicitly states the tool reads product details based on a Douyin product link or shared copy. It also distinguishes itself from other tools by specifying this entry is for link-type inputs only, which clearly differentiates it from the product_id variant.
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 and parameter description provide explicit when-to-use guidance: use this tool only when the input is a link, and avoid passing product_id, sku_id, or search terms. This clearly routes the agent to the correct tool among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_user_info_by_douyin_idARead-onlyInspect
根据用户主页展示的抖音号 douyin_id 获取用户资料。
| Name | Required | Description | Default |
|---|---|---|---|
| douyin_id | Yes | 用户主页展示的公开抖音号 douyin_id;不要传昵称、搜索关键词、sec_user_id、用户主页链接或作品链接 |
Output Schema
| Name | Required | Description |
|---|---|---|
| bio | Yes | 用户简介;当前不可用时为空字符串 |
| name | Yes | 用户昵称 |
| gender | Yes | 性别:male 表示男,female 表示女,unknown 表示未知 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| user_id | Yes | 用户 user_id;当前不可用时为空字符串 |
| verified | Yes | 用户是否为认证账号 |
| douyin_id | Yes | 用户主页展示的抖音号;当前不可用时为空字符串 |
| live_info | Yes | 用户直播状态摘要;用户当前未直播时为 null |
| avatar_url | Yes | 用户头像链接;当前不可用时为 null |
| ip_location | Yes | IP 属地;当前不可用时为空字符串 |
| profile_url | Yes | 用户主页链接;当前不可用时为 null |
| sec_user_id | Yes | 用户 sec_user_id;当前不可用时为空字符串 |
| follower_count | Yes | 粉丝数;当前不可用时为 null |
| following_count | Yes | 关注数;当前不可用时为 null |
| verification_label | Yes | 用户认证文案;当前不可用时为空字符串 |
| received_like_count | Yes | 用户内容累计收到的点赞数;当前不可用时为 null |
| posted_content_count | Yes | 用户已发布作品数量,包含视频、图文等作品;当前不可用时为 null |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the detail that the ID is the publicly displayed homepage douyin_id, but discloses no further behavioral traits such as rate limits or response characteristics, which is acceptable but not enriching.
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, front-loaded sentence with no wasted words. It captures both the required input and the resource returned, though it is minimal.
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 read-only lookup with one required parameter, a thorough schema description, an output schema, and read-only/open-world annotations, the definition is largely complete. It does not explicitly mention the alternative sibling tools, but the agent can infer correct usage from the identifier constraint.
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 description coverage is 100%, and the parameter description already explains the meaning of douyin_id and what not to pass. The tool description restates essentially the same information without adding new semantic detail, so baseline 3 applies.
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 operation: retrieve user profile data using the homepage-displayed douyin_id. It identifies the exact identifier type, which helps distinguish it from sec_user_id/profile_url sibling tools, though it does not explicitly name those alternatives.
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?
Usage is implied: use this tool when you have the public douyin_id shown on the user's homepage. However, it does not explicitly state when to prefer this over its sec_user_id or profile_url siblings, leaving the selection guidance mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_user_info_by_profile_urlARead-onlyInspect
根据抖音主页长链接、短链接或分享文案获取用户资料。
| Name | Required | Description | Default |
|---|---|---|---|
| profile_url | Yes | 抖音用户主页链接、用户短链接或用户分享文案;不要传作品链接。已知 sec_user_id 时优先使用 ID 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| bio | Yes | 用户简介;当前不可用时为空字符串 |
| name | Yes | 用户昵称 |
| gender | Yes | 性别:male 表示男,female 表示女,unknown 表示未知 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| user_id | Yes | 用户 user_id;当前不可用时为空字符串 |
| verified | Yes | 用户是否为认证账号 |
| douyin_id | Yes | 用户主页展示的抖音号;当前不可用时为空字符串 |
| live_info | Yes | 用户直播状态摘要;用户当前未直播时为 null |
| avatar_url | Yes | 用户头像链接;当前不可用时为 null |
| ip_location | Yes | IP 属地;当前不可用时为空字符串 |
| profile_url | Yes | 用户主页链接;当前不可用时为 null |
| sec_user_id | Yes | 用户 sec_user_id;当前不可用时为空字符串 |
| follower_count | Yes | 粉丝数;当前不可用时为 null |
| following_count | Yes | 关注数;当前不可用时为 null |
| verification_label | Yes | 用户认证文案;当前不可用时为空字符串 |
| received_like_count | Yes | 用户内容累计收到的点赞数;当前不可用时为 null |
| posted_content_count | Yes | 用户已发布作品数量,包含视频、图文等作品;当前不可用时为 null |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true, so the read-only and externally-changing data aspects are covered. The description adds input-format context but does not disclose further behavior such as error handling, rate limits, or result volatility; it does not contradict the annotations.
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 main description is one short, front-loaded sentence that names the action and accepted input forms with no filler or repetition. Every part contributes directly to understanding what the tool does.
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 tool is simple with one required parameter, has a full output schema, and the parameter description covers the important exclusions and routing guidance. Combined with the read-only and open-world annotations, nothing essential is missing for an agent to select and invoke the tool correctly.
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 description coverage is 100%, and the profile_url parameter description already fully documents allowed input types, the prohibition on video links, and the preference for ID-based entry. The main description repeats essentially the same input information without adding meaning 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 uses a specific verb ('获取') and resource ('用户资料'), and precisely scopes the input to '主页长链接、短链接或分享文案'. This distinguishes it from the ID-based sibling tools and the video/series tools because it is clearly about fetching profile data from URL or share-text forms.
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 parameter description explicitly states when not to use this tool ('不要传作品链接') and gives a routing preference ('已知 sec_user_id 时优先使用 ID 入口'), which tells the agent to prefer the sec_user_id-based sibling when appropriate. The main description also makes clear that this tool is for profile URLs or share text, so the when-to-use condition is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_user_info_by_sec_user_idARead-onlyInspect
根据抖音用户 sec_user_id 获取用户资料;已知 sec_user_id 时优先使用此入口。
| Name | Required | Description | Default |
|---|---|---|---|
| sec_user_id | Yes | 抖音用户 sec_user_id,不透明标识;请传实际字段值,可从结果中的 sec_user_id 或 author.sec_user_id 复用;不要传公开抖音号 douyin_id、字段名或占位文本;只有主页链接时使用 profile_url 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| bio | Yes | 用户简介;当前不可用时为空字符串 |
| name | Yes | 用户昵称 |
| gender | Yes | 性别:male 表示男,female 表示女,unknown 表示未知 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| user_id | Yes | 用户 user_id;当前不可用时为空字符串 |
| verified | Yes | 用户是否为认证账号 |
| douyin_id | Yes | 用户主页展示的抖音号;当前不可用时为空字符串 |
| live_info | Yes | 用户直播状态摘要;用户当前未直播时为 null |
| avatar_url | Yes | 用户头像链接;当前不可用时为 null |
| ip_location | Yes | IP 属地;当前不可用时为空字符串 |
| profile_url | Yes | 用户主页链接;当前不可用时为 null |
| sec_user_id | Yes | 用户 sec_user_id;当前不可用时为空字符串 |
| follower_count | Yes | 粉丝数;当前不可用时为 null |
| following_count | Yes | 关注数;当前不可用时为 null |
| verification_label | Yes | 用户认证文案;当前不可用时为空字符串 |
| received_like_count | Yes | 用户内容累计收到的点赞数;当前不可用时为 null |
| posted_content_count | Yes | 用户已发布作品数量,包含视频、图文等作品;当前不可用时为 null |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with readOnlyHint and openWorldHint and describes a read-only lookup operation. It adds no behavioral context beyond the annotations, such as permission requirements, rate limits, failure modes, or data freshness, but for a simple one-parameter read-only tool the annotations already carry most of the safety burden.
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 compact sentence that front-loads the core action first and the selection preference second. There is no filler, redundancy, or repetition of structured schema 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?
For a simple read-only lookup with one required parameter and a rich parameter description, the definition is complete. The output schema is present, annotations cover behavior, and the selection guidance tells an agent exactly when to choose this tool, so nothing needed for correct invocation is missing.
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 description coverage is 100%, so the baseline is 3. The tool-level description merely restates that sec_user_id is the input and adds no meaning beyond the schema; the rich guidance about opaque identifiers and which values to avoid lives in the parameter description itself.
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 states a specific action and resource: fetching Douyin user profile data based on sec_user_id. It also indicates this entry is preferred when sec_user_id is known, clearly distinguishing it from sibling tools that use douyin_id or profile_url as the lookup key.
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 gives an explicit selection condition: use this tool when sec_user_id is known. The parameter description reinforces exclusions by warning not to pass douyin_id, field names, placeholders, and by routing profile-link cases to the profile_url entry. It does not explicitly name the by_douyin_id sibling as the fallback, so it stops short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_user_posted_videos_by_profile_urlARead-onlyInspect
根据抖音主页长链接、短链接或分享文案获取用户发布的作品列表,支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一用户作品分页链路的下一页,不能跨能力或用户复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 | |
| profile_url | Yes | 抖音用户主页链接、用户短链接或用户分享文案;不要传作品链接。已知 sec_user_id 时优先使用 ID 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页作品列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered; the description adds that pagination is supported but does not disclose rate limits, auth needs, or whether the returned list is limited to public data. This is adequate for a read-only list tool but not particularly rich.
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?
One compact sentence conveys the core purpose, accepted input types, and pagination capability without filler. The information is front-loaded and every part earns its place.
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 definition is complete for this complexity level: the detailed input schema handles page_token invariants, an output schema exists, readOnly/openWorld annotations cover behavioral expectations, and sibling names make the alternatives clear. No critical call-information is missing.
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 description coverage is 100%, so the schema already documents both profile_url and page_token thoroughly, including the opaque-token reuse constraints. The main description only restates the supported input forms and pagination concept, adding no meaning 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 states a specific verb ('获取'), a specific resource ('用户发布的作品列表'), and the accepted input forms (profile long/short links or share text). This clearly distinguishes it from sibling info, series, comment, and search tools. The pagination mention further clarifies the operation's scope.
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 main description implies the tool is for profile-URL-based video listing, and the profile_url parameter explicitly says not to pass video links and to prefer the sec_user_id entry when a sec_user_id is known, which routes the agent to the ID-based sibling. It does not, however, enumerate when to choose this over other siblings in the description text itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_user_posted_videos_by_sec_user_idARead-onlyInspect
根据抖音用户 sec_user_id 获取该用户发布的作品列表,支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一用户作品分页链路的下一页,不能跨能力或用户复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 | |
| sec_user_id | Yes | 抖音用户 sec_user_id,不透明标识;请传实际字段值,可从结果中的 sec_user_id 或 author.sec_user_id 复用;不要传公开抖音号 douyin_id、字段名或占位文本;只有主页链接时使用 profile_url 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页作品列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only and open-world, so the description only needs to add operation-specific behavior. It adds that this is a list operation with page_token pagination, but no additional side effects or constraints are disclosed. No contradiction with annotations.
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 main description is a single clear sentence that leads with the operation/resource and mentions pagination second, with no filler or redundant restatement.
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 only 2 parameters, full schema coverage, readOnly/openWorld annotations, and an output schema, nothing essential is missing for an agent to select and invoke the tool correctly. The parameter descriptions cover edge cases like opaque token reuse and invalid inputs.
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 description coverage is 100% and the parameter descriptions for sec_user_id and page_token are unusually detailed, including reuse rules, forbidden values, and token chaining constraints. The main description adds no meaning beyond the schema, so the baseline of 3 applies.
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 states a specific action (获取...作品列表) and the key identifier (sec_user_id), plus pagination support. It clearly targets the posted-videos resource and differs from info/search siblings, but it does not explicitly distinguish itself from douyin_get_user_posted_videos_by_profile_url beyond the identifier.
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?
Schema parameter guidance explicitly says to pass the actual sec_user_id, not douyin_id, and to use the profile_url entry when only a homepage link is available. This gives the agent explicit when-to-use and when-to-choose-an-alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_user_series_by_profile_urlARead-onlyInspect
根据抖音主页长链接、短链接或分享文案获取用户短剧列表,支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一用户短剧列表分页链路的下一页,不能跨能力或用户复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 | |
| profile_url | Yes | 抖音用户主页链接、用户短链接或用户分享文案;不要传作品链接。已知 sec_user_id 时优先使用 ID 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页短剧列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is known. The description adds that pagination via page_token is supported, but this behavior is also fully specified in the input schema, so the added transparency is modest.
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?
One compact sentence conveys the action, resource, accepted input formats, and pagination capability with no fluff. It is appropriately sized and front-loaded around the core purpose.
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 a complete input schema, output schema, and read-only annotations, the description is nearly complete for a two-parameter tool. It relies on the schema for pagination details and alternative-ID guidance, but nothing essential is missing.
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 description coverage is 100%, so the baseline is 3; the description only restates accepted profile URL forms and does not add meaning beyond the schema. The schema's page_token and profile_url descriptions already carry the full semantic load.
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 uses the specific verb 获取 with the clear resource 用户短剧列表, and states the accepted input forms (长链接、短链接或分享文案). This distinguishes it from sibling tools that use sec_user_id or return posted videos rather than series.
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 profile_url parameter explicitly says not to pass video links and to prefer the ID entry when sec_user_id is known, which routes to the sec_user_id sibling. However, the main description itself does not name alternatives or give broader when-to-use guidance beyond this parameter-level hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_user_series_by_sec_user_idARead-onlyInspect
根据抖音用户 sec_user_id 获取该用户短剧列表,支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一用户短剧列表分页链路的下一页,不能跨能力或用户复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 | |
| sec_user_id | Yes | 抖音用户 sec_user_id,不透明标识;请传实际字段值,可从结果中的 sec_user_id 或 author.sec_user_id 复用;不要传公开抖音号 douyin_id、字段名或占位文本;只有主页链接时使用 profile_url 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页短剧列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint and openWorldHint annotations already establish the safety and open-world profile, so the description only needs to add behavior beyond that. It adds that pagination via page_token is supported, which is useful, but it does not disclose rate limits, potential empty results, or other behavioral details. This is acceptable but not rich.
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, focused sentence that front-loads the primary purpose and then states pagination support. There is no filler, no repetition of the tool name, and every clause earns its place.
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 read-only paginated list tool, the combination of description, detailed parameter schema, and annotations is largely sufficient. The output schema covers return values, and readOnlyHint covers safety. The only minor gap is that the main description does not explicitly route users to the profile_url sibling, though the parameter description partially compensates.
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% parameter description coverage and already explains both sec_user_id and page_token in detail, including opaque-token reuse rules and what not to pass. The description itself only repeats the pagination concept and adds no extra parameter-level meaning, so the baseline of 3 applies.
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 uses a specific verb ('获取') and a specific resource ('该用户短剧列表' / user's short-drama series list), and clearly identifies the required input (sec_user_id). It also distinguishes itself from sibling tools like douyin_get_user_info_by_sec_user_id and douyin_get_user_posted_videos_by_sec_user_id by naming the series/short-drama list resource.
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 gives clear context for when to use the tool: when you have a Douyin sec_user_id and need that user's series list. It does not explicitly name the profile_url sibling in the main description, but the sec_user_id parameter description provides the key exclusion: if only a profile URL is available, use the profile_url entry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_video_comment_replies_by_comment_idARead-onlyInspect
根据 aweme_id 和一级评论 comment_id 获取抖音评论回复;需同时传入 aweme_id 和 comment_id。用户已提供完整合法组合时直接使用;已有 aweme_id、作品链接或分享文案但缺少必需 ID 时,调用对应一级评论工具补全;缺少作品定位信息时向用户索取;不要传回复项自身的 comment_id;支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| aweme_id | Yes | 抖音作品的数字 aweme_id,通常可从搜索、详情或评论结果中的 aweme_id 字段复用;不要传作品链接、分享文案或带引号的字符串;用户已提供时直接使用;调用评论回复工具时必填,需与 comment_id 同时传入,且两者须属于同一作品 | |
| comment_id | Yes | 一级评论 ID comment_id;用户已提供时直接使用,否则可从一级评论结果 items[*].comment_id 复用;调用评论回复工具时必须同时传入同一作品的 aweme_id;不要传评论回复结果里的 items[*].comment_id | |
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一作品下同一一级评论的回复分页链路,不能跨能力、作品或评论复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页评论回复列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| comment_count | Yes | 该一级评论下的回复总量;当前不可用时为 null |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, and the description adds useful behavioral constraints: both IDs must be supplied together and belong to the same video, reply-level comment_ids must not be passed, and page_token pagination is supported. No mutation or side-effect disclosure is needed given the read-only annotation.
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 dense single sentence with semicolon-separated guidance, but every clause conveys essential information: core operation, required pairing, fallback path, user interaction, and pagination. It is compact enough for the amount of workflow guidance provided.
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 read-only paginated lookup tool, the description covers the exact callable precondition, the alternate resolution path, the negative case (reply's own comment_id), and pagination. With an output schema present, no return-format explanation is needed.
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 already documents all three parameters at 100% coverage, so the baseline applies. The description reinforces important constraints (same-video ownership, not using reply IDs) but adds little parameter-level meaning beyond what the schema property descriptions already contain.
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 states the specific operation ('获取抖音评论回复') scoped to a first-level comment_id plus aweme_id, which clearly distinguishes this from siblings like douyin_get_video_comments_by_aweme_id (first-level comments) and URL-based variants. The required ID combination is explicit.
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?
It explicitly defines when to call directly (complete valid combination provided), when to fall back to a first-level comment tool to obtain missing IDs, and when to ask the user for missing video-locating information. It also warns not to pass reply-item comment_ids, giving the agent actionable selection and exclusion rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_video_comments_by_aweme_idARead-onlyInspect
根据抖音作品 aweme_id 获取一级评论列表,支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| aweme_id | Yes | 抖音作品的数字 aweme_id,通常可从搜索、详情或评论结果中的 aweme_id 字段复用;不要传作品链接、分享文案或带引号的字符串 | |
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一作品评论分页链路的下一页,不能跨能力或作品复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页一级评论列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| comment_count | Yes | 作品评论总量;当前不可用时为 null |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. The description adds behavioral context beyond annotations by specifying that only top-level comments are returned and that page_token pagination is supported. It does not mention rate limits or error behavior, but these are secondary for a simple read operation.
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, focused sentence that front-loads the primary action and resource, then states the pagination capability. There is no filler, repetition, or unnecessary detail, making it easy to scan.
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 two-parameter read-only tool with a full output schema and annotations covering read-only/open-world behavior, the description is complete. It states the core function, the identifier, and pagination support, which is all an agent needs to correctly invoke and page through results.
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%, so the baseline is 3. The description adds no parameter-level meaning beyond the schema; it merely restates that pagination is supported, which the page_token schema description already explains in greater detail.
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 uses a specific verb (获取/get), names the resource (一级评论列表/top-level comment list), and specifies the key identifier (aweme_id). It clearly differentiates from siblings by stating it fetches top-level comments by aweme_id, as opposed to by URL or replies by comment_id.
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?
No explicit when-to-use or when-not-to-use guidance is provided, nor are alternatives named. The intended context is implied through the resource and identifier, but the description does not state exclusions or direct an agent to sibling tools when appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_video_comments_by_urlARead-onlyInspect
根据抖音作品页面链接、作品短链接或包含作品链接的分享文案获取一级评论列表,支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 抖音作品页面链接、作品短链接或包含作品链接的完整分享文案;不要传 video.play_url 这类播放资源链接,也不要传用户主页链接;已知 aweme_id 时优先使用 ID 入口 | |
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一作品评论分页链路的下一页,不能跨能力或作品复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页一级评论列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| comment_count | Yes | 作品评论总量;当前不可用时为 null |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint, so no mutation risk needs explanation. The description adds value by clarifying that only first-level comments are returned and that page_token pagination is supported, which are behavioral traits not captured by the annotations.
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 front-loaded sentence that communicates the core purpose and pagination capability with no filler. Every word is informative, and detailed parameter nuances are appropriately left to the schema.
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 two-parameter read-only tool with an output schema present, the description plus detailed schema fully covers what an agent needs: accepted URL forms, pagination semantics, and the top-level comment scope. Return-value details are already handled by the output schema.
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 description coverage is 100%, so the schema fully documents both parameters. The description's reference to supported link formats and pagination aligns with the schema but does not add substantial meaning beyond it, matching the baseline 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 states a specific verb ('获取'/'get'), resource ('一级评论列表'/'first-level comment list'), and input method (video URL/short link/share text). It distinguishes from sibling tools by making the top-level scope explicit and by noting the URL-based entry point, which contrasts with the aweme_id-based sibling.
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 and url schema condition together give explicit usage guidance: accept video page URLs, short links, or share text; explicitly exclude video.play_url playback URLs and user profile links; and recommend the aweme_id entry when the ID is known. This clearly routes the agent to the correct input mode and sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_video_detail_by_aweme_idARead-onlyInspect
根据抖音作品 aweme_id 获取视频或图文作品详情;已知 aweme_id 时优先使用此入口。
| Name | Required | Description | Default |
|---|---|---|---|
| aweme_id | Yes | 抖音作品的数字 aweme_id,通常可从搜索、详情或评论结果中的 aweme_id 字段复用;不要传作品链接、分享文案或带引号的字符串 |
Output Schema
| Name | Required | Description |
|---|---|---|
| music | Yes | 作品绑定音乐或原声资产;不表示视频播放时需要额外叠加播放;当前不可用时为 null |
| video | Yes | 抖音平台播放器资源;视频作品为视频播放资源,图文作品可能为音频播放资源;无法可靠识别时为 null |
| author | Yes | 作品作者信息 |
| images | Yes | 作品图片展示资源列表;图文作品按顺序返回所有图片,视频作品为空数组 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| aweme_id | Yes | 作品 aweme_id |
| share_url | Yes | 作品页面/分享链接;可作为按 url 查询作品详情或评论时的输入;当前不可用时为 null |
| like_count | Yes | 作品点赞数 |
| topic_tags | Yes | 作品话题标签列表;无话题标签时为空数组 |
| description | Yes | 作品文案 |
| share_count | Yes | 作品分享数 |
| content_type | Yes | 作品类型:video 表示视频,image 表示图文,unknown 表示未知 |
| publish_time | Yes | 作品发布时间,秒级 Unix 时间戳 |
| collect_count | Yes | 作品收藏数 |
| comment_count | Yes | 作品评论数 |
| cover_image_url | Yes | 作品封面图链接;当前不可用时为 null |
| mentioned_users | Yes | 作品正文中 @ 到的用户列表;无 @ 时为空数组 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the tool covers both video and image-text works, which is useful, but it does not disclose any additional behavioral traits such as return structure or edge cases; the value it adds beyond annotations is modest.
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, concise sentence that states the action, resource, identifier, and usage priority. There is no filler or repetition of schema details, and the most important decision guidance is front-loaded.
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 only one well-documented parameter, an output schema, and annotations covering safety, the description is complete enough for an agent to invoke it correctly. The sibling context also makes the alternative URL-based entry obvious.
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 description coverage is 100% and the single parameter aweme_id is thoroughly documented in the schema, including its numeric nature and what not to pass. The tool description itself adds little parameter-specific meaning, so the baseline score of 3 is appropriate.
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 uses a specific verb ('获取' / 'get') and clearly identifies the resource: video or image-text work details by aweme_id. It also distinguishes this entry from the URL-based sibling tool by emphasizing that this is the preferred entry when aweme_id is known.
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 explicitly states when to use this tool: when the aweme_id is already known, this entrance should be prioritized. This effectively tells the agent to prefer this tool over douyin_get_video_detail_by_url when the ID is available, providing clear selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_video_detail_by_urlARead-onlyInspect
根据抖音作品页面链接、作品短链接或包含作品链接的分享文案获取视频或图文作品详情。
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 抖音作品页面链接、作品短链接或包含作品链接的完整分享文案;不要传 video.play_url 这类播放资源链接,也不要传用户主页链接;已知 aweme_id 时优先使用 ID 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| music | Yes | 作品绑定音乐或原声资产;不表示视频播放时需要额外叠加播放;当前不可用时为 null |
| video | Yes | 抖音平台播放器资源;视频作品为视频播放资源,图文作品可能为音频播放资源;无法可靠识别时为 null |
| author | Yes | 作品作者信息 |
| images | Yes | 作品图片展示资源列表;图文作品按顺序返回所有图片,视频作品为空数组 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| aweme_id | Yes | 作品 aweme_id |
| share_url | Yes | 作品页面/分享链接;可作为按 url 查询作品详情或评论时的输入;当前不可用时为 null |
| like_count | Yes | 作品点赞数 |
| topic_tags | Yes | 作品话题标签列表;无话题标签时为空数组 |
| description | Yes | 作品文案 |
| share_count | Yes | 作品分享数 |
| content_type | Yes | 作品类型:video 表示视频,image 表示图文,unknown 表示未知 |
| publish_time | Yes | 作品发布时间,秒级 Unix 时间戳 |
| collect_count | Yes | 作品收藏数 |
| comment_count | Yes | 作品评论数 |
| cover_image_url | Yes | 作品封面图链接;当前不可用时为 null |
| mentioned_users | Yes | 作品正文中 @ 到的用户列表;无 @ 时为空数组 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only safety profile is covered. The description adds minor context such as support for both video and image-text works, but does not disclose auth, error, or response behavior. This is acceptable given the annotations but not exceptional.
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, well-structured sentence with no filler. It front-loads the core purpose and input constraints without redundant elaboration.
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 single-parameter, read-only tool with a detailed schema parameter description and an output schema, all information needed to invoke it correctly is present. No critical usage condition or constraint is missing.
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 description coverage is 100% and the schema parameter description already contains the same accepted-format, exclusion, and alternative-entry guidance. The tool description therefore adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 applies.
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 uses a specific verb-resource pair (获取...详情) and enumerates three accepted input forms: page links, short links, and share text. It also differentiates from the aweme_id-based sibling via the schema instruction '已知 aweme_id 时优先使用 ID 入口'.
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 clearly states what inputs are accepted and explicitly tells the agent not to pass video.play_url resources or user homepage links. It also instructs the agent to prefer the ID entry when aweme_id is known, providing direct routing between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_get_video_speech_text_jobARead-onlyInspect
根据用户提供的有效 job_id,或 submit 工具返回的 job_id 查询抖音视频口播转文字任务状态;用于继续未完成任务,每次最多等待 240 秒,不触发重处理,也不要重复提交任务。
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | 口播转文字任务 ID;用户已提供时直接使用,否则使用 submit 工具返回的 job_id;不要传 aweme_id、作品链接或其他 ID。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | 失败或过期时的稳定错误结构;非终态或成功时为 null。 |
| job_id | Yes | 任务 ID。 |
| status | Yes | 任务状态。 |
| message | Yes | 面向用户/AI 的状态说明。 |
| platform | Yes | 任务所属平台。 |
| source_id | Yes | 任务来源 ID。 |
| content_id | Yes | 平台内容 ID。 |
| transcript | Yes | 成功时的口播转文字结果;非终态或失败时为 null。 |
| is_terminal | Yes | 是否已终态。 |
| next_action | Yes | 非终态时建议的下一步查询动作。 |
| content_meta | Yes | 作品上下文信息,便于结合转写内容做口播分析。 |
| content_type | Yes | 内容类型。 |
| next_poll_after_seconds | Yes | 建议下次查询前等待的秒数;非终态时可用。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds valuable behavioral details: maximum 240-second wait per call and that it does not trigger reprocessing. This goes beyond the annotations and informs the agent of polling behavior and side-effect-free 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 sentence but packs in the purpose, usage context, and key constraints. It is front-loaded with the core action and avoids redundancy. Could be split for readability but is efficient overall.
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 presence of an output schema and the simplicity of a status-polling tool, the description covers what the tool does, when to use it, and key behavioral limits. No critical missing information for correct invocation, though it omits any note about invalid job_id handling, which is minor given the schema guidance.
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 description coverage is 100% and the job_id parameter is already fully explained in the schema (use user-provided or submit tool's job_id, not aweme_id or links). The description repeats this but adds no new meaning beyond the schema, so baseline 3 is appropriate.
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 queries the status of a Douyin video speech-to-text task, with specific verb '查询' and resource '任务状态'. This distinguishes it from sibling tools like user info or video detail fetchers, and from the submit tools that create the task.
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 instructs to use a valid job_id from the user or the submit tool, and explicitly says to use it for continuing unfinished tasks. It also warns against resubmitting tasks, which guides the agent toward correct workflow integration with the submit siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_search_productsARead-onlyInspect
用户需要按关键词查找抖音全局搜索中的商品时使用;支持排序、价格、服务和卖点筛选,返回归一化商品列表与不透明分页令牌。当前服务提供详情工具时:已有 product_id 时直接使用 douyin_get_product_detail_by_product_id;已有商品链接或分享文案时使用 douyin_get_product_detail_by_url。不用于搜索作品或用户,也不表示商城频道内完整搜索链路。
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | 抖音商品搜索词,必填,去除首尾空白后不能为空;可传关键词或短语,例如“iPhone 16”或“露营桌”;keyword 只传搜索词,不要传商品链接、抖音平台对象 ID(如 sku_id、promotion_id、aweme_id、sec_user_id)或 page_token;不要把价格、排序或服务条件拼进 keyword,请使用对应筛选参数。 | |
| max_price | No | 最高价格,正整数,单位:元;必须大于 0,不传表示不限;与 min_price 同时传入时不得小于 min_price。 | |
| min_price | No | 最低价格,正整数,单位:元;必须大于 0,不传表示不限;与 max_price 同时传入时不得大于 max_price。 | |
| only_live | No | true 时仅返回当前正在直播的商品(抖音原生筛选“直播中”);false 表示不限(默认)。 | |
| sort_type | No | 商品排序:general(综合,默认)、sales_descending(销量降序)、price_ascending(价格升序)、price_descending(价格降序)。 | general |
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一抖音商品搜索链路、关键词、排序和筛选条件,不能跨能力复用;翻页时 keyword、sort_type、min_price、max_price 及全部筛选参数必须与上一页保持一致;需要修改任一条件时,清空 page_token 后从第一页重新搜索;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 | |
| selling_point | No | 卖点筛选:all(不限,默认)、high_sales(月销过万)、high_rating(好评多)。 | all |
| official_store | No | true 时仅返回带“抖音旗舰”标识的商品;false 表示不限(默认)。 | |
| seven_day_return | No | true 时仅返回支持 7 天无理由退货的商品;false 表示不限(默认)。 | |
| shipping_insurance | No | true 时仅返回支持运费险的商品;false 表示不限(默认)。 | |
| dispatch_within_24h | No | true 时仅返回支持 24 小时内发货的商品;false 表示不限(默认)。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页商品列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses key behavioral aspects: it returns a 'normalized product list' and an 'opaque pagination token', and warns that it does not represent a complete search chain within the mall channel. It could be more explicit about rate limits or data freshness, but it gives sufficient behavioral context for an agent to set expectations.
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 concise, using only two sentences. It front-loads the core purpose, then summarizes filter capabilities and returns, and concludes with guidance and limitations. No redundant or filler content; every sentence serves a purpose.
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 complexity of 11 parameters and the presence of an output schema, the description provides sufficient context: it summarizes the filter dimensions, mentions the opaque pagination token (which is further detailed in the schema), and gives explicit alternatives for detail retrieval. It also notes the limitation of not being a complete mall search, addressing potential edge cases. The output schema covers return value details, so none are needed here.
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?
With 100% schema coverage, the baseline is 3. The description adds meaning by grouping parameter categories (sorting, price, service, selling point) and by clarifying the relationship between search and detail tools, which helps an agent understand when to use which parameters. However, it does not introduce new parameter-specific details beyond the schema, so a 4 is appropriate.
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 primary action ('搜索商品' by keyword) and identifies the resource (Douyin products). It explicitly differentiates from sibling tools by noting it is not for searching videos or users, and directs users to detail tools when a product_id or URL is already available, making its purpose unambiguous.
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?
It provides explicit usage guidance: when to use this search tool versus the detail tools (douyin_get_product_detail_by_product_id and douyin_get_product_detail_by_url) based on whether product_id or link/share text is available. It also states exclusions (not for videos/users) and a limitation (not a complete mall channel search chain), giving an agent clear decision rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_search_usersARead-onlyInspect
搜索抖音用户、账号、博主、创作者或达人,支持 page_token 翻页。用户需要按搜索词查找用户时使用;已有 sec_user_id 或用户主页链接时使用相应用户资料或列表工具;不用于搜索作品。
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | 搜索词,可传昵称、抖音号、账号名、达人名称或创作者/博主名称;不用于搜索作品;不要传作品链接、用户主页链接、sec_user_id 或 page_token。 | |
| user_type | No | 用户类型筛选,可选:all(不限,默认)、regular_user(普通用户)、enterprise_verified(企业认证)、individual_verified(个人认证)。如无明确筛选需求,保持 all。 | all |
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一搜索链路,不能跨能力、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 | |
| follower_count_range | No | 用户粉丝数量筛选,可选:all(不限,默认)、under_1k(1000 以下)、1k_to_10k(1000-1 万)、10k_to_100k(1 万-10 万)、100k_to_1m(10 万-100 万)、over_1m(100 万以上)。如无明确筛选需求,保持 all。 | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页用户搜索结果列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already communicate readOnly and openWorld behavior, and the description adds further behavioral context by noting pagination support ('支持 page_token 翻页') and by clarifying the tool is keyword-driven rather than identity- or media-driven. It does not explain search semantics beyond pagination, but with readOnlyHint and openWorldHint already available, the added context is sufficient.
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 compact, front-loads the core action and resource, then gives routing guidance and exclusions. Every sentence adds distinct value with no filler, and the length is appropriate for the tool's complexity.
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 100% schema coverage, rich parameter descriptions, output schema, and readOnly/openWorld annotations, the description provides just enough extra context: it confirms pagination and clearly distinguishes when to use this tool versus sibling tools. No necessary guidance appears missing.
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 description coverage is 100%, so the input schema already documents every parameter in detail. The description mentions pagination and search terms but adds no parameter semantics beyond what the schema already provides, so the baseline 3 applies.
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 uses a specific action and resource, '搜索抖音用户、账号、博主、创作者或达人', and explicitly separates this from sibling tools by stating it is not for searching works. It also routes users with an existing sec_user_id or profile link to the corresponding profile/list tools, making differentiation clear.
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 explicitly states when to use this tool ('用户需要按搜索词查找用户时使用') and when not to use it, including both having an identity identifier/link and searching for works. It also points to the alternative category '相应用户资料或列表工具', providing actionable routing without relying on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_search_videosARead-onlyInspect
搜索抖音视频和图文作品。用户需要按搜索词查找作品时使用;已有作品链接或 aweme_id 且需要单篇信息时使用相应详情、评论或口播转文字工具;作品通常为视频,也可能包含图文内容;支持 page_token 翻页。
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | 搜索词,可传关键词或短语,例如品牌名、话题、人物名或产品名;不要传作品链接、用户主页链接、aweme_id、sec_user_id 或 page_token。 | |
| sort_type | No | 搜索排序方式,可选:general(综合,默认)、time_descending(最新发布优先)、like_count_descending(最多点赞优先)。综合或默认排序请传 general,最新发布请传 time_descending,最多点赞请传 like_count_descending。hot、latest、time、relevance、relevance_desc、default、综合、general_desc、liked、like_count、liked_desc、most_liked、most_hot、popularity_descending 等写法均不是可接受值,请直接使用上述三个标准值。 | general |
| page_token | No | page_token 是不透明分页令牌。首次请求留空;继续翻页时必须将上一次返回的完整 next_page_token 原样传入,作为 page_token 使用;只能用于同一搜索链路,不能跨能力、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 | |
| content_type | No | 内容形式筛选,可选:all(不限,默认)、video(视频)、image(图文)。如无明确筛选需求,保持 all。 | all |
| duration_range | No | 视频时长筛选,可选:all(不限,默认)、under_1_minute(1 分钟以下)、one_to_five_minutes(1-5 分钟)、over_5_minutes(5 分钟以上)。如无明确筛选需求,保持 all。 | all |
| publish_time_range | No | 发布时间范围筛选,可选:all(不限,默认)、day(一天内)、week(一周内)、half_year(半年内)。如无明确筛选需求,保持 all。 | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | 当前页搜索结果中的作品列表 |
| points | Yes | 本次成功调用的积分消耗与调用完成时的账户积分余额。 |
| next_page_token | Yes | 下一页不透明分页令牌;为空表示没有更多结果。继续翻页时必须将返回的完整 next_page_token 原样作为 page_token 传回。next_page_token 只能用于同一能力和同一分页链路,不能跨能力、作品、用户、评论、关键词或筛选条件复用;不得修改、截断、缩写、脱敏、掩码、省略、规范化、重组或自行生成,不得用省略号替换中间内容。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint and openWorldHint, covering the safety profile. The description adds that works may include image-text posts and that pagination via page_token is supported, but these facts are also represented in the input schema (content_type and page_token descriptions). No additional behavioral context such as rate limits, result incompleteness, or output-shape caveats is provided.
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 compact and front-loaded with the core purpose, then efficiently covers usage conditions and the key page_token behavior. It is a single multi-clause sentence with no filler, though it could be slightly more structured by splitting usage guidance from general behavioral notes.
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 search tool with six parameters and an output schema, the description provides enough context to orient the agent: what to search, when to use an alternative tool, and that pagination is supported. Missing details like sort_type options and content filters are fully covered by the schema descriptions, so nothing critical is absent.
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 description coverage is 100%, and the schema itself contains detailed parameter descriptions, including the page_token handling rules and accepted sort_type values. The tool description adds no param-level meaning beyond the schema, so the baseline score of 3 is appropriate.
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 uses a specific verb-resource pair: '搜索抖音视频和图文作品' (search Douyin videos and image-text posts). It clearly distinguishes this search tool from detail/comment/speech-to-text tools by stating that when a link or aweme_id is already available, those tools should be used instead.
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?
It gives an explicit when-to-use condition: '用户需要按搜索词查找作品时使用'. It also names the alternative category of tools for cases where an existing link or aweme_id is available, such as detail, comment, or speech-to-text tools, making the routing decision straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_submit_video_speech_text_by_aweme_idAInspect
根据抖音 aweme_id 提交视频口播转文字任务;提交后最多等待 240 秒,未完成时返回 job_id 和下一步查询动作。
| Name | Required | Description | Default |
|---|---|---|---|
| aweme_id | Yes | 抖音作品的数字 aweme_id,通常可从搜索、详情或评论结果中的 aweme_id 字段复用;不要传作品链接、分享文案或带引号的字符串 |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | 失败或过期时的稳定错误结构;非终态或成功时为 null。 |
| job_id | Yes | 任务 ID。 |
| status | Yes | 任务状态。 |
| message | Yes | 面向用户/AI 的状态说明。 |
| platform | Yes | 任务所属平台。 |
| source_id | Yes | 任务来源 ID。 |
| content_id | Yes | 平台内容 ID。 |
| transcript | Yes | 成功时的口播转文字结果;非终态或失败时为 null。 |
| is_terminal | Yes | 是否已终态。 |
| next_action | Yes | 非终态时建议的下一步查询动作。 |
| content_meta | Yes | 作品上下文信息,便于结合转写内容做口播分析。 |
| content_type | Yes | 内容类型。 |
| next_poll_after_seconds | Yes | 建议下次查询前等待的秒数;非终态时可用。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
注解没有提供异步等待或返回 job_id 的信息,描述补充了“最多等待 240 秒”和“未完成时返回 job_id 和下一步查询动作”,这增加了对异步行为的透明度和后续调用的指导,且与注解(readOnlyHint=false)无矛盾。
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?
描述仅一句话,直接说明了核心动作和关键行为,没有冗余信息,信息密度高且易于理解。
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?
工具是异步提交任务,有输出 schema(可能包含 job_id 等),描述提供了必要的等待时间和返回内容,足以让 agent 知道如何发起调用并确定后续动作;对于简单的一参数工具,描述足够完整。
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?
唯一的参数 aweme_id 在 schema 中已有详细说明(包括来源和排除项),描述本身没有额外补充参数语义,schema 覆盖 100%,基线为 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?
描述明确说“根据抖音 aweme_id 提交视频口播转文字任务”,动词“提交”和资源“视频口播转文字任务”都很具体,且和兄弟工具 `douyin_submit_video_speech_text_by_video_url` 在用途上形成清晰区分(按 ID 提交 vs 按 URL 提交)。
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?
描述了提交后的行为(等待 240 秒、返回 job_id 和下一步查询动作),间接暗示了后续应使用 `douyin_get_video_speech_text_job` 查询状态,但没有明确说“当你有 aweme_id 时使用此工具,而不是按 URL 提交”,不过名字已经足够区分,用户只需根据输入类型选择。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
douyin_submit_video_speech_text_by_video_urlAInspect
提交抖音作品视频口播转文字任务;提交后最多等待 240 秒,未完成时返回 job_id 和下一步查询动作。
| Name | Required | Description | Default |
|---|---|---|---|
| video_url | Yes | 抖音作品页面链接、作品短链接或包含作品链接的完整分享文案;不要传 video.play_url 这类播放资源链接,也不要传用户主页链接;已知 aweme_id 时优先使用 ID 入口 |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | 失败或过期时的稳定错误结构;非终态或成功时为 null。 |
| job_id | Yes | 任务 ID。 |
| status | Yes | 任务状态。 |
| message | Yes | 面向用户/AI 的状态说明。 |
| platform | Yes | 任务所属平台。 |
| source_id | Yes | 任务来源 ID。 |
| content_id | Yes | 平台内容 ID。 |
| transcript | Yes | 成功时的口播转文字结果;非终态或失败时为 null。 |
| is_terminal | Yes | 是否已终态。 |
| next_action | Yes | 非终态时建议的下一步查询动作。 |
| content_meta | Yes | 作品上下文信息,便于结合转写内容做口播分析。 |
| content_type | Yes | 内容类型。 |
| next_poll_after_seconds | Yes | 建议下次查询前等待的秒数;非终态时可用。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and idempotentHint=false, confirming a non-idempotent mutation. The description adds specific behavioral context: it waits up to 240 seconds and returns a job reference if incomplete, which is useful for an agent deciding whether to call this synchronously or poll later. No contradiction with annotations.
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, well-structured sentence that front-loads the primary action and then clearly states the wait/timeout behavior. Every part adds value and there is no redundancy or filler.
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 tool has an output schema, so return values do not need to be explained. The description covers the essential flow (submit, wait, get job_id if not done) and implicitly communicates asynchronous behavior. It does not explicitly mention what happens on immediate completion, but that is left to the output schema. Overall, it is sufficiently complete for an agent to invoke correctly.
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?
There is only one parameter (video_url) and its schema description is highly detailed (100% coverage), specifying acceptable URL forms and exclusions. The tool description adds no additional parameter meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
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 states a specific verb ('提交' meaning submit), a concrete resource (video speech-to-text task), and explains the follow-up behavior (wait up to 240 seconds, return job_id if incomplete). It clearly distinguishes this submission tool from query tools like douyin_get_video_speech_text_job.
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 waiting and returning job_id with a next query action, which implies using a query tool, but it does not explicitly differentiate when to use this URL-based submission vs the aweme_id-based alternative (douyin_submit_video_speech_text_by_aweme_id). The parameter schema separately recommends the ID entry, but that is not in the tool description. Guidance is implied but not explicit.
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.
3 tool updates
- Added
douyin_get_product_detail_by_product_id - Added
douyin_get_product_detail_by_url - Changed
douyin_search_products1 field changed- changed
Output schema / properties / items / items / properties / price / descriptionPrevious value: -"商品卡展示价格,单位:元"New value: +"商品卡展示价格,单位:元;不保证是最终实付价"
14 tool updates
- Changed
douyin_get_user_info_by_douyin_id1 field changed- changed
Output schema / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_user_info_by_profile_url1 field changed- changed
Output schema / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_user_info_by_sec_user_id2 fields changed- changed
Input schema / properties / sec_user_id / descriptionPrevious value: -"抖音用户 sec_user_id;可从 author.sec_user_id 或用户资料结果中的 sec_user_id 继续复用"New value: +"抖音用户 sec_user_id,不透明标识;请传实际字段值,可从结果中的 sec_user_id 或 author.sec_user_id 复用;不要传公开抖音号 douyin_id、字段名或占位文本;只有主页链接时使用 profile_url 入口" - changed
Output schema / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_user_posted_videos_by_profile_url1 field changed- changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_user_posted_videos_by_sec_user_id2 fields changed- changed
Input schema / properties / sec_user_id / descriptionPrevious value: -"抖音用户 sec_user_id;可从 author.sec_user_id 或用户资料结果中的 sec_user_id 继续复用"New value: +"抖音用户 sec_user_id,不透明标识;请传实际字段值,可从结果中的 sec_user_id 或 author.sec_user_id 复用;不要传公开抖音号 douyin_id、字段名或占位文本;只有主页链接时使用 profile_url 入口" - changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_user_series_by_profile_url1 field changed- changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_user_series_by_sec_user_id2 fields changed- changed
Input schema / properties / sec_user_id / descriptionPrevious value: -"抖音用户 sec_user_id;可从 author.sec_user_id 或用户资料结果中的 sec_user_id 继续复用"New value: +"抖音用户 sec_user_id,不透明标识;请传实际字段值,可从结果中的 sec_user_id 或 author.sec_user_id 复用;不要传公开抖音号 douyin_id、字段名或占位文本;只有主页链接时使用 profile_url 入口" - changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_video_comment_replies_by_comment_id1 field changed- changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"评论作者 sec_user_id;用户主页工具可直接复用"New value: +"评论作者 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_video_comments_by_aweme_id2 fields changed- changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"评论作者 sec_user_id;用户主页工具可直接复用"New value: +"评论作者 sec_user_id;当前不可用时为空字符串" - changed
Output schema / properties / items / items / properties / mentioned_users / items / properties / sec_user_id / descriptionPrevious value: -"被 @ 用户的 sec_user_id"New value: +"被 @ 用户的 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_video_comments_by_url2 fields changed- changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"评论作者 sec_user_id;用户主页工具可直接复用"New value: +"评论作者 sec_user_id;当前不可用时为空字符串" - changed
Output schema / properties / items / items / properties / mentioned_users / items / properties / sec_user_id / descriptionPrevious value: -"被 @ 用户的 sec_user_id"New value: +"被 @ 用户的 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_video_detail_by_aweme_id2 fields changed- changed
Output schema / properties / author / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串" - changed
Output schema / properties / mentioned_users / items / properties / sec_user_id / descriptionPrevious value: -"被 @ 用户的 sec_user_id"New value: +"被 @ 用户的 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_get_video_detail_by_url2 fields changed- changed
Output schema / properties / author / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串" - changed
Output schema / properties / mentioned_users / items / properties / sec_user_id / descriptionPrevious value: -"被 @ 用户的 sec_user_id"New value: +"被 @ 用户的 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_search_users1 field changed- changed
Output schema / properties / items / items / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
- Changed
douyin_search_videos2 fields changed- changed
Output schema / properties / items / items / properties / author / descriptionPrevious value: -"作品作者信息;如需抖音号等更多资料,可继续按作者 sec_user_id 查询用户信息"New value: +"作品作者信息" - changed
Output schema / properties / items / items / properties / author / properties / sec_user_id / descriptionPrevious value: -"用户 sec_user_id;用户主页和作品工具可直接复用"New value: +"用户 sec_user_id;当前不可用时为空字符串"
1 tool update
- Added
douyin_search_products
5 tool updates
- Changed
douyin_get_user_posted_videos_by_profile_url1 field changed- changed
Output schema / properties / items / items / properties / video / anyOfPrevious value: -[ - { - "properties": { - "duration_ms": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "播放器资源时长,毫秒;当前不可用时为 null" - }, - "media_type": { - "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", - "enum": [ - "video", - "audio", - "unknown" - ], - "type": "string" - }, - "play_url": { - "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", - "type": "string" - } - }, - "required": [ - "play_url", - "duration_ms", - "media_type" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源时长,毫秒;当前不可用时为 null" + }, + "height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源高度,像素;当前不可用时为 null" + }, + "media_type": { + "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", + "enum": [ + "video", + "audio", + "unknown" + ], + "type": "string" + }, + "play_url": { + "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", + "type": "string" + }, + "width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源宽度,像素;当前不可用时为 null" + } + }, + "required": [ + "play_url", + "duration_ms", + "width", + "height", + "media_type" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
douyin_get_user_posted_videos_by_sec_user_id1 field changed- changed
Output schema / properties / items / items / properties / video / anyOfPrevious value: -[ - { - "properties": { - "duration_ms": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "播放器资源时长,毫秒;当前不可用时为 null" - }, - "media_type": { - "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", - "enum": [ - "video", - "audio", - "unknown" - ], - "type": "string" - }, - "play_url": { - "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", - "type": "string" - } - }, - "required": [ - "play_url", - "duration_ms", - "media_type" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源时长,毫秒;当前不可用时为 null" + }, + "height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源高度,像素;当前不可用时为 null" + }, + "media_type": { + "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", + "enum": [ + "video", + "audio", + "unknown" + ], + "type": "string" + }, + "play_url": { + "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", + "type": "string" + }, + "width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源宽度,像素;当前不可用时为 null" + } + }, + "required": [ + "play_url", + "duration_ms", + "width", + "height", + "media_type" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
douyin_get_video_detail_by_aweme_id1 field changed- changed
Output schema / properties / video / anyOfPrevious value: -[ - { - "properties": { - "duration_ms": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "播放器资源时长,毫秒;当前不可用时为 null" - }, - "media_type": { - "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", - "enum": [ - "video", - "audio", - "unknown" - ], - "type": "string" - }, - "play_url": { - "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", - "type": "string" - } - }, - "required": [ - "play_url", - "duration_ms", - "media_type" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源时长,毫秒;当前不可用时为 null" + }, + "height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源高度,像素;当前不可用时为 null" + }, + "media_type": { + "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", + "enum": [ + "video", + "audio", + "unknown" + ], + "type": "string" + }, + "play_url": { + "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", + "type": "string" + }, + "width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源宽度,像素;当前不可用时为 null" + } + }, + "required": [ + "play_url", + "duration_ms", + "width", + "height", + "media_type" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
douyin_get_video_detail_by_url1 field changed- changed
Output schema / properties / video / anyOfPrevious value: -[ - { - "properties": { - "duration_ms": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "播放器资源时长,毫秒;当前不可用时为 null" - }, - "media_type": { - "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", - "enum": [ - "video", - "audio", - "unknown" - ], - "type": "string" - }, - "play_url": { - "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", - "type": "string" - } - }, - "required": [ - "play_url", - "duration_ms", - "media_type" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源时长,毫秒;当前不可用时为 null" + }, + "height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源高度,像素;当前不可用时为 null" + }, + "media_type": { + "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", + "enum": [ + "video", + "audio", + "unknown" + ], + "type": "string" + }, + "play_url": { + "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", + "type": "string" + }, + "width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源宽度,像素;当前不可用时为 null" + } + }, + "required": [ + "play_url", + "duration_ms", + "width", + "height", + "media_type" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
douyin_search_videos1 field changed- changed
Output schema / properties / items / items / properties / video / anyOfPrevious value: -[ - { - "properties": { - "duration_ms": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "播放器资源时长,毫秒;当前不可用时为 null" - }, - "media_type": { - "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", - "enum": [ - "video", - "audio", - "unknown" - ], - "type": "string" - }, - "play_url": { - "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", - "type": "string" - } - }, - "required": [ - "play_url", - "duration_ms", - "media_type" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源时长,毫秒;当前不可用时为 null" + }, + "height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源高度,像素;当前不可用时为 null" + }, + "media_type": { + "description": "播放器资源类型:video 表示视频,audio 表示音频,unknown 表示未知", + "enum": [ + "video", + "audio", + "unknown" + ], + "type": "string" + }, + "play_url": { + "description": "抖音平台播放器资源链接;视频作品通常为 mp4,图文作品可能为音频播放资源;不同于作品页面或分享链接,不用于查询作品详情或评论", + "type": "string" + }, + "width": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "播放器资源宽度,像素;当前不可用时为 null" + } + }, + "required": [ + "play_url", + "duration_ms", + "width", + "height", + "media_type" + ], + "type": "object" + }, + { + "type": "null" + } +]
4 tool updates
- Changed
douyin_get_video_comment_replies_by_comment_id3 fields changed- changed
Input schema / properties / aweme_id / descriptionPrevious value: -"抖音作品的数字 aweme_id,通常可从搜索、详情或评论结果中的 aweme_id 字段复用;不要传作品链接、分享文案或带引号的字符串;调用评论回复工具时必填,需与 comment_id 同时传入"New value: +"抖音作品的数字 aweme_id,通常可从搜索、详情或评论结果中的 aweme_id 字段复用;不要传作品链接、分享文案或带引号的字符串;用户已提供时直接使用;调用评论回复工具时必填,需与 comment_id 同时传入,且两者须属于同一作品" - changed
Input schema / properties / comment_id / descriptionPrevious value: -"一级评论 ID comment_id;可从一级评论结果 items[*].comment_id 复用,用于获取该评论下的回复;调用评论回复工具时必须同时传入 aweme_id"New value: +"一级评论 ID comment_id;用户已提供时直接使用,否则可从一级评论结果 items[*].comment_id 复用;调用评论回复工具时必须同时传入同一作品的 aweme_id;不要传评论回复结果里的 items[*].comment_id" - changed
Output schema / properties / items / items / properties / comment_id / descriptionPrevious value: -"评论 ID"New value: +"当前评论回复自身 ID;不是读取回复时输入的一级评论 comment_id"
- Changed
douyin_get_video_comments_by_aweme_id1 field changed- changed
Output schema / properties / items / items / properties / comment_id / descriptionPrevious value: -"评论 ID"New value: +"当前一级评论 ID"
- Changed
douyin_get_video_comments_by_url1 field changed- changed
Output schema / properties / items / items / properties / comment_id / descriptionPrevious value: -"评论 ID"New value: +"当前一级评论 ID"
- Changed
douyin_get_video_speech_text_job1 field changed- changed
Input schema / properties / job_id / descriptionPrevious value: -"口播转文字任务 ID;必须传 submit 工具返回的 job_id,不要传 aweme_id、作品链接或其他 ID。"New value: +"口播转文字任务 ID;用户已提供时直接使用,否则使用 submit 工具返回的 job_id;不要传 aweme_id、作品链接或其他 ID。"
3 tool updates
- Changed
douyin_get_video_speech_text_job1 field changed- changed
Input schema / properties / job_id / descriptionPrevious value: -"口播转文字任务 ID。"New value: +"口播转文字任务 ID;必须传 submit 工具返回的 job_id,不要传 aweme_id、作品链接或其他 ID。"
- Changed
douyin_search_users1 field changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"抖音用户、账号、博主、创作者或达人搜索自然语言关键词;可传昵称、抖音号、账号名或达人名称;不用于搜索作品;不要传作品链接、用户主页链接、sec_user_id 或 page_token 作为 keyword。"New value: +"搜索词,可传昵称、抖音号、账号名、达人名称或创作者/博主名称;不用于搜索作品;不要传作品链接、用户主页链接、sec_user_id 或 page_token。"
- Changed
douyin_search_videos1 field changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"抖音作品搜索自然语言关键词;传品牌名、话题、人物名、内容需求或研究主题;不要传作品链接、用户主页链接、aweme_id、sec_user_id 或 page_token 作为 keyword。"New value: +"搜索词,可传关键词或短语,例如品牌名、话题、人物名或产品名;不要传作品链接、用户主页链接、aweme_id、sec_user_id 或 page_token。"
15 tool updates
- Changed
douyin_get_hot_search_list2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "hot_items" -]New value: +[ + "hot_items", + "points" +]
- Added
douyin_get_user_info_by_douyin_id - Changed
douyin_get_user_info_by_profile_url2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "user_id", - "sec_user_id", - "name", - "avatar_url", - "profile_url", - "bio", - "verification_label", - "verified", - "follower_count", - "following_count", - "received_like_count", - "douyin_id", - "ip_location", - "gender", - "posted_content_count", - "live_info" -]New value: +[ + "user_id", + "sec_user_id", + "name", + "avatar_url", + "profile_url", + "bio", + "verification_label", + "verified", + "follower_count", + "following_count", + "received_like_count", + "douyin_id", + "ip_location", + "gender", + "posted_content_count", + "live_info", + "points" +]
- Changed
douyin_get_user_info_by_sec_user_id2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "user_id", - "sec_user_id", - "name", - "avatar_url", - "profile_url", - "bio", - "verification_label", - "verified", - "follower_count", - "following_count", - "received_like_count", - "douyin_id", - "ip_location", - "gender", - "posted_content_count", - "live_info" -]New value: +[ + "user_id", + "sec_user_id", + "name", + "avatar_url", + "profile_url", + "bio", + "verification_label", + "verified", + "follower_count", + "following_count", + "received_like_count", + "douyin_id", + "ip_location", + "gender", + "posted_content_count", + "live_info", + "points" +]
- Changed
douyin_get_user_posted_videos_by_profile_url2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token" -]New value: +[ + "items", + "next_page_token", + "points" +]
- Changed
douyin_get_user_posted_videos_by_sec_user_id2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token" -]New value: +[ + "items", + "next_page_token", + "points" +]
- Changed
douyin_get_user_series_by_profile_url2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token" -]New value: +[ + "items", + "next_page_token", + "points" +]
- Changed
douyin_get_user_series_by_sec_user_id2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token" -]New value: +[ + "items", + "next_page_token", + "points" +]
- Changed
douyin_get_video_comment_replies_by_comment_id2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token", - "comment_count" -]New value: +[ + "items", + "next_page_token", + "comment_count", + "points" +]
- Changed
douyin_get_video_comments_by_aweme_id2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token", - "comment_count" -]New value: +[ + "items", + "next_page_token", + "comment_count", + "points" +]
- Changed
douyin_get_video_comments_by_url2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token", - "comment_count" -]New value: +[ + "items", + "next_page_token", + "comment_count", + "points" +]
- Changed
douyin_get_video_detail_by_aweme_id2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "aweme_id", - "content_type", - "description", - "publish_time", - "cover_image_url", - "images", - "video", - "music", - "share_url", - "mentioned_users", - "topic_tags", - "like_count", - "comment_count", - "collect_count", - "share_count", - "author" -]New value: +[ + "aweme_id", + "content_type", + "description", + "publish_time", + "cover_image_url", + "images", + "video", + "music", + "share_url", + "mentioned_users", + "topic_tags", + "like_count", + "comment_count", + "collect_count", + "share_count", + "author", + "points" +]
- Changed
douyin_get_video_detail_by_url2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "aweme_id", - "content_type", - "description", - "publish_time", - "cover_image_url", - "images", - "video", - "music", - "share_url", - "mentioned_users", - "topic_tags", - "like_count", - "comment_count", - "collect_count", - "share_count", - "author" -]New value: +[ + "aweme_id", + "content_type", + "description", + "publish_time", + "cover_image_url", + "images", + "video", + "music", + "share_url", + "mentioned_users", + "topic_tags", + "like_count", + "comment_count", + "collect_count", + "share_count", + "author", + "points" +]
- Changed
douyin_search_users2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token" -]New value: +[ + "items", + "next_page_token", + "points" +]
- Changed
douyin_search_videos2 fields changed- added
Output schema / properties / pointsAdded value: +{ + "additionalProperties": false, + "description": "本次成功调用的积分消耗与调用完成时的账户积分余额。", + "properties": { + "balance": { + "description": "本次接口完成时看到的当前积分余额。", + "minimum": 0, + "type": "integer" + }, + "cost": { + "description": "本次请求最终确认消耗的积分。", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cost", + "balance" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "items", - "next_page_token" -]New value: +[ + "items", + "next_page_token", + "points" +]
2 tool updates
- Changed
douyin_search_users1 field changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"抖音用户、账号、博主、创作者或达人搜索关键词;可传昵称、抖音号、账号名或达人名称;不用于搜索作品。"New value: +"抖音用户、账号、博主、创作者或达人搜索自然语言关键词;可传昵称、抖音号、账号名或达人名称;不用于搜索作品;不要传作品链接、用户主页链接、sec_user_id 或 page_token 作为 keyword。"
- Changed
douyin_search_videos1 field changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"抖音搜索关键词"New value: +"抖音作品搜索自然语言关键词;传品牌名、话题、人物名、内容需求或研究主题;不要传作品链接、用户主页链接、aweme_id、sec_user_id 或 page_token 作为 keyword。"
1 tool update
- Added
socialdatax_get_points_balance
1 tool update
- Changed
douyin_search_videos1 field changed- changed
Input schema / properties / sort_type / descriptionPrevious value: -"搜索排序方式,可选:general(综合,默认)、time_descending(最新发布优先)、like_count_descending(最多点赞优先)。如无明确排序需求,保持 general。"New value: +"搜索排序方式,可选:general(综合,默认)、time_descending(最新发布优先)、like_count_descending(最多点赞优先)。综合或默认排序请传 general,最新发布请传 time_descending,最多点赞请传 like_count_descending。hot、latest、time、relevance、relevance_desc、default、综合、general_desc、liked、like_count、liked_desc、most_liked、most_hot、popularity_descending 等写法均不是可接受值,请直接使用上述三个标准值。"
1 tool update
- Changed
douyin_get_video_speech_text_job1 field changed- removed
Input schema / properties / wait_secondsRemoved value: -{ - "default": 0, - "description": "可选长轮询等待秒数;0 表示只查询一次,最大 240 秒。", - "maximum": 240, - "minimum": 0, - "type": "integer" -}
1 tool update
- Changed
douyin_get_video_speech_text_job2 fields changed- changed
Input schema / properties / wait_seconds / descriptionPrevious value: -"可选长轮询等待秒数;0 表示只查询一次,最大 900 秒。"New value: +"可选长轮询等待秒数;0 表示只查询一次,最大 240 秒。" - changed
Input schema / properties / wait_seconds / maximumPrevious value: -900New value: +240
1 tool update
- Changed
douyin_get_video_speech_text_job2 fields changed- changed
Input schema / properties / wait_seconds / descriptionPrevious value: -"可选长轮询等待秒数;0 表示只查询一次,最大 240 秒。"New value: +"可选长轮询等待秒数;0 表示只查询一次,最大 900 秒。" - changed
Input schema / properties / wait_seconds / maximumPrevious value: -240New value: +900
3 tool updates
- Changed
douyin_get_video_speech_text_job2 fields changed- added
Input schema / properties / wait_secondsAdded value: +{ + "default": 0, + "description": "可选长轮询等待秒数;0 表示只查询一次,最大 240 秒。", + "maximum": 240, + "minimum": 0, + "type": "integer" +} - changed
Output schema / properties / next_action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "job_id": { - "description": "需要继续查询的 job_id。", - "type": "string" - }, - "tool_name": { - "description": "下一步建议调用的查询工具。", - "type": "string" - } - }, - "required": [ - "tool_name", - "job_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "arguments": { + "additionalProperties": true, + "description": "下一步查询工具可直接使用的参数。", + "type": "object" + }, + "instruction": { + "description": "给 AI/客户端的查询指令,说明如何继续轮询到终态。", + "type": "string" + }, + "job_id": { + "description": "需要继续查询的 job_id。", + "type": "string" + }, + "tool_name": { + "description": "下一步建议调用的查询工具。", + "type": "string" + } + }, + "required": [ + "tool_name", + "job_id", + "arguments", + "instruction" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
douyin_submit_video_speech_text_by_aweme_id1 field changed- changed
Output schema / properties / next_action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "job_id": { - "description": "需要继续查询的 job_id。", - "type": "string" - }, - "tool_name": { - "description": "下一步建议调用的查询工具。", - "type": "string" - } - }, - "required": [ - "tool_name", - "job_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "arguments": { + "additionalProperties": true, + "description": "下一步查询工具可直接使用的参数。", + "type": "object" + }, + "instruction": { + "description": "给 AI/客户端的查询指令,说明如何继续轮询到终态。", + "type": "string" + }, + "job_id": { + "description": "需要继续查询的 job_id。", + "type": "string" + }, + "tool_name": { + "description": "下一步建议调用的查询工具。", + "type": "string" + } + }, + "required": [ + "tool_name", + "job_id", + "arguments", + "instruction" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
douyin_submit_video_speech_text_by_video_url1 field changed- changed
Output schema / properties / next_action / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "job_id": { - "description": "需要继续查询的 job_id。", - "type": "string" - }, - "tool_name": { - "description": "下一步建议调用的查询工具。", - "type": "string" - } - }, - "required": [ - "tool_name", - "job_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "arguments": { + "additionalProperties": true, + "description": "下一步查询工具可直接使用的参数。", + "type": "object" + }, + "instruction": { + "description": "给 AI/客户端的查询指令,说明如何继续轮询到终态。", + "type": "string" + }, + "job_id": { + "description": "需要继续查询的 job_id。", + "type": "string" + }, + "tool_name": { + "description": "下一步建议调用的查询工具。", + "type": "string" + } + }, + "required": [ + "tool_name", + "job_id", + "arguments", + "instruction" + ], + "type": "object" + }, + { + "type": "null" + } +]
3 tool updates
- Changed
douyin_get_video_speech_text_job3 fields changed- added
Output schema / properties / content_idAdded value: +{ + "description": "平台内容 ID。", + "type": "string" +} - added
Output schema / properties / content_metaAdded value: +{ + "additionalProperties": false, + "description": "作品上下文信息,便于结合转写内容做口播分析。", + "properties": { + "author": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "avatar_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作者头像链接。" + }, + "name": { + "description": "作者昵称。", + "type": "string" + }, + "profile_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作者主页链接。" + }, + "user_id": { + "description": "作者用户 ID。", + "type": "string" + } + }, + "required": [ + "user_id", + "name", + "profile_url", + "avatar_url" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "作者信息。" + }, + "content_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作品链接。" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "平台作品原始描述、正文或配文。" + }, + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "音视频时长,单位毫秒。" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作品标题;平台无标题时为 null。" + } + }, + "required": [ + "content_url", + "title", + "description", + "duration_ms", + "author" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "job_id", - "status", - "is_terminal", - "platform", - "source_id", - "content_type", - "transcript", - "error", - "next_poll_after_seconds", - "next_action", - "message" -]New value: +[ + "job_id", + "status", + "is_terminal", + "platform", + "content_id", + "source_id", + "content_type", + "content_meta", + "transcript", + "error", + "next_poll_after_seconds", + "next_action", + "message" +]
- Changed
douyin_submit_video_speech_text_by_aweme_id3 fields changed- added
Output schema / properties / content_idAdded value: +{ + "description": "平台内容 ID。", + "type": "string" +} - added
Output schema / properties / content_metaAdded value: +{ + "additionalProperties": false, + "description": "作品上下文信息,便于结合转写内容做口播分析。", + "properties": { + "author": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "avatar_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作者头像链接。" + }, + "name": { + "description": "作者昵称。", + "type": "string" + }, + "profile_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作者主页链接。" + }, + "user_id": { + "description": "作者用户 ID。", + "type": "string" + } + }, + "required": [ + "user_id", + "name", + "profile_url", + "avatar_url" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "作者信息。" + }, + "content_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作品链接。" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "平台作品原始描述、正文或配文。" + }, + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "音视频时长,单位毫秒。" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作品标题;平台无标题时为 null。" + } + }, + "required": [ + "content_url", + "title", + "description", + "duration_ms", + "author" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "job_id", - "status", - "is_terminal", - "platform", - "source_id", - "content_type", - "transcript", - "error", - "next_poll_after_seconds", - "next_action", - "message" -]New value: +[ + "job_id", + "status", + "is_terminal", + "platform", + "content_id", + "source_id", + "content_type", + "content_meta", + "transcript", + "error", + "next_poll_after_seconds", + "next_action", + "message" +]
- Changed
douyin_submit_video_speech_text_by_video_url3 fields changed- added
Output schema / properties / content_idAdded value: +{ + "description": "平台内容 ID。", + "type": "string" +} - added
Output schema / properties / content_metaAdded value: +{ + "additionalProperties": false, + "description": "作品上下文信息,便于结合转写内容做口播分析。", + "properties": { + "author": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "avatar_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作者头像链接。" + }, + "name": { + "description": "作者昵称。", + "type": "string" + }, + "profile_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作者主页链接。" + }, + "user_id": { + "description": "作者用户 ID。", + "type": "string" + } + }, + "required": [ + "user_id", + "name", + "profile_url", + "avatar_url" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "作者信息。" + }, + "content_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作品链接。" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "平台作品原始描述、正文或配文。" + }, + "duration_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "音视频时长,单位毫秒。" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "作品标题;平台无标题时为 null。" + } + }, + "required": [ + "content_url", + "title", + "description", + "duration_ms", + "author" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "job_id", - "status", - "is_terminal", - "platform", - "source_id", - "content_type", - "transcript", - "error", - "next_poll_after_seconds", - "next_action", - "message" -]New value: +[ + "job_id", + "status", + "is_terminal", + "platform", + "content_id", + "source_id", + "content_type", + "content_meta", + "transcript", + "error", + "next_poll_after_seconds", + "next_action", + "message" +]
6 tool updates
- Changed
douyin_get_user_posted_videos_by_profile_url2 fields changed- removed
Output schema / properties / items / items / properties / images / items / properties / live_photo / defaultRemoved value: -null - changed
Output schema / properties / items / items / properties / images / items / requiredPrevious value: -[ - "url", - "width", - "height" -]New value: +[ + "url", + "width", + "height", + "live_photo" +]
- Changed
douyin_get_user_posted_videos_by_sec_user_id2 fields changed- removed
Output schema / properties / items / items / properties / images / items / properties / live_photo / defaultRemoved value: -null - changed
Output schema / properties / items / items / properties / images / items / requiredPrevious value: -[ - "url", - "width", - "height" -]New value: +[ + "url", + "width", + "height", + "live_photo" +]
- Changed
douyin_get_video_detail_by_aweme_id2 fields changed- removed
Output schema / properties / images / items / properties / live_photo / defaultRemoved value: -null - changed
Output schema / properties / images / items / requiredPrevious value: -[ - "url", - "width", - "height" -]New value: +[ + "url", + "width", + "height", + "live_photo" +]
- Changed
douyin_get_video_detail_by_url2 fields changed- removed
Output schema / properties / images / items / properties / live_photo / defaultRemoved value: -null - changed
Output schema / properties / images / items / requiredPrevious value: -[ - "url", - "width", - "height" -]New value: +[ + "url", + "width", + "height", + "live_photo" +]
- Changed
douyin_search_users9 fields changed- changed
Input schema / properties / follower_count_range / defaultPrevious value: -""New value: +"all" - changed
Input schema / properties / follower_count_range / descriptionPrevious value: -"用户粉丝数量筛选,可选:空字符串(不限,默认)、0_1k(1000以下)、1k_1w(1000-1w)、1w_10w(1w-10w)、10w_100w(10w-100w)、100w_(100w以上)。如无明确筛选需求,保持空字符串。"New value: +"用户粉丝数量筛选,可选:all(不限,默认)、under_1k(1000 以下)、1k_to_10k(1000-1 万)、10k_to_100k(1 万-10 万)、100k_to_1m(10 万-100 万)、over_1m(100 万以上)。如无明确筛选需求,保持 all。" - changed
Input schema / properties / follower_count_range / enumPrevious value: -[ - "", - "0_1k", - "1k_1w", - "1w_10w", - "10w_100w", - "100w_" -]New value: +[ + "all", + "under_1k", + "1k_to_10k", + "10k_to_100k", + "100k_to_1m", + "over_1m" +] - changed
Input schema / properties / keyword / descriptionPrevious value: -"抖音用户搜索关键词"New value: +"抖音用户、账号、博主、创作者或达人搜索关键词;可传昵称、抖音号、账号名或达人名称;不用于搜索作品。" - changed
Input schema / properties / user_type / defaultPrevious value: -""New value: +"all" - changed
Input schema / properties / user_type / descriptionPrevious value: -"用户类型筛选,可选:空字符串(不限,默认)、common_user(普通用户)、enterprise_user(企业认证)、personal_user(个人认证)。如无明确筛选需求,保持空字符串。"New value: +"用户类型筛选,可选:all(不限,默认)、regular_user(普通用户)、enterprise_verified(企业认证)、individual_verified(个人认证)。如无明确筛选需求,保持 all。" - changed
Input schema / properties / user_type / enumPrevious value: -[ - "", - "common_user", - "enterprise_user", - "personal_user" -]New value: +[ + "all", + "regular_user", + "enterprise_verified", + "individual_verified" +] - added
Output schema / properties / items / items / properties / posted_content_countAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "用户已发布作品数量,包含视频、图文等作品;当前不可用时为 null" +} - changed
Output schema / properties / items / items / requiredPrevious value: -[ - "user_id", - "sec_user_id", - "name", - "avatar_url", - "profile_url", - "bio", - "verification_label", - "verified", - "follower_count", - "following_count", - "received_like_count", - "douyin_id" -]New value: +[ + "user_id", + "sec_user_id", + "name", + "avatar_url", + "profile_url", + "bio", + "verification_label", + "verified", + "follower_count", + "following_count", + "received_like_count", + "douyin_id", + "posted_content_count" +]
- Changed
douyin_search_videos2 fields changed- removed
Output schema / properties / items / items / properties / images / items / properties / live_photo / defaultRemoved value: -null - changed
Output schema / properties / items / items / properties / images / items / requiredPrevious value: -[ - "url", - "width", - "height" -]New value: +[ + "url", + "width", + "height", + "live_photo" +]
Related MCP Connectors
Kuaishou hot search, work/user search, work details, comments/replies, profiles, transcript.
Weibo hot search, post search/details, comments/replies, users, posts, transcript.
WeChat Channels videos, comments, users, transcripts, and Official Account article details.
MCP server aggregating hot-search boards from 8 Chinese platforms (Weibo, Zhihu, Bilibili, Douyin).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceRead-only Douyin / 抖音 MCP by SocialDataX for hot search, work search/details, comments and replies, creator profiles, creator works, and creator series.911MIT
- AlicenseDqualityDmaintenanceProvides access to Douyin (TikTok China) API for searching videos, retrieving user profiles, posts, comments, music, challenges, live streams, and hot trends through the Douyin platform.79MIT
- AlicenseNot gradedqualityBmaintenanceKuaishou MCP by SocialDataX for hot search, work and user search, work details, comments and replies, creator profiles, and video speech-to-text transcripts.MIT
- AlicenseNot gradedqualityCmaintenanceWeibo MCP by SocialDataX for hot search, post search and details, comments and replies, creator profiles and posts, and video speech-to-text transcripts.MIT
socialdatax_get_points_balanceARead-only Inspect
查询当前 API Key 账户的 SocialDataX 积分余额、剩余积分或点数 / remaining points balance.
No parameters
Output Schema
No output parameters
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the Chinese description reinforces that this is a query operation. The description adds context about the account-level API Key scope, but it does not disclose details such as response format, rate-limit implications, or whether the balance is cached or real-time.
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 compact sentence with the key information front-loaded. The bilingual repetition and enumeration of 'balance / remaining points / points' is slightly redundant but not harmful.
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 that this is a zero-parameter read-only balance lookup, the description is complete. An output schema is present, so return values do not need to be described, and the annotations cover the safety profile.
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 tool has zero parameters and schema description coverage is 100%, so there is nothing for the description to explain about inputs. The description still usefully clarifies that 'points balance' refers to remaining credits.
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 a specific action, resource, and scope: querying the SocialDataX points balance for the current API Key account. It is fully distinguishable from the unrelated zhihu_ sibling tools even without inspecting schemas.
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 intended use is reasonably implied by the name and description, but there is no explicit guidance about when to check the balance, how it relates to other tools, or when this tool would not be appropriate. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.