Skip to main content
Glama
panwenda

Douyin Publish MCP

by panwenda

douyin_publish_video

Publish or schedule a Douyin video with optional tags and covers after a two-step confirmation that first returns a plan for approval.

Instructions

发布一条抖音视频。【必须先确认】不传 confirm 调用时,本工具不会发布任何东西,只返回一份待发布计划;请把这份计划(账号、素材、标题、正文、标签、发布时间)原样念给用户,得到用户明确同意后,再用同一个 plan_id 加上 confirm=true 调用一次。不要自己替用户决定发布,也不要跳过确认直接传 confirm。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileYes视频文件路径(必须在素材目录内,可用相对路径)
tagsNo话题标签(可选),如 运动、训练
titleYes作品标题(≤30 字,单行)
accountYes账号名
confirmNo用户已明确同意发布时传 true
plan_idNo上一步预检返回的 plan_id(确认发布时必填)
scheduleNo定时发布时间(可选),格式 'YYYY-MM-DD HH:MM'(本地时间);不传=立即发布
collectionNo加入已存在的合集名(可选)。合集必须已存在,否则脚本找不到就跳过。
declarationNo作品自主声明(可选),要填平台给出的**原样文案**(如「虚构演绎,仅供娱乐」);不确定就别传。
descriptionNo正文/描述(可选)
product_linkNo带货商品链接(可选)。★ 必须与 product_title 一起给,只给一个平台不认。
product_titleNo带货商品标题(可选,与 product_link 成对)
thumbnail_portraitNo竖版封面 3:4(可选,素材目录内的路径)。与 landscape 可同时给。
thumbnail_landscapeNo横版封面 4:3(可选,素材目录内的路径)。

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden, and it discloses the single most important trait: without confirm the tool publishes nothing and only returns a plan. It also scopes what the returned plan contains (account, assets, title, body, tags, publish time). It does not cover auth requirements, failure modes, or what happens if plan_id is stale, so it falls short of a 5.

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

Conciseness4/5

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

The critical constraint (does not publish without confirm) is front-loaded in bold, and every sentence serves the confirmation protocol. Slightly long, and the closing '不要自己替用户决定发布' partially restates the earlier consent requirement, but overall tight for a high-risk write tool.

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

Completeness4/5

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

For a 14-parameter write tool with no annotations and no output schema, the description supplies the necessary behavioral contract and explicitly enumerates the plan fields the agent will receive, compensating for the missing output schema. Remaining gaps (auth, error handling) are moderate.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema for the confirm/plan_id pair: it explains the idempotent two-step reuse of plan_id and that the plan must be echoed to the user first. Other parameters are left to the schema, which is acceptable at full coverage.

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

Purpose5/5

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

States a specific verb and resource ('发布一条抖音视频') that an agent can immediately distinguish from the sibling douyin_publish_note (note vs. video). No ambiguity about what the tool does.

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

Usage Guidelines5/5

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

Gives an explicit two-phase protocol: call without confirm to get a plan, read the plan back to the user verbatim, obtain explicit consent, then re-call with the same plan_id and confirm=true. It also states what NOT to do (don't decide for the user, don't skip confirmation). This is textbook when/when-not guidance.

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