MCP server for accessing personal Douyin favorites and collections
Server has 9 tools with basic descriptions and schemas, but significant gaps limit production readiness. All tools have descriptions (10-100 chars, mostly adequate), and most have input schemas with type definitions. However, parameter descriptions are sparse or missing entirely, most parameters lack explanatory text beyond the name. Output schemas are not documented. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles. Naming is verb-forward and clear, but parameter naming could be more explicit (e.g., 'collects_id' vs 'collection_id'). No batch operations or pagination helpers for list tools. Overall, definitions are functional but fall short of LLM-optimized quality.
Return login status and profile health for diagnostics.
Open a headed Chrome window for the user to scan QR code and login to Douyin.
Check whether the stored Douyin browser session is still valid.
Clear the stored Douyin browser profile and force re-login next time.
List videos inside a specific Douyin collection folder by collects_id.
Get basic info of the currently logged-in Douyin account.
Get detailed metadata and stats for a Douyin video by aweme_id or share_url.
Missing parameter descriptions: 'cursor', 'limit', 'collects_id', 'aweme_id', 'share_url' lack explanatory text. LLMs cannot infer parameter semantics from names alone.
No output schemas documented. Tools return dicts with fields like 'videos', 'cursor', 'has_more', 'ok', 'error', but LLMs have no formal schema to plan downstream calls or extract fields reliably.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools have clear risk profiles (douyin_logout is DESTRUCTIVE, douyin_login_start is WRITE, others READ_ONLY) but these are not declared in the schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
List videos from the default Douyin 'favorite' collection.
List the logged-in user's Douyin collection folders (收藏夹/专辑), with id, name and video count.
Error handling lacks recovery guidance. Exceptions like LoginRequiredError and DouyinFavoritesError are caught and returned as dicts, but responses do not suggest next steps (e.g., 'Call douyin_login_start first').
Pagination cursor handling is opaque. 'cursor' parameter in list_collection_videos and get_collect_videos lacks format/encoding documentation. LLMs cannot reason about cursor validity or lifecycle.