Grok Build + iHatePosting

Post to social media from Grok Build

Connect Grok Build to iHatePosting and ask it to write, schedule and publish posts to 15 social networks. iHatePosting's hosted MCP server gives Grok Build 16 tools to create, reschedule and check posts, with you approving everything in one calendar. Setup takes about a minute and is included in the free 90-day trial.

Install the iHatePosting plugin in Grok Build and sign in with no API key, so it can write and schedule posts to 15 networks. Free 90-day trial.

Nothing is published unless you ask for it in that message. No API key — you sign in and approve.

Coding agents and editorsSpaceXAI

Grok Build is SpaceXAI's coding agent for the terminal — the company formerly known as xAI. A single command connects it to iHatePosting's hosted server, and from then on you can ask it to announce a release or schedule a thread without leaving your shell.

How do I connect iHatePosting to Grok Build?

It takes about a minute. You can sign in and approve, or carry an API key instead — whichever you prefer.

  1. 1Step 1

    Install the iHatePosting plugin for Grok Build and sign in

    Run this command in your terminal; without --trust, Grok refuses to install it. Then start grok, open /mcps, select ihateposting and press i: Grok opens your browser, you sign in to iHatePosting and press Allow. There is no API key to create, paste or keep. The plugin also adds a skill that tells Grok to check each post against the network's rules before saving it.

    Terminal
    grok plugin install iHatePostingOrg/agent-skill --trust
  2. 2Step 2

    Ask it to post

    Tell Grok Build what you want to say and where. It saves a draft in iHatePosting unless you ask for the post to go out now or at a set time.

Advanced: use an API key

Create a key in Settings → Developers first. Run this command in your terminal. It saves iHatePosting for every project, in ~/.grok/config.toml (on Windows, %USERPROFILE%\.grok\config.toml). To check it later, run grok mcp doctor ihateposting: it confirms that Grok reaches the server, but it passes even with a wrong key, so ask Grok to run ihateposting__whoami to check the key. Replace YOUR_API_KEY with your key.

Grok Build — API key
grok mcp add --transport http ihateposting https://ihateposting.com/mcp?client=grok --header "Authorization: Bearer YOUR_API_KEY"

What is different about Grok Build

Every client reaches the same server, and then behaves like itself. These are the things that are true here and not somewhere else.

grok mcp add saves the server for your user, in ~/.grok/config.toml, so it is there in every project. Add --scope project to write it to .grok/config.toml in the folder you run the command from instead — Grok only loads it once that folder is trusted, and the file should not be committed with a key in it.

On the API key route, grok mcp add stores the header exactly as typed, so the file holds your key in plain text. To keep the key out of the file, add the server to ~/.grok/config.toml yourself with url = "https://ihateposting.com/mcp" and bearer_token_env_var = "IHATEPOSTING_API_KEY" instead of a headers line; Grok then sends the key from that variable, and if it is not set every tool says no key was sent. A ${VAR} inside a header also works, but an unset variable stays in the text literally and our server reads it as a wrong key.

Check it with grok mcp doctor ihateposting, or open /mcps inside a session. The tools appear as ihateposting__ followed by the tool's name. Ask Grok to run ihateposting__whoami to see which iHatePosting login it acts for — on the API key route that is also the only check that the key is right, because the server answers doctor even when the key is wrong.

Grok keeps the sign-in in ~/.grok/mcp_credentials.json. To sign in again, open /mcps, select ihateposting and press i; to take it back, open Settings → Developers → Connected apps in iHatePosting and press Disconnect.

Headless runs load project-scoped servers only in a folder you have already trusted. In a headless run, the --trust flag trusts the folder, and Grok remembers that for every later run; that is not the --trust on grok plugin install, which only approves the plugin.

Limits. xAI, now SpaceXAI, launched Grok Build in May 2026 as an early beta for SuperGrok and X Premium Plus subscribers; its page now says it is free to try, without stating the limits. It runs on macOS, Linux and Windows, and on first launch opens your browser to sign in with your grok.com account; an xAI API key works instead where there is no browser. Grok Build on the web and in the Grok phone apps is a different tool that builds apps inside a chat; these steps are for Grok Build in the terminal. An organisation can block MCP servers with an allow or deny list.

SpaceXAI's own documentation: MCP servers in Grok Build

Source on GitHub: github.com/iHatePostingOrg/agent-skill

Nothing goes out unless you say so

Every post Grok Build writes is saved as a draft in iHatePosting unless you ask for it to be published now or at a set time. Publishing, rescheduling, retrying and deleting are marked as actions that change things, so clients that honour those markings ask you before they run them. Deleting a post in iHatePosting never removes one that is already live on a network.

What is the iHatePosting MCP?

MCP — the Model Context Protocol — is the standard way an assistant plugs into an app it does not own. Our server exposes the accounts you have connected to Grok Build as tools, so it can draft, check and schedule without you opening a dashboard.

How Grok Build uses it

  • You add the connector once — by signing in, or with a key you create
  • Grok Build reads which accounts you have connected, and each network's rules
  • It writes a version per network and checks it against those rules before sending
  • It saves a draft, schedules it, or publishes — exactly as your message said
  • It works alongside whatever other tools Grok Build already has
tools Grok Build can call
# read and check (9)
whoami              list_accounts
list_posts          get_post
get_analytics       get_platform_rules
list_media          list_pinterest_boards
validate_post

# write (7)
create_post         update_post
reschedule_post     delete_post
retry_post          upload_media
open_upload_widget

Cost, access and what to do when it breaks

What does it cost?

The connector costs nothing on top of iHatePosting. iHatePosting has one plan: $15/month billed annually, or $19/month billed monthly, with unlimited social accounts. It is free for 90 days, no credit card needed, and everything is included during the trial: unlimited accounts, unlimited posts, every feature.

How is access secured?

Either you sign in to iHatePosting and approve access, or you create an API key in Settings → Developers. That page can show your key again whenever you need it. Whichever route you take, it reaches only the accounts you have already connected, and you can revoke it at any time without touching the accounts themselves.

Something not working?

  • It cannot see any accounts: connect them in iHatePosting first, then ask it to list them again.
  • You regenerated your key and it still fails: Regenerate revokes the old key the moment you press it, and a client that is already running keeps sending the old one until you genuinely restart it.
  • A post failed: open it in iHatePosting — the failure names the network and repeats what that network actually said.

Frequently asked questions

Do I need an API key for Grok Build?

No. Install the plugin with the command on this page, then open /mcps in a session, select ihateposting and press i to sign in to iHatePosting in your browser. The API key route is still on this page, under Advanced.

Where does grok mcp add save the server?

For your user, in ~/.grok/config.toml, so it is there in every project. Add --scope project to write it to .grok/config.toml in the current folder instead; Grok loads that only once the folder is trusted.

How do I keep my key out of the config file?

Sign in instead: that route puts no key in any file. If you use a key, add the server to ~/.grok/config.toml yourself with url set to https://ihateposting.com/mcp and bearer_token_env_var set to IHATEPOSTING_API_KEY, instead of a headers line. Grok then sends the key from that variable, and if it is not set every tool says no key was sent.

How do I check that it works?

grok mcp doctor ihateposting and /mcps show whether Grok reached the server. Ask Grok to run ihateposting__whoami to see which iHatePosting login it acts for; on the API key route that is also the check that the key is right.

Is the Grok Build connector free?

Yes. The connector costs nothing on top of iHatePosting, and iHatePosting is free for 90 days, no credit card needed. After that it is $15/month billed annually, or $19 month-to-month, with unlimited accounts.

Which networks can Grok Build post to?

Any account you have connected in iHatePosting, across 15 networks: Instagram, Facebook, LinkedIn, X, Threads, TikTok, YouTube, Pinterest, Bluesky, Mastodon, Telegram, Discord, Slack, Tumblr and Google Business Profile.

Can Grok Build schedule posts for a specific date and time?

Yes. Put the date and time in the prompt — for example "schedule this for Friday at 9:00 AM" — and Grok Build schedules the post for then. iHatePosting reads the time in your account's timezone, and you can ask Grok Build to move a scheduled post to a new time.

One connection reaches every network

Connect your accounts in iHatePosting once. From then on Grok Build can post to any of them, and we publish at the time you set — even after you close the chat.

  • Bluesky
  • X
  • LinkedIn
  • Facebook
  • Instagram
  • Threads
  • Pinterest
  • TikTok
  • YouTube
  • Mastodon
  • Telegram
  • Discord
  • Tumblr
  • Google Business
  • Slack

Ready to post everywhere from Grok Build?

Start your 90-day free trial — no credit card, about a minute to your first post.

Sign Up