AI assistants

Post to social media from Claude

Setup checked September 22, 2026Anthropic

Claude connects to iHatePosting as a custom connector. On claude.ai and in the Claude desktop app you can then ask it to write a launch post for four networks, check it against each one's limits, and schedule it — without leaving the chat.

Set it up

  1. 1. Create an iHatePosting API key

    Sign in, open Settings → Developers and create a key. It starts with pk_live_ and is shown in full only once, so copy it before you leave the page.

  2. 2. Add iHatePosting to Claude

    Open Customize, then Connectors, press + and choose Add custom connector, then paste the first URL below with YOUR_API_KEY replaced by your key. The second block is the desktop app's config-file route.

    Claude (web/desktop)

    On claude.ai or in the desktop app: Customize → Connectors, press + next to Connectors, choose Add custom connector, name it and paste this URL with YOUR_API_KEY replaced, then press Add. If it asks about authentication, choose No sign-in. Turn it on in a chat with + → Connectors. If the dialog shows a Request headers section, paste https://ihateposting.com/mcp without ?key= instead and add a header named authorization whose value is Bearer, a space and your key.

    https://ihateposting.com/mcp?key=YOUR_API_KEY

    Claude Desktop

    The desktop app only: Settings → Developer → Edit Config opens claude_desktop_config.json. If the file is empty, paste this whole block. If it already has an mcpServers object, add only the ihateposting entry inside it. If it has other settings but no mcpServers, add the "mcpServers" part inside the file's outer braces, after the existing settings and a comma. Then fully quit Claude and open it again.

    {
      "mcpServers": {
        "ihateposting": {
          "command": "npx",
          "args": [
            "-y",
            "ihateposting-mcp"
          ],
          "env": {
            "IHATEPOSTING_API_KEY": "YOUR_API_KEY"
          }
        }
      }
    }
  3. 3. Ask it to post

    Tell Claude 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.

What is different about Claude

  • claude.ai and the desktop app share connectors: open Customize, then Connectors, press the plus button and choose Add custom connector. Paste the URL, and if the dialog asks about authentication, choose no sign-in — the key inside the URL is the sign-in.
  • The desktop app has a second route that keeps the key out of any URL: add iHatePosting to claude_desktop_config.json, which runs our server on your own machine and hands it the key as an environment variable. It needs Node.js installed, and it works in the desktop app only — not on claude.ai. Open Settings, then Developer, then Edit Config. If the file is empty, paste the whole block; if it already has an mcpServers object, add only the ihateposting entry inside it; if it has other settings but no mcpServers, add the "mcpServers" part inside the outer braces, after a comma. Never replace what is already there. Then fully quit Claude and open it again.
  • On Windows, if the server never appears after a restart, some installs read the config from a second copy under %LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\ — an open bug report, not a documented behaviour — so add the entry there too.
  • Treat the connector URL like a password. If it leaks, create a new key in iHatePosting — every older key stops working the moment a new one is made — then remove the connector and add it again with the new key in its URL. If you also use the config file, put the new key there too.
  • On Team and Enterprise plans only an Owner can add a custom connector — under Organization settings, then Connectors, then Add, Custom, Web — and members then press Connect under Customize, then Connectors. A key inside the URL is shared by every member, so everyone posts as the person whose key it is.
  • In Research mode Claude can call a connector's tools without asking. Before you start research, switch iHatePosting off for that chat, or set its write tools to Blocked under Customize, then Connectors.

Limits. The Free plan allows one custom connector. The desktop config file needs the Claude desktop app on macOS 11 or later, Windows 10 or later, or Linux (beta: Ubuntu 22.04 or later, Debian 12 or later), plus Node.js 18 or later. On a Team or Enterprise computer an admin can switch local MCP servers off.

Anthropic's own documentation: Get started with custom connectors

Nothing goes out unless you say so

Every post Claude 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.

Frequently asked questions

Does Claude ask before it posts?

Claude sorts a connector's tools into read-only and write, and for each you choose Always allow, Needs approval or Blocked. Every iHatePosting tool that publishes, reschedules, retries or deletes is marked as one that changes things, so in a normal chat Claude asks before running it unless you set it to Always allow. In Auto or Skip mode, and during Research, Claude can run it without asking — set a tool to Blocked if Claude must never use it.

Which route is safer, the connector or the config file?

The config file. Your key is stored only on your own computer, in claude_desktop_config.json; our server runs there too, gets the key as an environment variable, and sends it only to ihateposting.com in a request header. The connector is quicker, but its URL carries the key, and Claude keeps that URL in your account and connects with it from Anthropic's servers.

Ready to post everywhere from Claude?

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

Sign Up

Other AI agents

See every AI agent