Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

iHatePosting

by iHatePostingOrgversion 0.12.6i★ –iComputer or cloud
Registry namecom.ihateposting/mcp

Install

Overview

Description from the maker (original English)

Draft, check and schedule posts to your social accounts from Claude, ChatGPT, Cursor or VS Code.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Other
  • You need to fill in: IHATEPOSTING_API_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: IHATEPOSTING_API_KEY

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://ihateposting.com/mcp/oauth

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "ihateposting": {
      "command": "npx",
      "args": [
        "-y",
        "ihateposting-mcp"
      ],
      "env": {
        "IHATEPOSTING_API_KEY": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add --transport http ihateposting https://ihateposting.com/mcp/oauth

Or run it on your computer

claude mcp add ihateposting --env IHATEPOSTING_API_KEY=your-value -- npx -y ihateposting-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "ihateposting": {
      "url": "https://ihateposting.com/mcp/oauth"
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "ihateposting": {
      "command": "npx",
      "args": [
        "-y",
        "ihateposting-mcp"
      ],
      "env": {
        "IHATEPOSTING_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "ihateposting": {
      "type": "http",
      "url": "https://ihateposting.com/mcp/oauth"
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "ihateposting": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ihateposting-mcp"
      ],
      "env": {
        "IHATEPOSTING_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://ihateposting.com/mcp/oauth

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • IHATEPOSTING_API_KEY secret required env
    Your iHatePosting API key (starts with pk_live_). Create one in Settings > Developers.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain ihateposting.com (the registry checks domain ownership)

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Otheri

  • More stars than 0% of the other 32589 servers in this category
  • Published to the registry more recently than 68% of the other 32589 servers in this category
  • Basic checks equal to or better than 100% of the other 32589 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is iHatePosting safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: IHATEPOSTING_API_KEY

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.12.6) reached the registry 17 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, Detailing Manager

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

Detailing Manager

by RadoslavMoshev

Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.

Runs on your computerUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

[ihateposting.com](https://ihateposting.com)

iHatePosting for AI agents

Let Claude, Claude Code, Cursor, Gemini CLI, Grok Build, Kimi Code or Qwen Code draft, check, schedule and publish posts on 14 social networks, using the accounts you have connected at ihateposting.com. This package gives each agent the hosted iHatePosting MCP server (16 tools) and a skill that teaches it to post safely. Every agent here signs in with your iHatePosting account; none of them needs an API key.

GitHub Copilot in VS Code uses the same hosted server: Install in VS Code, then sign in with your iHatePosting account in the browser. There is no API key to paste. The steps are under Install.

Set-up pages for every agent: Claude · Claude Code · Claude Cowork · ChatGPT · Codex · Cursor · Gemini CLI · Grok Build · VS Code and GitHub Copilot · OpenClaw · Hermes Agent · DeepSeek Harness · Perplexity Computer · Muse · NanoClaw · Paperclip · Antigravity CLI · Amp · Cline · Kilo Code · Zed · Warp · Devin Desktop · OpenHands CLI · Freebuff CLI · omp · all of them

Some of those pages add the server by hand, with an API key; for Claude, Claude Code, Cursor, Gemini CLI, Grok Build, Kimi Code and Qwen Code, the plugin in this repository signs in instead (Install).

Nothing goes out unless you say so. A new post is saved as a draft unless you ask for it to be published now or at a set time.

What your agent can do

  • Draft, schedule or publish one post to several networks at once, either to every account you have on a network or to one account you pick. A time such as "9:00 AM" is read in the timezone set in your iHatePosting settings (Settings → Scheduling), not your computer's.
  • Check a post before it exists. validate_post runs the checks the publisher runs just before it posts, and creates nothing. It also tells you when a network has no connected account, or one that needs reconnecting.
  • Learn each network's rules: character limit, media rules and the options a network requires, such as a Pinterest board.
  • Write per network: different text for one network, and that network's own settings. That covers threads on X, Bluesky, Threads and Mastodon, a first comment on Instagram, LinkedIn and Threads, Instagram Reels, Stories and carousels, Facebook Reels and Stories, TikTok photo posts and privacy, and a YouTube video's title, privacy and playlist.
  • Attach media: upload an image or a short video with alt text, or reuse anything already in your media library.
  • Manage what is already there: see what happened on each network, rewrite a draft, scheduled or failed post, move it to another time, resend only what failed, or delete it.
  • Report results: per-channel numbers, follower counts, posting times and top posts, from 7 days back to everything recorded.

Every plan includes the API key that the MCP server, the REST API and the CLI use. Webhooks come with every plan too.

Tools

The hosted server offers these 16 tools, plus one the upload box uses by itself. The last column is what a tool does to your posts and accounts.

ToolWhat it doesEffect
whoamiNames the iHatePosting login this connection acts for (email and account name), whether it signed in or uses a key; not a social handleReads
list_accountsLists connected social accounts with platform, handle, status and idReads
get_platform_rulesEach network's character limit, media rules, video formats and length, and every option it takes, with the allowed valuesReads
validate_postChecks a post against every network you name, without creating anythingReads
create_postCreates a post: a draft by default, or now or schedule when askedCreates; publishes with now or schedule
list_postsPosts with each network's status and live URL — filter by status and a from/to scheduled-date range, page with cursor, and read total for the real countReads
get_postOne post in full: text, per-network copy and options, media, and each send's result or errorReads
update_postReplaces a draft, scheduled or failed post with what you sendChanges; publishes with now or schedule
reschedule_postMoves a scheduled post to a new date and time; refuses a draftPublishes at the new time
retry_postSends again only what failed, on one network or all of themPublishes
delete_postRemoves iHatePosting's record of a post; a published post needs forceDeletes; never unpublishes
list_mediaYour media library, newest first, with the ids posts attachReads
upload_mediaAdds an image or video to the library and returns its id — from a url (preferred; up to 100 MB, images up to 25 MB) or as base64 (up to 8 MB)Creates a library file
open_upload_widgetShows a file picker in the conversation so the person can upload from their own deviceCreates a library file
get_upload_ticketInternal — the upload box calls this itself for a one-time upload credential. Registered visibility: ["app"], so a host hides it from the model and it is not a tool an agent callsIssues a short-lived credential
list_pinterest_boardsThe Pinterest boards you can pin to, with the board id a pin needsReads
get_analyticsHow posts performed, per connected channel, over a range you chooseReads

Networks

All 14 networks work through the same tools. Name one in platforms (bluesky, x, linkedin, facebook, threads, mastodon, telegram, discord, tumblr, slack, instagram, pinterest, tiktok, youtube), or pass an account id from list_accounts.

NetworkText limitMediaYou must setAlso supports
Bluesky300Up to 4 images; videoMulti-post threads, alt text
X280, weighted (a link counts 23)Up to 4 images; videoMulti-post threads, reply settings
LinkedIn3,000Up to 20 images; videoCompany Pages and personal profiles, first comment
Facebook63,000Up to 10 images; videoPages, Reels, Stories
Instagram2,200Required: up to 10 images or videosReels, Stories, carousels, first comment, collaborators, tagged accounts
Threads500Up to 20 images or videosMulti-post threads, carousels, first comment
Pinterest800Required: an image or a videoA boardPin title and destination link
TikTok2,200Required: a video, or photos (up to 20 per post here)Privacy, send to your TikTok inbox, AI-generated label, comment, duet and stitch settings
YouTube5,000 (description)Required: one videoA title, and made for kids yes or noPrivacy, playlist, tags, category, custom thumbnail
Mastodon500Up to 4 images; videoMulti-post threads, visibility, alt text
Telegram4,096 (1,024 as a caption under media)Up to 10 images; video
Discord2,000Up to 10 images; video
Tumblr4,096Up to 20 images per post; videoTitle, tags
Slack3,000Up to 5 images; video

If you leave them out, create_post fills a YouTube title and a Pinterest pin title from the first line of your text, a Pinterest link from the first URL in it, and YouTube and Tumblr tags from its hashtags. validate_post does not fill them in, so it reports a missing YouTube title as a problem.

What each network accepts, with its main options, is in docs/platforms.md. The option keys a post is likely to need, with their values and defaults, are in the reference the skill loads when it needs it (skills/ihateposting/references/platform-options.md). A post can attach at most 20 media items, whatever a network allows.

Example prompts

  • "What is scheduled to go out this week, and did anything fail?"
  • "Draft this announcement for LinkedIn, Bluesky and X. Give X a shorter version, and check all three before you save."
  • "Turn these notes into a thread for X and Threads and save it as a draft."
  • "Upload this photo with alt text and draft an Instagram post with it. Put the hashtags in the first comment."
  • "Which of my Pinterest boards suits this recipe? Draft a pin to it."
  • "Why did yesterday's LinkedIn post fail?"
  • "How did my posts do over the last 30 days, and which network did well?"

examples/ has ready-made create_post payloads for threads, Reels, carousels, YouTube, Pinterest, TikTok and more. Every one is a draft.

Install

Every agent below signs you in to your iHatePosting account in the browser. None of them needs an API key.

AgentHow it installsHow it connects
Claude (claude.ai, desktop app, Cowork)Customize → Plugins on a paid Claude plan, adding this repository as a marketplaceYou sign in in the browser

| Claude Code | /plugin install from this repository's marketplace | You sign in in the

Only the beginning is shown; read the rest in the repo

Ask PopNx