Skip to main content
Glama
panwenda

Douyin Publish MCP

by panwenda

douyin_account_login

Log in to a Douyin account by scanning a QR code. Opens a real browser window to avoid anti-automation checks, waits for confirmation, and also returns the QR code as an image.

Instructions

让用户扫码登录抖音。★ 会弹出一个真浏览器窗口:登录这一步必须用真窗口 —— 抖音的反自动化会挑无头浏览器,而且可能要求短信二次验证,那只能在窗口里手动输。二维码同时也会作为图片返回(和窗口里是同一个码),展示给用户扫也行。扫码成功后窗口会自动关闭(sau 存完 cookie 就关掉浏览器并退出,约 2 秒后消失);若一直没人扫,窗口最多活 2 分钟也会自己关,不会一直挂在用户屏幕上。调用会等一段(wait_seconds):扫得快就一次拿到结论;还在等就返回「会话仍在等待扫码」,此时再调一次本工具即可继续查,不要重复发起新登录。若发布时触发短信二次验证,把验证码写进项目根目录的 verify_code.txt 再重试发布。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
headedNo是否弹出浏览器窗口。默认 true:登录必须用真窗口(抖音的反自动化会挑无头浏览器,且可能要输短信验证码);扫码成功后窗口自动关闭。只在没有桌面会话(CI/服务器)时才传 false。
accountYes账号名(自定义,用于区分多个抖音号)
wait_secondsNo本次调用最多等多少秒(默认 90,上限 600)。超时不中断登录:会话仍在后台等扫码。

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.8/5.0
Behavior5/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 does so: a real browser window pops up, auto-closes about 2s after a successful scan, self-closes after at most 2 minutes if unscanned, and wait_seconds timeouts do not abort the background session. It also discloses the anti-automation and SMS-verification constraints and the verify_code.txt workaround.

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?

Front-loaded with the window behavior and timeout semantics that govern how to call it, and nearly every sentence adds operational value. Minor redundancy with the schema's headed description and slightly dense bolding keep it from a 5.

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

Completeness5/5

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

There is no output schema, and the description compensates by describing the return states ('scan succeeded' vs 'session still waiting for scan'), window lifetime, and the SMS-verification recovery path. An agent has everything needed to invoke, poll, and recover.

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; the description nevertheless adds meaning by explaining that wait_seconds' timeout does not interrupt login and that the session keeps waiting in the background, plus the polling consequence. headed is only restated, so it is not a full 5.

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+resource: logging a user into Douyin via QR scan. The scope (per-account login, distinct from status/logout siblings) is unambiguous, and an agent can tell it is the credential-establishing tool rather than a read or query tool.

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

Usage Guidelines5/5

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

Explicitly tells the agent to re-call this same tool when the session is still waiting rather than starting a new login, and gives the condition for setting headed=false (only on CI/servers with no desktop session). It also routes SMS-verification retries through verify_code.txt, which is real alternative-path guidance.

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