Autonomous agents ยท by xAI
Grok Bot
Use Social Studio with Grok Bot
If your bot runs on the Grok API, give it the tools as functions (it is OpenAI-compatible) or point an MCP-capable host at the MCP URL.
Grok Bot
Asks for ideas and drafts
Social tools
MCP or HTTP, one API key
You approve
Review link, then Publish
Your feeds
TikTok, Reels, Threads, Bluesky
The one rule
An agent prepares and a person publishes. Grok Bot can create drafts, but it cannot publish to TikTok, and it cannot approve anything on your behalf. You open the review link, check the post and click Publish.
What Grok Bot can do
Check the rules
Limits and approval rules for a network, before you make the video
social_get_requirementsGenerate ideas
Video ideas with hook, script, video prompt, caption and hashtags
social_generate_ideasImport a video
Host a video from a link in your own storage
social_import_videoUpload a file
Upload a video file directly
social_get_upload_urlCreate a draft
Create a post draft. TikTok drafts come with a review link for you
social_create_draftList your posts
Your posts and their status
social_list_postsTrack status
One post: processing, published (with link) or failed (with the reason)
social_get_post_status
Set it up
- 1
Create a Creative Tim API key
Create one here. It starts with
sk-ct-. Keep it in your client's secret settings, never in a prompt. - 2
- 3
Connect Grok Bot
Pick one. Function calling is the recommended way for Grok Bot.
Give Grok Bot the tools as functions
RecommendedTypeScript// The model API is OpenAI-compatible; the tools are plain HTTP. import OpenAI from "openai" const llm = new OpenAI({ baseURL: "https://api.x.ai/v1", apiKey: process.env.XAI_API_KEY }) const spec = await (await fetch("https://www.creative-tim.com/ui/api/social/openapi.json")).json() // Each OpenAPI operation becomes one function the model can call. const tools = Object.entries(spec.paths).map(([path, op]: [string, any]) => ({ type: "function" as const, function: { name: op.post.operationId, description: op.post.description, parameters: op.post.requestBody.content["application/json"].schema, }, })) const messages: any[] = [{ role: "user", content: "Make 3 TikTok ideas about home coffee, then draft the first one." }] for (;;) { const res = await llm.chat.completions.create({ model: "YOUR_GROK_MODEL", messages, tools }) const msg = res.choices[0].message messages.push(msg) if (!msg.tool_calls?.length) break for (const call of msg.tool_calls) { const out = await fetch(`https://www.creative-tim.com/ui/api/social/tools/${call.function.name}`, { method: "POST", headers: { Authorization: `Bearer ${process.env.CREATIVE_TIM_API_KEY}`, "Content-Type": "application/json" }, body: call.function.arguments, }) messages.push({ role: "tool", tool_call_id: call.id, content: await out.text() }) } } console.log(messages.at(-1).content)- Keep your Creative Tim key in CREATIVE_TIM_API_KEY, never in the prompt.
- Return the whole assistant message (including its reasoning fields) to the model on the next turn, as the model's API requires.
Connect any MCP client
Option 2- 1In your agent's MCP or tools settings, add a remote server with the URL above.
- 2Send your key as a Bearer token in the Authorization header.
- 3If the client only supports local (stdio) servers, bridge it with: npx -y mcp-remote https://www.creative-tim.com/ui/api/mcp --header "Authorization:Bearer sk-ct-YOUR_KEY"
SettingsURL: https://www.creative-tim.com/ui/api/mcp Transport: Streamable HTTP (stateless, JSON responses) Authorization: Bearer sk-ct-YOUR_KEY
Try it
Paste this into Grok Bot and fill in the blanks:
Use the Creative Tim social tools. First check the requirements for TikTok. Then give me 5 video ideas for <my niche>. For the one I pick, import this video <video URL>, and create a TikTok draft with the caption. Give me the review link.- Step 1
Grok Bot tells you the draft is waiting and gives you a link.
- Step 2
Open it, review the post, publish.
- Step 3
Posts then show their status (processing, published with a link, or failed with TikTok's own reason) in the Social Studio.
Questions
Can Grok Bot publish to TikTok for me?
No. Grok Bot can create a draft with the video and caption and give you a review link. You open it, check the settings TikTok allows for your account, and click Publish. TikTok requires the creator to approve each post, so no agent can do it for you.
Which networks can Grok Bot prepare posts for?
TikTok, Instagram Reels, Threads and Bluesky. For networks other than TikTok, your own copilot or autopilot setting decides whether a draft waits for your approval or is scheduled directly.
What does it cost?
Posting and drafting are free. Generating ideas or video in Creative Tim uses credits from your plan.
Where does my API key go?
In the client's secret or header settings, never in a prompt. You can create and revoke keys on the API Keys page at any time.
Other agents
Claude Cowork
Anthropic
Let Claude Cowork prepare a batch of social video drafts while you work on something else.
Desktop config~3 min setupSetup guideOpenClaw
Creative Tim
Give your OpenClaw assistant the ability to prepare social video drafts for you.
Remote MCP~2 min setupSetup guideHermes Agent
Nous Research
Hermes agents deployed on Creative Tim already have the social tools. Nothing to install.
Built inReady nowSetup guideManus
Manus
Ask Manus to prepare a batch of social video drafts and hand you the review links.
Remote MCP~2 min setupSetup guide