bots.st/ihateposting
iHatePosting
Draft, validate, schedule social posts and track results
87 ms
answered our call
- State
- Answered
- Protocol
- MCP 2025-06-18
- Tools listed
- 17
- Answered
- 4 of the last 4 calls
How to reach it
- MCP, HTTP
https://ihateposting.com/mcp/oauth - MCP, HTTP
https://ihateposting.com/api/mcpNeeds header Authorization - npm
npx -y ihateposting-mcpReleased 30 Oct 2026, version 0.12.8Set IHATEPOSTING_API_KEY
What it can do
| Tool | What it says it does |
|---|---|
create_post | Create a social post on iHatePosting. action 'draft' saves it (the default when no date is given, and the safe choice); 'schedule' needs scheduledDate (YYYY-MM-DD) + scheduledTime (e.g. '9:00 AM' or '21:00'), the account owner's wall clock in their timezone — `ownerTimezone` from whoami, not yours… |
delete_post | Delete a post from iHatePosting. ONE SEND AT A TIME: a SCHEDULED post going to several accounts is stored as one post PER SEND, so deleting one cancels only that platform and leaves the rest scheduled — pass the `postId` that create_post returned on that particular send, or the id of the row… |
get_analytics | How the posts actually performed: impressions, engagement and follower numbers per connected channel, plus the top posts. Use this to answer 'how did that do', 'which platform is working' or 'what should I post more of' — it reports what iHatePosting collected from each network, not an estimate… |
get_platform_rules | What each platform will and will not accept: character limit, whether media is required, how many images, video formats and length, and EVERY per-platform option it takes — `options` per platform, each with its exact key, type, allowed values, default when left out, and whether it is required… |
get_post | Everything about ONE post: the shared text, each platform's own copy and options, the attached media, and per-send status with the live URL or the error. list_posts gives you the id; this explains what actually happened to it. Read it before update_post so you change what is there rather than… |
get_upload_ticket | Internal: issues a short-lived ticket (10 minutes, reused by the upload box for its own requests) that the upload box uses to list, preview, upload and delete files. The upload box calls this itself. |
list_accounts | List the connected social accounts (platform, handle, health) available for posting. The response also names the iHatePosting account this connection acts for — if the accounts listed are not the ones you expect, check that `account.email` is the right person before assuming anything is missing… |
list_media | The images and videos already in the user's iHatePosting library, newest first, with the `id` that create_post's `mediaIds` wants. Call this whenever a platform needs a file — Instagram, Pinterest, TikTok and YouTube all do — to see whether what you need is already uploaded. Returns ids and… |
list_pinterest_boards | The Pinterest boards you can pin to, with the `id` that create_post's `options.pinterest.boardId` requires. Pinterest REFUSES a pin without a board, and a board id is an opaque number you cannot guess — call this before creating any Pinterest post. If several Pinterest accounts are connected, pass… |
list_posts | List posts with per-platform status (draft/scheduled/published/failed) and live URLs. Rows sharing a `batchId` are ONE submission the person made to several accounts — report them as one post going to N places, not as N posts. ALWAYS CHECK `total` IN THE REPLY: it is the number of rows matching… |
open_upload_widget | Show the person their iHatePosting media box: they can upload an image or video from their own device, browse what is already in their library with every file previewable, see how much storage their plan leaves them, pick a file to use, or delete one. THIS IS THE ANSWER WHENEVER SOMEONE NAMES A… |
reschedule_post | Move a SCHEDULED post to a different date and time. ONE SEND AT A TIME: a scheduled post going to several accounts is stored as one post per send, so this moves just that platform and leaves the others where they are (an older row can still carry several platforms, and moves them together). A… |
retry_post | Send a failed post again. ONE SEND AT A TIME, usually: a post to several accounts is stored as one post per send, so a post id normally names a single platform and retrying it touches only that one. (An older row, or a draft, can still carry several — without targetId every failed platform on that… |
update_post | Rewrite a draft or scheduled post. THIS REPLACES THE WHOLE POST, so read it with get_post first and send back the complete set — anything you leave out is removed, including platforms and per-platform options. Note the shape differs from create_post: this one wants `accountIds` (the ids from… |
upload_media | Put an image or video into the library and get back an id for create_post. PREFER `url` — ALWAYS, including for a picture you just generated: we fetch it ourselves at full length, and it is the only thing that works for video or for anything more than a few kilobytes. We take whatever the link… |
validate_post | Check a post against every platform you plan to send it to, WITHOUT creating anything. Runs the same checks create_post runs, so the answer is what will really happen: platform rules ('X counts this as 1200/280 characters', 'YouTube needs a title', 'TikTok slideshows take JPEG or WebP photos')… |
whoami | Which iHatePosting login this connection acts for (email and account name), whether it connected by signing in or with an API key, and the account owner's timezone (`ownerTimezone`) — the zone every scheduledDate/scheduledTime you send is read in. Use this for any question about who the user is or… |
In its maker's words
Draft, check and schedule posts to your social accounts from Claude, ChatGPT, Cursor or VS Code.
- Website
- ihateposting.com
- Source
- github.com/iHatePostingOrg/agent-skill
- Publisher
- ihateposting.com
- Listed from
- the official MCP Registry as
com.ihateposting/mcp - Version
- 0.12.6, updated 20 Oct 2026
- Kinds of work
- Messaging and support, Sales and marketing, Productivity
The domain it lives on
- ihateposting.com
- registered 23 Jul 2026 (4 months ago), at HOSTINGER operations, UAB, its home page is a working site
From our own crawl of domain names: registry records and the home page as our crawler last saw it.
Every call we made
| When | What happened | Time |
|---|---|---|
| Answered | 87 ms | |
| Answered | 83 ms | |
| Answered | 86 ms | |
| Answered | 86 ms |
Next door
- Inbin: email for AI agentsDisposable inboxes for agent email verification
- AgentLairEmail delegation via inbox and vault
- Mailrith Email MarketingManage email subscribers, broadcasts, and automations with r
- faxforagents-mcpSend and receive faxes with approval
- AnyHookManage webhook inboxes for agent events
Is this your bot? Claim its address to add a verified badge and keep the listing current.