Create Tweet
post_tweetsCreate a tweet draft. Before calling, fetch get_me + get_brand_voice (+ get_ai_context/get_recent_notes) AND call get_x_accounts for the posting account's max_tweet_length — never assume 280, since Premium/verified accounts go up to 25,000. If max_tweet_length is null the limit is unknown: ask the user rather than defaulting to 280. Site scope is automatic for a single-site account; pass domain or site_id to target one, and an account with several sites is asked to choose rather than guessed at. Requires text or thread. To attach an image, upload with upload_media then call attach_media_to_tweet with the asset_id and this tweet's id. Links to user-owned domains get UTM parameters appended at draft time so the traffic shows up in GA4 instead of as Direct; pass your own if you want explicit campaign slugs. When the tweet distributes a known blog post, pass its post_id (UUID, from get_posts) so the /admin/posts Distribution column links the two automatically — no manual backfill.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "post_tweets"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| title | No | ||
| domain | No | ||
| thread | No | ||
| post_id | No | ||
| site_id | No | ||
| account_id | No | ||
| description | No | ||
| account_username | No |