Schedule social posts from Grok Bot
Connect xAI's Grok Bot to posterly through the hosted HTTP MCP endpoint (Grok Bot supports remote MCP only), REST API calls, or a reusable skill file. Then let your cloud agent create, schedule, and analyse posts across 18 platforms.
Hero prompt
Use the posterly connector to list my accounts, draft one caption for LinkedIn, X, and Instagram, find the next free slot, validate_post, and ask me to approve before create_post.
Preview what is copied
# posterly for Grok Bot
posterly is the publish layer. Grok Bot is the cloud agent layer. Connect the hosted HTTP MCP endpoint. Grok Bot does not run local stdio.
posterly publishes to 18 platforms: Instagram, Facebook, TikTok, X, LinkedIn, YouTube, Pinterest, Threads, Google Business, Telegram, Bluesky, Discord, Slack, Mastodon, Dev.to, Hashnode, WordPress, Lemmy.
## Connect
Grok Bot: Settings, then Plugins / Connectors / MCPs. Server URL https://www.poster.ly/api/mcp. Bearer pst_live_your_key_here.
Regular Grok chat: https://grok.com/connectors, New Connector, Custom, same URL.
Marketplace-first walkthrough: https://www.poster.ly/blog/how-to-use-posterly-with-grok-bot
Grok Build (local CLI, not Grok Bot) can use stdio: grok mcp add posterly -- npx -y posterly-mcp-server@latest with POSTERLY_API_KEY.
The reusable skill at https://github.com/awpthorp/posterly-agent can be installed as a Grok Bot skill. Chat attachments never reach MCP. Grok Bot itself has no file_path.
## Are we connected yet?
1. Call `whoami` (no params). Confirm the user, scopes, and workspaces.
2. Call `list_accounts` (`workspace_id` optional). If none are connected, stop and send the user to connect social accounts in posterly. Do not invent account IDs.
3. Prefer `validate_post` before `create_post`. Show the preview. Wait for a clear yes.
4. Only then call `create_post` with `confirm: true`. Never publish or schedule live without that approval.
5. Prefer `scheduled_at` (ISO 8601 UTC) or `find_available_slot` (`account_ids`, `timezone`, `count`). Do not publish immediately unless the user asks.
## Rules
- posterly is the publish layer. This client is the chat or agent layer.
- Never collect card details, posterly passwords, or social-network passwords. Send the user to https://www.poster.ly/agents/signup or https://www.poster.ly/dashboard/api.
- Point to https://www.poster.ly/mcp for the rest of the 86 hosted HTTP MCP tools (89 on the local stdio package).
- After a post is created, send the View in posterly link. Avoid raw JSON dumps unless the user asks to debug.
## Media (honest)
Chat attachments never reach MCP. The paperclip in this chat does not give posterly the file.
The ~4MB limit is the **Vercel request body** on posterly API routes (`/api/mcp`, `POST /api/v1/media/upload`). It is not an MCP protocol cap and not the plan storage cap. Base64 inflates files, so hosted `upload_media` is small images only (relay cap 5MB decoded).
- Public HTTPS URL: `upload_media_from_url` (`url`, optional `filename`, `content_type`) or pass `media_url` / `media_urls` on `validate_post` / `create_post`. Server fetch: about 5MB relay, 60MB hard cap. Large R2/S3 URLs fail with `remote_media_too_large`.
- Hosted `upload_media`: required `filename` + `base64_data`. Optional `content_type`. Hits the 4MB Vercel body. JPEG, PNG, GIF, WebP, MP4, MOV, WebM. HEIC is unsupported.
- Laptop file in ChatGPT web or Claude.ai: `create_media_drop` (optional `filename`, optional `max_files`, default 10). Send the user `drop_url` (`https://www.poster.ly/drop/<token>`). They open it with no dashboard login and drop the file. Then `list_media` (`drop_session_id`) and pass `public_url` to `validate_post` / `create_post`. This is not the chat paperclip.
- Larger files, when this client can HTTP PUT: `create_signed_upload` (`filename`, `content_type`, `size`), PUT the raw bytes to the returned `upload_url` (object storage, not a posterly API route) with the returned headers, then pass `public_url` to `create_post`. That PUT does not hit the 4MB body. Plan video caps: Starter 500MB, Pro 750MB, Power 1GB, Agency 4GB.
- This client is hosted HTTP MCP, so there is no local `file_path`. Small images: public URL or base64 `upload_media`. Laptop video: `create_media_drop` then `list_media`. PUT after `create_signed_upload` only if this runtime can PUT (Cursor Cloud, Codex HTTP).
## Starter tools
- `whoami` (none): Call first. Returns the authenticated user, API key scopes, and workspaces.
- `list_accounts` workspace_id?: Connected social accounts. Stop if this is empty and send the user to connect accounts in posterly.
- `validate_post` account_id or username+platform, caption, scheduled_at?, media_url?, media_urls?, post_type?, workspace_id?: Dry run. Does not create a post. Use this before showing a preview.
- `create_post` same as validate_post, plus confirm: true (required): Destructive write. Refuse unless the user clearly approved caption, account, media, and schedule.
- `upload_media` filename, base64_data (hosted). content_type optional. Stdio also accepts file_path.: Hosted path is base64 with a decoded file of 5MB or less. Chat paperclip files never arrive here.
- `upload_media_from_url` url (required), filename?, content_type?: Fetch a public HTTPS URL into posterly storage. Localhost and private IPs are blocked.
- `create_signed_upload` filename, content_type, size: Bypasses the Vercel ~4MB API body. Returns upload_url (object storage) and public_url. PUT raw bytes to upload_url, then pass public_url to create_post. Use this when the client can PUT (Cursor, Claude Code, Codex).
- `create_media_drop` filename?, max_files?: Creates a no-login page at https://www.poster.ly/drop/<token>. Send drop_url to the user. ChatGPT web and Claude.ai laptop files use this, then list_media. Not the chat paperclip.
- `list_media` limit?, drop_session_id?: Newest media assets. After create_media_drop, pass drop_session_id and use public_url on validate_post / create_post.
- `find_available_slot` account_ids?, timezone?, workspace_id?, count?: Always pass timezone explicitly (IANA, e.g. Europe/London). Respects a 1-hour gap.
- `generate_captions` platforms (required), brief?, tone?, count?, mode?, source_caption?: Returns caption options only. It does not schedule or publish.
- `list_posts` status?, platform?, account_id?, workspace_id?, limit?: Upcoming or recent posts. status is scheduled, published, failed, or draft.
## Example prompts
- Use the posterly connector to list my accounts and tell me which X and LinkedIn profiles are connected.
- Every Monday at 9am, draft three X posts from this week changelog and ask me to approve before scheduling in posterly.
- Draft a LinkedIn, X, and Instagram launch post, find the next free slot, validate_post, and wait for my yes.
- Pull my last scheduled week and recommend one gap to fill.
- I have a public media URL. upload_media_from_url, then validate_post an Instagram post. Do not create_post yet.
- After I approve, create_post with confirm true and send the View in posterly link.
- Never treat a chat attachment as a posterly upload. Ask me for a public URL or use signed upload.
## Links
- Human landing: https://www.poster.ly/grokbot
- MCP hub: https://www.poster.ly/mcp
- Grok Bot guide: https://www.poster.ly/guides/grokbot-guide
- AI agents: https://www.poster.ly/agents
- Agent signup: https://www.poster.ly/agents/signup
New to Grok Bot? Start from the Marketplace bot and walk through signup to the first approved schedule.
Same posterly access layer as Claude, ChatGPT, Cursor, OpenClaw, Hermes, and custom automations.
What it looks like in chat
Draft, validate, then approve. Your AI never publishes until you say so.
your AI · connected to posterly MCP
MCPNever posts without approval · validate_post before create_post
View in posterlyWorks with Claude, Cursor, ChatGPT, OpenClaw, Hermes, Grok Bot, Poke, and any MCP client.
Get Grok Bot connected in three steps
Start with an API key, add the hosted MCP endpoint as a connector, then let Grok Bot do the scheduling. Prefer chat first? Follow the Grok Bot Marketplace walkthrough. Full tables stay on the MCP setup guide and the Grok Bot guide.
Enable API & MCP access
Open Dashboard → API & MCP, activate the API add-on (from $3/month; Agency API is $29/month), then create a posterly API key.
Open API dashboardAdd posterly as a custom connector
In Grok Bot open Settings, then Plugins / Connectors / MCPs, and add a custom connector with the Server URL https://www.poster.ly/api/mcp and your key as the bearer token. Grok Bot only talks to remote MCP servers, so use the hosted endpoint.
Read the hosted MCP guideAsk Grok Bot to schedule
Once connected, Grok Bot can list accounts, find available slots, upload media, generate images, and create posts.
Read API referenceConnect Grok Bot to the hosted MCP endpoint
Grok Bot runs on a persistent cloud computer and only supports remote MCP servers over HTTP or SSE on the public internet. It cannot launch local stdio servers, so point it at the hosted posterly endpoint instead of the npm package.
Grok Bot connector (hosted HTTP MCP)
In Grok Bot open Settings (or Customize), then Plugins / Connectors / MCPs, and add a custom connector. Paste the Server URL below and send your posterly key as the bearer token. This is the same flow as grok.com/connectors, New Connector, Custom.
POST https://www.poster.ly/api/mcp
Authorization: Bearer pst_live_your_key_here
Content-Type: application/json
{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }Grok Bot does not support local stdio MCP (npx ...), localhost, or private IPs. Use the hosted endpoint above; once the connector is saved the posterly tools appear in Grok Bot, often namespaced under the connector name.
Discovery metadata lives at /.well-known/mcp/server-card.json and auth metadata at /.well-known/oauth-protected-resource. See the full MCP setup guide for the hosted HTTP section.
Grok Build (CLI) and grok.com
Grok Build, the local terminal agent, supports both remote and local stdio MCP. Add posterly either way with the same key.
# remote (hosted HTTP MCP)
grok mcp add --transport http posterly https://www.poster.ly/api/mcp
# local stdio alternative
POSTERLY_API_KEY=pst_live_your_key_here \
grok mcp add posterly -- npx -y posterly-mcp-server@latestYou can also edit ~/.grok/config.toml directly, and use /mcps and /plugins inside the Grok Build TUI. Set POSTERLY_API_KEY in the server environment for the stdio route.
For regular Grok chat on grok.com, open grok.com/connectors, choose New Connector, then Custom, and paste the same hosted MCP URL.
The posterly skill also works as a Grok Bot skill
Grok Bot stores skills as folders on the Bot's computer, and a skill is just a Markdown instruction file. The same SKILL.md that OpenClaw and Hermes use can teach Grok Bot when to use posterly MCP, when to fall back to REST, and what safety checks to apply before publishing.
Minimal reusable SKILL.md
Put this in a Grok Bot skill folder, or adapt the public posterly agent skill from GitHub.
Show SKILL.md example
---
name: posterly-social-manager
description: Schedule and manage social posts through posterly. Prefer MCP when available, fall back to REST with the same POSTERLY_API_KEY.
---
# posterly social manager
Use posterly to create, schedule, inspect, and analyse social posts.
Connection order:
1. Prefer the posterly MCP server when available.
2. Use REST API endpoints when MCP is not available.
3. Never publish immediately without showing the user the account, caption, media, and schedule first.
Auth:
- Environment variable: POSTERLY_API_KEY
- Base URL: https://www.poster.ly
- MCP npm package: posterly-mcp-server
Core actions:
- list accounts and brands
- find available slots
- upload media
- create, update, delete, and inspect posts
- get account and post analyticsInstall or adapt the skill
Three routes: install a packaged skill or connector from Settings, then Plugins; copy the skill folder onto the Bot's computer; or ask the Bot to create the skill for you. In our hands-on testing you can also give the Bot the GitHub URL and ask it to install it. Then type / in the composer to reference a saved skill and @ for Bots, groups, routines and connectors. Skills are available across your Bots.
Good agent behaviour
- Confirm account, caption, media, and schedule before public posting.
- Prefer MCP tools when available because schemas reduce mistakes.
- Use REST fallback for scripts, cron jobs, and runtimes without MCP.
- Always run whoami first so posts land in the right workspace.
What Grok Bot can do once connected
The hosted MCP endpoint exposes the same core tools as the API add-on, with structured schemas for safer agent use.
Common tools
get_mcp_statuswhoamicreate_api_keylist_accountslist_brandsget_brand_profilecreate_postlist_postsask_supportfind_available_slotupload_mediagenerate_captionsgenerate_imageget_account_analyticsget_post_analyticsExample Grok Bot prompts
- “Use the posterly connector to list my accounts and tell me which X and LinkedIn profiles are connected.”
- “Every Monday at 9am, draft three X posts from this week's changelog and ask me to approve before scheduling in posterly.”
- “Generate an image for this launch, write an Instagram caption, and find the next free slot for it.”
- “Pull my last 30 days of TikTok and LinkedIn analytics from posterly and recommend what to post next.”
Post to 18 platforms
Grok Bot can schedule through posterly to every supported social platform.
Related setup guides
Use these pages together. Grok Bot is one route into the same API, MCP, and skill layer.
Grok Bot Marketplace walkthrough
Add the live Posterly Social bot, run agent-led signup, then validate a draft before anything is scheduled.
Grok Bot guide (long read)
What Grok Bot is, how remote MCP and plugins work, pricing, and what marketers can automate with it.
MCP setup guide
The canonical MCP page with client setup, hosted HTTP connection, OAuth metadata, and tool list.
Hermes integration
The same posterly access layer, connected to Hermes through npm MCP, HTTP MCP, REST, or a skill.
OpenClaw skill
The OpenClaw page includes the reusable SKILL.md pattern. It is Markdown, not OpenClaw-only magic.
Poke integration
Connect posterly to Poke as a custom MCP integration, then text Poke to schedule posts.
API dashboard
Activate the add-on, generate keys, and copy setup snippets from inside posterly.
REST API reference
Use direct HTTP calls from Grok Bot tasks, cron jobs, or custom automations.
Pricing
One Stripe subscription: your plan plus API & MCP. Charged now, no free trial.
API, MCP & Agent Access
Starter $7 + API $3, charged now. No free trial on this path.
- Grok Bot + hosted HTTP MCP + REST API
- Reusable Markdown skill workflows
- 86 hosted HTTP MCP tools for status checks, scoped API keys, schemas, scheduling, support, media, brands, analytics, webhooks, OAuth, connect sessions, subscription management, and GBP
- 100 create-post requests/hour plus separate media/read limits
- All 18 supported platforms
Grok Bot questions
Does Grok Bot support local stdio MCP?+
No. Grok Bot only connects to remote MCP servers over HTTP or SSE that are reachable on the public internet, so npx-style local servers, localhost, and private IPs will not work. Add https://www.poster.ly/api/mcp as a custom connector with your posterly key as the bearer token.
What about Grok Build?+
Grok Build, the local terminal agent, supports both. Use grok mcp add --transport http posterly https://www.poster.ly/api/mcp for the hosted endpoint, or grok mcp add posterly -- npx -y posterly-mcp-server@latest with POSTERLY_API_KEY set for local stdio. You can also edit ~/.grok/config.toml.
Can I use the OpenClaw or Hermes skill with Grok Bot?+
Yes. The useful part is the SKILL.md file. Install it from Settings, then Plugins, copy the folder onto the Bot's computer, or (in our testing) give Grok Bot the GitHub URL https://github.com/awpthorp/posterly-agent and ask it to install the skill. Then type / to reference it when you want repeatable posterly behaviour.
What can Grok Bot schedule?+
All 18 posterly platforms: Instagram, Facebook, TikTok, X, LinkedIn, YouTube, Pinterest, Threads, Google Business, Telegram, Bluesky, Discord, Slack, Mastodon, Dev.to, Hashnode, WordPress, Lemmy.
Ready to connect Grok Bot?
Pay for Starter + API in one checkout, create a key, then add the hosted MCP endpoint as a Grok Bot connector or load the skill.
