Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate TikTok tasks via Rube MCP (Composio): upload/publish videos, post photos, manage content, and view user profiles/stats. Always search tools first for current schemas.
.claude/skills/davepoon-tiktok-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 34% | 0% |
Automate TikTok content creation and profile operations through Composio's TikTok toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/tiktok
RUBE_MANAGE_CONNECTIONS with toolkit tiktokRUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit tiktokWhen to use: User wants to upload a video and publish it to TikTok
Tool sequence:
TIKTOK_UPLOAD_VIDEO or TIKTOK_UPLOAD_VIDEOS - Upload video file(s) Required]TIKTOK_FETCH_PUBLISH_STATUS - Check upload/processing status Required]TIKTOK_PUBLISH_VIDEO - Publish the uploaded video Required]Key parameters for upload:
video: Video file object with s3key, mimetype, nametitle: Video title/captionKey parameters for publish:
publish_id: ID returned from upload steptitle: Video caption textprivacy_level: 'PUBLIC_TO_EVERYONE', 'MUTUAL_FOLLOW_FRIENDS', 'FOLLOWER_OF_CREATOR', 'SELF_ONLY'disable_duet: Disable duet featuredisable_stitch: Disable stitch featuredisable_comment: Disable commentsPitfalls:
When to use: User wants to post a photo to TikTok
Tool sequence:
TIKTOK_POST_PHOTO - Upload and post a photo Required]TIKTOK_FETCH_PUBLISH_STATUS - Check processing status Optional]Key parameters:
photo: Photo file object with s3key, mimetype, nametitle: Photo caption textprivacy_level: Privacy setting for the postPitfalls:
When to use: User wants to view their published videos
Tool sequence:
TIKTOK_LIST_VIDEOS - List user's published videos Required]Key parameters:
max_count: Number of videos to return per pagecursor: Pagination cursor for next pagePitfalls:
has_more and cursor in responseWhen to use: User wants to check their TikTok profile info or account statistics
Tool sequence:
TIKTOK_GET_USER_PROFILE - Get full profile information Required]TIKTOK_GET_USER_STATS - Get account statistics Optional]TIKTOK_GET_USER_BASIC_INFO - Get basic user info Alternative]Key parameters: (no required parameters; returns data for authenticated user)
Pitfalls:
GET_USER_PROFILE returns more details than GET_USER_BASIC_INFOWhen to use: User wants to check the status of a content upload or publish operation
Tool sequence:
TIKTOK_FETCH_PUBLISH_STATUS - Poll for status updates Required]Key parameters:
publish_id: The publish ID from a previous upload/publish operationPitfalls:
1. Upload video via TIKTOK_UPLOAD_VIDEO -> get publish_id
2. Poll TIKTOK_FETCH_PUBLISH_STATUS with publish_id until complete
3. If status is ready, call TIKTOK_PUBLISH_VIDEO with final settings
4. Optionally poll status again to confirm publicationcursor from previous response for next pagehas_more boolean to determine if more results existmax_count controls page sizeContent Requirements:
Authentication:
Rate Limits:
Response Parsing:
data or data.data| Task | Tool Slug | Key Params | |------|-----------|------------| | Upload video | TIKTOK_UPLOAD_VIDEO | video, title | | Upload multiple videos | TIKTOK_UPLOAD_VIDEOS | videos | | Publish video | TIKTOK_PUBLISH_VIDEO | publish_id, title, privacy_level | | Post photo | TIKTOK_POST_PHOTO | photo, title, privacy_level | | List videos | TIKTOK_LIST_VIDEOS | max_count, cursor | | Get profile | TIKTOK_GET_USER_PROFILE | (none) | | Get user stats | TIKTOK_GET_USER_STATS | (none) | | Get basic info | TIKTOK_GET_USER_BASIC_INFO | (none) | | Check publish status | TIKTOK_FETCH_PUBLISH_STATUS | publish_id |
Powered by Composio
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-13 | fail→pass | 7,098 | 3,562 | -50% | 1 | 1 | 0% | 1,209 | 2,267 | +88% | 0 | 0 | — |
case-01 | fail→fail | 11,025 | 5,303 | -52% | 1 | 1 | 0% | 859 | 2,043 | +138% | 0 | 0 | — |
case-02 | fail→fail | 7,347 | 5,199 | -29% | 1 | 1 | 0% | 1,252 | 1,964 | +57% | 0 | 0 | — |
case-03 | fail→fail | 12,875 | 5,117 | -60% | 1 | 1 | 0% | 1,607 | 2,038 | +27% | 0 | 0 | — |
case-04 | fail→pass | 10,083 | 4,961 | -51% | 1 | 1 | 0% | 1,895 | 2,628 | +39% | 0 | 0 | — |
case-14 | pass→pass | 8,234 | 3,444 | -58% | 1 | 1 | 0% | 1,231 | 2,294 | +86% | 0 | 0 | — |
case-05 | pass→pass | 4,148 | 6,022 | +45% | 1 | 1 | 0% | 728 | 2,130 | +193% | 0 | 0 | — |
case-06 | pass→pass | 4,168 | 3,453 | -17% | 1 | 1 | 0% | 708 | 2,399 | +239% | 0 | 0 | — |
case-07 | pass→fail | 5,380 | 6,166 | +15% | 1 | 1 | 0% | 661 | 2,086 | +216% | 0 | 0 | — |
case-08 | fail→pass | 9,672 | 1,796 | -81% | 1 | 1 | 0% | 1,363 | 2,019 | +48% | 0 | 0 | — |
case-20 | pass→fail | 6,007 | 4,075 | -32% | 1 | 1 | 0% | 501 | 1,908 | +281% | 0 | 0 | — |
case-09 | fail→pass | 7,090 | 1,913 | -73% | 1 | 1 | 0% | 1,267 | 2,073 | +64% | 0 | 0 | — |
case-10 | pass→fail | 7,441 | 8,118 | +9% | 1 | 1 | 0% | 1,401 | 1,991 | +42% | 0 | 0 | — |
case-11 | pass→pass | 16,397 | 4,017 | -76% | 1 | 1 | 0% | 1,343 | 2,475 | +84% | 0 | 0 | — |
case-12 | pass→pass | 9,751 | 64,105 | +557% | 1 | 1 | 0% | 1,756 | 2,167 | +23% | 0 | 0 | — |
case-15 | pass→pass | 6,992 | 1,979 | -72% | 1 | 1 | 0% | 1,132 | 1,992 | +76% | 0 | 0 | — |
case-16 | pass→pass | 13,115 | 2,518 | -81% | 1 | 1 | 0% | 1,947 | 2,130 | +9% | 0 | 0 | — |
case-17 | fail→pass | 11,203 | 4,394 | -61% | 1 | 1 | 0% | 1,880 | 2,514 | +34% | 0 | 0 | — |
case-18 | pass→pass | 2,402 | 1,476 | -39% | 1 | 1 | 0% | 353 | 1,937 | +449% | 0 | 0 | — |
case-19 | pass→pass | 4,106 | 2,381 | -42% | 1 | 1 | 0% | 601 | 2,091 | +248% | 0 | 0 | — |
case-21 | pass→fail | 6,030 | 4,087 | -32% | 1 | 1 | 0% | 874 | 1,848 | +111% | 0 | 0 | — |
case-22 | fail→fail | 4,940 | 4,004 | -19% | 1 | 1 | 0% | 675 | 1,908 | +183% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 14 counted toward the lift figure. The other 8 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +5 percentage points is the difference between those two pass rates over the 14 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.