iHatePosting
com.ihateposting/mcp · v0.5.0 · MCP 2025-11-25
Draft, check and schedule posts to your connected social accounts from Claude, ChatGPT or Cursor.
Reachability
reachable
checked 2026-09-20 05:32 UTC
Registry status active
Tools pinned 15
40548ca44cff
Tools last changed
2026-09-18
Provenance
Registry namespace com.ihateposting
(domain verified by the official registry)
Website
https://ihateposting.com
Remote endpoints
https://ihateposting.com/api/mcp (streamable-http)
Observed changes
| When (UTC) | Event | Detail |
|---|---|---|
| 2026-09-18 05:32 | tools changed | 1 added, 0 removed, 0 changed |
| 2026-09-17 05:33 | tools changed | 8 added, 0 removed, 2 changed |
| 2026-09-12 05:30 | first capture | 6 tools pinned |
Pinned tool definitions (15)
| Tool | Description |
|---|---|
| whoami | Who the API key belongs to: the iHatePosting login (email and account name). Use this for any question about who the user is or which account is connected. This is NOT a social media handle — the handles from list_accounts belong to the... |
| 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 which per-platform options are MANDATORY (e.g. Pinterest needs a board, YouTube needs a title). Call... |
| validate_post | Check a post against every platform you plan to send it to, WITHOUT creating anything. Runs the same checks the publisher runs seconds before it posts, so the answer is what will really happen — 'X counts this as 1200/280 characters',... |
| create_post | Create a social post on iHatePosting. action 'draft' saves it (the default, and the safe choice); 'schedule' needs scheduledDate (YYYY-MM-DD) + scheduledTime (e.g. '9:00 AM', in the account owner's timezone); 'now' publishes immediately... |
| list_posts | List the 50 most recent iHatePosting posts with per-platform status (draft/scheduled/published/failed) and live URLs. |
| list_accounts | List the connected social accounts (platform, handle, health) available for posting. The response also names the iHatePosting account the API key belongs to — if the accounts listed are not the ones you expect, check that... |
| 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... |
| 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... |
| reschedule_post | Move a scheduled post to a different date and time. Takes the post id from list_posts, plus scheduledDate (YYYY-MM-DD) and scheduledTime (e.g. '9:00 AM') read in the ACCOUNT OWNER'S timezone, not yours or the user's device. A post that... |
| 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... |
| upload_media | Put an image or video into the library and get back an id for create_post. Give the bytes as base64 — a picture you generated or were handed, not a path and not a URL. Three things happen for you: the API checks type, size and quota and... |
| 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... |
| 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... |
| retry_post | Send a failed post again. Without targetId every failed platform on the post is retried; with one, only that send. Only a send that FAILED is retried — one that published is left alone, so this cannot double-post. If the cause was the... |
| delete_post | Delete a post from iHatePosting. THIS DOES NOT UNPUBLISH ANYTHING: a post that has already gone out stays live on the network, and deleting it here only removes iHatePosting's record of it. For that reason a published post is refused... |
Get alerted when this changes.
Email the moment com.ihateposting/mcp drifts, dies, or revives.
Status badge
[](https://toolpin.dev/servers/com.ihateposting/mcp)
Maintain this server? Add the badge to your README. It links your users to this live status page.