Skip to main content
Glama

Post to TikTok

tiktok_post

Post a video to a TikTok account you control (from video_base64 or video_url), immediately or scheduled. Async: returns an operation to poll with tiktok_operation_status. Costs 0.01 USDC, paid per-action via x402.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
captionYes
cookiesNoSession cookies for the TikTok account. Omit for an account connected with tiktok_connect — its session lives in that account's own browser profile on the server, so there is no jar to send.
countryNo
paymentNobase64 x402 payment payload (X-PAYMENT); omit on first call to receive payment instructions
privacyNo
video_urlNoPublic URL to the video (preferred; no size limit)
account_idYesYour identifier for the TikTok account
schedule_atNoISO-8601 datetime to publish at. Uses TikTok's OWN scheduler, which accepts only ~15 minutes to ~10 days ahead — a time outside that window is rejected and refunded, and there is no way to schedule further out. Omit to post immediately. A scheduled post returns its video_id/video_url plus scheduled_at and pending_publish:true — the video exists immediately but its URL is NOT publicly reachable until it publishes.
video_base64NoBase64 video bytes — only fits tiny clips (the MCP transport caps request bodies at 1mb); prefer video_url
proxy_session_idNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries a significant burden and it discloses key behaviors: the operation is asynchronous ('returns an operation to poll'), it costs 0.01 USDC via x402, and it can be immediate or scheduled. It does not detail schedule constraints or payment mechanics, but these are covered in the parameter descriptions, so the description adds meaningful transparency without being exhaustive.

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

Conciseness5/5

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

The description is three sentences, each serving a distinct purpose: stating the core action and input methods, explaining the async behavior, and disclosing the cost and payment method. It is front-loaded with the primary purpose and contains no fluff or redundancy.

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?

Given the tool's complexity (10 parameters, no output schema, no annotations), the description provides essential operational context: async polling, payment, and scheduling modes. The parameter descriptions in the schema fill in many gaps, but the description itself could be more explicit about the contents of the returned operation and the required account setup. Still, it is largely complete for an agent to understand the tool's role and flow.

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

Parameters3/5

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

Schema description coverage is 60%, and the description itself adds minimal parameter-level detail beyond summarizing the two video input methods (video_base64 and video_url), which the schema already describes. It does not clarify ambiguous parameters like country, privacy, or proxy_session_id, so it does not significantly enhance parameter understanding beyond the schema.

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?

The description clearly states the tool's action: 'Post a video to a TikTok account you control (from video_base64 or video_url), immediately or scheduled.' It uses a specific verb ('Post') and resource ('TikTok account'), and distinguishes it from siblings like tiktok_connect, tiktok_scheduled, and tiktok_analytics, which serve different purposes.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (posting a video to TikTok) and mentions the async operation to poll with tiktok_operation_status, guiding the agent on subsequent steps. However, it does not explicitly state exclusions or contrast with alternatives like tiktok_scheduled or tiktok_cancel_scheduled, so it falls short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct resource and action, clearly separated by domain prefixes (card_, email_, phone_, tiktok_). The only potential overlap is phone_read_messages vs wait_for_otp, but wait_for_otp is specifically for OTP extraction and is described as a replacement for hand-rolled polling, making the boundary clear. Status pollers are also domain-specific (card_status, tiktok_connect_status, tiktok_operation_status) and not ambiguous.

Naming Consistency5/5

All tool names follow a consistent snake_case convention with domain-first prefixes (e.g., card_buy, email_send, tiktok_post, phone_temp_number). Even less common names like wait_for_otp and i402_plan are descriptive and stylistically consistent. There are no mixed conventions or vague verbs.

Tool Count4/5

33 tools is above the typical 3-15 range, but the server covers a broad multi-domain purpose (cards, compute, domains, email, phone, TikTok, Twitter, orchestration). Each domain has a focused and coherent set, so the count feels justified rather than bloated. It is slightly high, but not excessively so.

Completeness3/5

Coverage is solid for email, phone, and TikTok, with full lifecycle operations (create, read, extend, delete/cancel where applicable). However, there are notable gaps: compute has only deploy (no list/stop/delete), domains have only check/register (no list/delete), and Twitter has only post (no read/manage). These gaps could force agents to work around missing resource management.