TikTok Automation via Rube MCP
Automate TikTok content creation and profile operations through Composio's TikTok toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/tiktok
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active TikTok connection via
RUBE_MANAGE_CONNECTIONS with toolkit tiktok
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get 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.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit tiktok
- If connection is not ACTIVE, follow the returned auth link to complete TikTok OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Upload and Publish a Video
When 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, name
title: Video title/caption
Key parameters for publish:
publish_id: ID returned from upload step
title: Video caption text
privacy_level: 'PUBLIC_TO_EVERYONE', 'MUTUAL_FOLLOW_FRIENDS', 'FOLLOWER_OF_CREATOR', 'SELF_ONLY'
disable_duet: Disable duet feature
disable_stitch: Disable stitch feature
disable_comment: Disable comments
Pitfalls:
- Video upload and publish are TWO separate steps; upload first, then publish
- After upload, poll FETCH_PUBLISH_STATUS until processing is complete before publishing
- Video must meet TikTok requirements: MP4/WebM format, max 10 minutes, max 4GB
- Caption/title has character limits; check current TikTok guidelines
- Privacy level strings are case-sensitive and must match exactly
- Processing may take 30-120 seconds depending on video size
2. Post a Photo
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, name
title: Photo caption text
privacy_level: Privacy setting for the post
Pitfalls:
- Photo posts are a newer TikTok feature; availability may vary by account type
- Supported formats: JPEG, PNG, WebP
- Image size and dimension limits apply; check current TikTok guidelines
3. List and Manage Videos
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 page
cursor: Pagination cursor for next page
Pitfalls:
- Only returns the authenticated user's own videos
- Response includes video metadata: id, title, create_time, share_url, duration, etc.
- Pagination uses cursor-based approach; check for
has_more and cursor in response
- Recently published videos may not appear immediately in the list
4. View User Profile and Stats
When 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:
- Profile data is for the authenticated user only; cannot view other users' profiles
- Stats include follower count, following count, video count, likes received
GET_USER_PROFILE returns more details than GET_USER_BASIC_INFO
- Stats may have slight delays; not real-time
5. Check Publish Status
When 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 operation
Pitfalls:
- Status values include processing, success, and failure states
- Poll at reasonable intervals (5-10 seconds) to avoid rate limits
- Failed publishes include error details in the response
- Content moderation may cause delays or rejections after processing
Common Patterns
Video Publish Flow
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 publication
Pagination
- Use
cursor from previous response for next page
- Check
has_more boolean to determine if more results exist
max_count controls page size
Known Pitfalls
Content Requirements:
- Videos: MP4/WebM, max 4GB, max 10 minutes
- Photos: JPEG/PNG/WebP
- Captions: Character limits vary by region
- Content must comply with TikTok community guidelines
Authentication:
- OAuth tokens have scopes; ensure video.upload and video.publish are authorized
- Tokens expire; re-authenticate if operations fail with 401
Rate Limits:
- TikTok API has strict rate limits per application
- Implement exponential backoff on 429 responses
- Upload operations have daily limits
Response Parsing:
- Response data may be nested under
data or data.data
- Parse defensively with fallback patterns
- Publish IDs are strings; use exactly as returned
Quick Reference
| 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
1---2name: tiktok-automation3description: 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.4---5
6# TikTok Automation via Rube MCP
7
8Automate TikTok content creation and profile operations through Composio's TikTok toolkit via Rube MCP.
9
10**Toolkit docs**: [composio.dev/toolkits/tiktok](https://composio.dev/toolkits/tiktok)
11
12## Prerequisites
13
14- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
15- Active TikTok connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `tiktok`
16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
17
18## Setup
19
20**Get 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.
21
22
231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `tiktok`
253. If connection is not ACTIVE, follow the returned auth link to complete TikTok OAuth
264. Confirm connection status shows ACTIVE before running any workflows
27
28## Core Workflows
29
30### 1. Upload and Publish a Video
31
32**When to use**: User wants to upload a video and publish it to TikTok
33
34**Tool sequence**:
351. `TIKTOK_UPLOAD_VIDEO` or `TIKTOK_UPLOAD_VIDEOS` - Upload video file(s) [Required]
362. `TIKTOK_FETCH_PUBLISH_STATUS` - Check upload/processing status [Required]
373. `TIKTOK_PUBLISH_VIDEO` - Publish the uploaded video [Required]
38
39**Key parameters for upload**:
40- `video`: Video file object with `s3key`, `mimetype`, `name`
41- `title`: Video title/caption
42
43**Key parameters for publish**:
44- `publish_id`: ID returned from upload step
45- `title`: Video caption text
46- `privacy_level`: 'PUBLIC_TO_EVERYONE', 'MUTUAL_FOLLOW_FRIENDS', 'FOLLOWER_OF_CREATOR', 'SELF_ONLY'
47- `disable_duet`: Disable duet feature
48- `disable_stitch`: Disable stitch feature
49- `disable_comment`: Disable comments
50
51**Pitfalls**:
52- Video upload and publish are TWO separate steps; upload first, then publish
53- After upload, poll FETCH_PUBLISH_STATUS until processing is complete before publishing
54- Video must meet TikTok requirements: MP4/WebM format, max 10 minutes, max 4GB
55- Caption/title has character limits; check current TikTok guidelines
56- Privacy level strings are case-sensitive and must match exactly
57- Processing may take 30-120 seconds depending on video size
58
59### 2. Post a Photo
60
61**When to use**: User wants to post a photo to TikTok
62
63**Tool sequence**:
641. `TIKTOK_POST_PHOTO` - Upload and post a photo [Required]
652. `TIKTOK_FETCH_PUBLISH_STATUS` - Check processing status [Optional]
66
67**Key parameters**:
68- `photo`: Photo file object with `s3key`, `mimetype`, `name`
69- `title`: Photo caption text
70- `privacy_level`: Privacy setting for the post
71
72**Pitfalls**:
73- Photo posts are a newer TikTok feature; availability may vary by account type
74- Supported formats: JPEG, PNG, WebP
75- Image size and dimension limits apply; check current TikTok guidelines
76
77### 3. List and Manage Videos
78
79**When to use**: User wants to view their published videos
80
81**Tool sequence**:
821. `TIKTOK_LIST_VIDEOS` - List user's published videos [Required]
83
84**Key parameters**:
85- `max_count`: Number of videos to return per page
86- `cursor`: Pagination cursor for next page
87
88**Pitfalls**:
89- Only returns the authenticated user's own videos
90- Response includes video metadata: id, title, create_time, share_url, duration, etc.
91- Pagination uses cursor-based approach; check for `has_more` and `cursor` in response
92- Recently published videos may not appear immediately in the list
93
94### 4. View User Profile and Stats
95
96**When to use**: User wants to check their TikTok profile info or account statistics
97
98**Tool sequence**:
991. `TIKTOK_GET_USER_PROFILE` - Get full profile information [Required]
1002. `TIKTOK_GET_USER_STATS` - Get account statistics [Optional]
1013. `TIKTOK_GET_USER_BASIC_INFO` - Get basic user info [Alternative]
102
103**Key parameters**: (no required parameters; returns data for authenticated user)
104
105**Pitfalls**:
106- Profile data is for the authenticated user only; cannot view other users' profiles
107- Stats include follower count, following count, video count, likes received
108- `GET_USER_PROFILE` returns more details than `GET_USER_BASIC_INFO`
109- Stats may have slight delays; not real-time
110
111### 5. Check Publish Status
112
113**When to use**: User wants to check the status of a content upload or publish operation
114
115**Tool sequence**:
1161. `TIKTOK_FETCH_PUBLISH_STATUS` - Poll for status updates [Required]
117
118**Key parameters**:
119- `publish_id`: The publish ID from a previous upload/publish operation
120
121**Pitfalls**:
122- Status values include processing, success, and failure states
123- Poll at reasonable intervals (5-10 seconds) to avoid rate limits
124- Failed publishes include error details in the response
125- Content moderation may cause delays or rejections after processing
126
127## Common Patterns
128
129### Video Publish Flow
130
131```
1321. Upload video via TIKTOK_UPLOAD_VIDEO -> get publish_id
1332. Poll TIKTOK_FETCH_PUBLISH_STATUS with publish_id until complete
1343. If status is ready, call TIKTOK_PUBLISH_VIDEO with final settings
1354. Optionally poll status again to confirm publication
136```
137
138### Pagination
139
140- Use `cursor` from previous response for next page
141- Check `has_more` boolean to determine if more results exist
142- `max_count` controls page size
143
144## Known Pitfalls
145
146**Content Requirements**:
147- Videos: MP4/WebM, max 4GB, max 10 minutes
148- Photos: JPEG/PNG/WebP
149- Captions: Character limits vary by region
150- Content must comply with TikTok community guidelines
151
152**Authentication**:
153- OAuth tokens have scopes; ensure video.upload and video.publish are authorized
154- Tokens expire; re-authenticate if operations fail with 401
155
156**Rate Limits**:
157- TikTok API has strict rate limits per application
158- Implement exponential backoff on 429 responses
159- Upload operations have daily limits
160
161**Response Parsing**:
162- Response data may be nested under `data` or `data.data`
163- Parse defensively with fallback patterns
164- Publish IDs are strings; use exactly as returned
165
166## Quick Reference
167
168| Task | Tool Slug | Key Params |
169|------|-----------|------------|
170| Upload video | TIKTOK_UPLOAD_VIDEO | video, title |
171| Upload multiple videos | TIKTOK_UPLOAD_VIDEOS | videos |
172| Publish video | TIKTOK_PUBLISH_VIDEO | publish_id, title, privacy_level |
173| Post photo | TIKTOK_POST_PHOTO | photo, title, privacy_level |
174| List videos | TIKTOK_LIST_VIDEOS | max_count, cursor |
175| Get profile | TIKTOK_GET_USER_PROFILE | (none) |
176| Get user stats | TIKTOK_GET_USER_STATS | (none) |
177| Get basic info | TIKTOK_GET_USER_BASIC_INFO | (none) |
178| Check publish status | TIKTOK_FETCH_PUBLISH_STATUS | publish_id |
179
180---
181*Powered by [Composio](https://composio.dev)*