VS Code and GitHub Copilot + iHatePosting

Post to social media from VS Code and GitHub Copilot

Connect VS Code and GitHub Copilot to iHatePosting and ask it to write, schedule and publish posts to 15 social networks. iHatePosting's hosted MCP server gives VS Code and GitHub Copilot 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.

Add iHatePosting to VS Code's .vscode/mcp.json and post to 15 social networks from Copilot Chat, signing in with no API key. 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 editorsMicrosoft

GitHub Copilot in VS Code can use iHatePosting's hosted server from a .vscode/mcp.json file that holds no secret: VS Code signs you in to iHatePosting in your browser, so there is no key to keep, and the file is safe to commit alongside your code.

How do I connect iHatePosting to VS Code and GitHub Copilot?

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

  1. 1Step 1

    Add iHatePosting to VS Code and sign in

    Paste this into .vscode/mcp.json in your project; if the file already has a servers object, add only the ihateposting entry inside it. Save the file and press Start above the ihateposting entry. VS Code asks to let the server sign in to iHatePosting: choose Allow, and if it asks about opening the page, choose Trust https://ihateposting.com in that list. Your browser opens: sign in to iHatePosting and press Allow. There is no API key to create, paste or keep.

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

    Ask it to post

    Tell VS Code and GitHub Copilot 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. Add to .vscode/mcp.json in your project root. VS Code asks for your key once and remembers it. In Chat, set the session target to Local. Your key does not go in this file.

VS Code and GitHub Copilot — API key
{
  "servers": {
    "ihateposting": {
      "type": "http",
      "url": "https://ihateposting.com/mcp?client=vscode",
      "headers": {
        "Authorization": "Bearer ${input:ihateposting-key}"
      }
    }
  },
  "inputs": [
    {
      "id": "ihateposting-key",
      "type": "promptString",
      "description": "iHatePosting API key (pk_live_…)",
      "password": true
    }
  ]
}

What is different about VS Code and GitHub Copilot

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

VS Code's file uses servers as its top-level key, not mcpServers like most other editors — a block copied from a Cursor setup will not load here.

The sign-in block holds no key, so .vscode/mcp.json is safe to commit. When the server shows Running above its entry, open Copilot Chat in agent mode: the iHatePosting tools are in its tools list.

VS Code starts servers from .vscode/mcp.json only in a trusted folder. If the folder is open in Restricted Mode, VS Code first asks you to trust the workspace.

The sign-in was run with Chat's session target set to Local. On the API key route Local is required: VS Code's documentation says it passes servers from .vscode/mcp.json to a Copilot session except those that need input, such as the key prompt.

To take a sign-in back, open Settings → Developers → Connected apps in iHatePosting and press Disconnect. It ends VS Code's access and nothing else, and no key changes.

On the API key route, the key is asked for once per project, when the server first starts. Because the input is marked as a password, VS Code stores it encrypted, not as plain text, and never writes it into the file.

On the API key route, the Command Palette works too: run MCP: Add Server..., choose HTTP (HTTP or Server-Sent Events), paste https://ihateposting.com/mcp as the URL, name it ihateposting, and pick Workspace. If VS Code first offers Add to Current Agent Session, choose Install Server Locally... instead. That route adds no key, so add the headers and inputs blocks from the API key snippet to the file it opens, then restart the server.

On the API key route, if you close the key prompt without entering a key, VS Code still starts the server without a working key, and every tool fails with iHatePosting API 401. Run MCP: List Servers, pick ihateposting and choose Restart Server to be asked again.

To change a saved key, open .vscode/mcp.json, hover the ********** next to the input's id and choose Edit, or choose Clear and VS Code asks again on the next start.

Limits. Works on Copilot Free, Student, Pro, Pro+ and Max. On Copilot Business and Enterprise an admin must switch on the MCP servers in Copilot policy, which is off by default. An admin can also limit which servers are allowed, or make new chats use the Copilot target instead of Local.

Microsoft's own documentation: Add and manage MCP servers in VS Code

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

Nothing goes out unless you say so

Every post VS Code and GitHub Copilot 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 VS Code and GitHub Copilot as tools, so it can draft, check and schedule without you opening a dashboard.

How VS Code and GitHub Copilot uses it

  • You add the connector once — by signing in, or with a key you create
  • VS Code and GitHub Copilot 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 VS Code and GitHub Copilot already has
tools VS Code and GitHub Copilot 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 to use iHatePosting in VS Code?

No. Add the sign-in block to .vscode/mcp.json, press Start, choose Allow and sign in to iHatePosting in your browser. The API key route is still on this page, under Advanced, if you would rather use a key.

Is it safe to commit .vscode/mcp.json?

Yes. The sign-in block holds no key. On the API key route the file holds none either: VS Code asks for the key the first time the server starts, stores it encrypted, and never writes it into the file.

Why won't a config copied from Cursor load?

VS Code's file uses servers as its top-level key, not mcpServers like most other editors.

Why can't Copilot use iHatePosting?

Check that the server shows Running above its entry in .vscode/mcp.json, and set Chat's session target to Local: the sign-in was tested there, and the API key route needs it. On Copilot Business and Enterprise an admin must also switch on MCP servers in Copilot policy.

How do I change the saved key?

On the API key route: open .vscode/mcp.json, hover the ********** next to the input's id and choose Edit, or choose Clear and VS Code asks again the next time the server starts.

Is the VS Code and GitHub Copilot 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 VS Code and GitHub Copilot 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 VS Code and GitHub Copilot 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 VS Code and GitHub Copilot schedules the post for then. iHatePosting reads the time in your account's timezone, and you can ask VS Code and GitHub Copilot to move a scheduled post to a new time.

One connection reaches every network

Connect your accounts in iHatePosting once. From then on VS Code and GitHub Copilot 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 VS Code and GitHub Copilot?

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

Sign Up