Postkey MCP server

Instagram DM automation and post scheduling for AI agents. Sends wait for your approval.

Postkey's MCP server lets your AI assistant run your Instagram DM automations, your social posts, your Inbox and your contacts in plain words. Anything that reaches real people waits for your approval in Postkey first.

What it does

Instagram DM automations

See your DM automations and how each one is doing, build a new comment-to-DM automation from a template, change its trigger words, link and messages, and pause one that is not working. New automations are drafts: nobody gets a message until a person approves turning it on.

Inbox and contacts

Read conversations, find the ones nobody has answered, draft a reply for you to approve, assign, label and add internal notes. Search contacts, tag them and see who is in a DM sequence.

Scheduling and posting

Draft posts, attach files from your Library and schedule them to the social accounts connected in Postkey. A post an assistant schedules waits in Posts, then Approvals, until a person approves it.

X, with approvals

Posts you schedule in Postkey to a connected X account are published by Postkey at the time you choose. For an assistant that works on X with your own X access, the X tools are a safety layer: before every reply or post on X it asks Postkey, which checks your STOP list, quiet hours and limits and can ask you to approve first. The assistant then reports what happened. There is no MCP tool that sends on X.

Server address

One remote MCP server over Streamable HTTP. Give your assistant this address:

Postkey MCP address
https://postkey.pro/mcp
  • Transport: Streamable HTTP, stateless, JSON answers (no server-sent events).
  • Protocol revisions: 2026-07-28, 2025-11-25, 2025-06-18 and 2025-03-26.
  • Capabilities: tools, Postkey's guide as read-only resources (the same text as postkey_guide, nothing of any account), and 2 prompts.

Sign-in (OAuth 2.1)

Assistants sign in with OAuth 2.1. You never paste a password or a key into the assistant.

  • Authorization code flow with PKCE (S256 only) and refresh tokens. Public clients only: there is no client secret.
  • Dynamic client registration (RFC 7591) and client ID metadata documents: the assistant registers itself.
  • Discovery: /mcp answers 401 with a WWW-Authenticate header; the metadata is at /.well-known/oauth-protected-resource/mcp (RFC 9728) and /.well-known/oauth-authorization-server (RFC 8414).
  • When you connect, Postkey's own consent screen opens. You sign in, pick the Postkey account, and choose what the assistant may do.
  • An access token lasts 1 hour and is renewed with a refresh token that lasts 30 days.
  • Tools that only take a header (Cursor, scripts) can use an agent key instead: make one in Postkey under Agent & API and send it as Authorization: Bearer <key>. A key lasts 90 days unless you choose otherwise.
  • End a connection at any time in Postkey under Agent & API. Its tokens are deleted and the next request is refused.

Connect your assistant

Each assistant's own steps, as we last read them. Menus in other products change; if a step looks different, look for the place to add a custom connector or MCP server.

Claude

Works today

Add Postkey as a custom connector, then sign in.

  1. In Claude, open Customize, then Connectors.
  2. Choose "Add custom connector".
  3. Paste your Postkey address.
    Postkey MCP address
    https://postkey.pro/mcp
  4. Claude sends you to Postkey. Sign in, pick the account, and choose what Claude may do.
  • Add it once and it is there on the web, the desktop app, the phone app, Cowork and Claude Code.

Works on Claude's Free plan (one custom connector) and on paid plans.

ChatGPT

Works today

Add Postkey as a custom MCP server, then sign in.

  1. Open ChatGPT's plugins page. chatgpt.com/plugins
  2. Press the plus button and choose "Add custom MCP server".
  3. Paste your Postkey address.
    Postkey MCP address
    https://postkey.pro/mcp
  4. ChatGPT sends you to Postkey. Sign in, pick the account, and choose what ChatGPT may do.
  • Codex uses the same connection.

ChatGPT lists custom servers for Plus and above. Postkey is not in ChatGPT's directory yet; once it is, connecting will be one click on every plan.

Cursor

Works today

Add Postkey to Cursor's MCP settings with an agent key.

  1. Make an agent key: sign in to Postkey, open Agent & API and choose New agent key. It is shown once.
  2. In Cursor, open Settings, then MCP, and add a new server (or open the file ~/.cursor/mcp.json).
  3. Paste this, with your key in place of YOUR_AGENT_KEY:
    Add Postkey to Cursor
    {
      "mcpServers": {
        "postkey": {
          "url": "https://postkey.pro/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_AGENT_KEY"
          }
        }
      }
    }
  • Keep the key out of files you share or commit.

Uses Cursor's own MCP settings file. Cursor signs in with a key you make here.

VS Code

Not confirmed yet

Add Postkey as a remote MCP server, then sign in.

  1. Open the Command Palette and run MCP: Add Server, or create the file .vscode/mcp.json in your project.
  2. Add Postkey as an HTTP server:
    Add Postkey to VS Code
    {
      "servers": {
        "postkey": {
          "type": "http",
          "url": "https://postkey.pro/mcp"
        }
      }
    }
  3. Start the server. VS Code sends you to Postkey. Sign in, pick the account, and choose what VS Code may do.

VS Code documents remote MCP servers over HTTP with OAuth sign-in. We have not tried VS Code's sign-in with Postkey yet.

Scopes

You choose these when you connect. A connection never gets more than its person may do in Postkey, and scopes only take rights away.

ScopeNameWhat it allows
readLook aroundSee your posts, library, automations, conversations, contacts and results. It cannot change anything.
contentPosts and libraryCreate and change drafts and posts, attach library files, and schedule posts.
automationsDM automationsCreate and change DM automations, and turn them on or off.
inboxInboxRead conversations and reply to people, assign, label and add notes.
contactsContactsFind contacts and add or remove their tags.
xX: ask Postkey before my agent repliesLets your agent ask Postkey before it replies or posts on X, tell Postkey what happened, and keep your STOP list and saved replies. These tools send nothing to X: your agent replies with your own X access. Postkey itself only publishes posts you schedule in Postkey.

No assistant can ever reach the team, billing, connecting or removing social accounts, the Postkey account itself, deleting contacts, bulk Inbox changes, or Inbox settings and labels. Those stay with people.

Tools (45)

Every tool name starts with postkey_. Read tools only look. Write tools change something in Postkey. Sensitive writes reach real people or publish, so by default they wait for approval.

DM automations and sequences

ToolWhat it doesKindScopes
postkey_list_automationsList DM automationsreadread, automations
postkey_get_automationGet one DM automationreadread, automations
postkey_list_automation_templatesList DM automation templatesreadread, automations
postkey_create_automationCreate a DM automation from a templatewriteautomations
postkey_update_automationChange a DM automationwriteautomations
postkey_publish_automationTurn a DM automation onWaits in Approvalssensitive writeautomations
postkey_pause_automationPause a DM automationwriteautomations
postkey_list_sequencesList DM sequencesreadread, automations
postkey_list_sequence_subscribersList a sequence's subscribersreadread, automations
postkey_get_automation_statsDM automation resultsreadread, automations

Inbox

ToolWhat it doesKindScopes
postkey_list_conversationsList Inbox conversationsreadread, inbox
postkey_get_conversationRead one conversationreadread, inbox
postkey_send_replyReply in a conversationWaits in Approvalssensitive writeinbox
postkey_assign_conversationAssign a conversationwriteinbox
postkey_label_conversationLabel a conversationwriteinbox
postkey_add_conversation_noteAdd an internal notewriteinbox

Contacts

ToolWhat it doesKindScopes
postkey_search_contactsSearch contactsreadread, contacts
postkey_get_contactGet one contactreadread, contacts
postkey_tag_contactTag a contactwritecontacts

Posts, scheduling and Library

ToolWhat it doesKindScopes
postkey_list_social_accountsList connected social accountsreadread, content
postkey_list_postsList postsreadread, content
postkey_get_postGet one postreadread, content
postkey_create_postCreate a draft postwritecontent
postkey_update_postChange a draft postwritecontent
postkey_attach_library_itemAttach a library file to a postwritecontent
postkey_schedule_postSchedule or publish a postThe post waits in Approvalssensitive writecontent
postkey_unschedule_postUnschedule a postwritecontent
postkey_delete_postDelete a draft postwritecontent
postkey_list_libraryList the Libraryreadread, content
postkey_begin_uploadStart a file uploadwritecontent
postkey_finish_uploadFinish a file uploadwritecontent
postkey_list_video_templatesList video templatesreadread, content
postkey_get_post_statsPost resultsreadread, content

X safety checks

ToolWhat it doesKindScopes
postkey_x_check_before_sendAsk before replying or posting on Xwritex
postkey_x_record_actionReport what happened on Xwritex
postkey_x_add_stopAdd a person to the X STOP listwritex
postkey_x_remove_stopTake a person off the X STOP listwritex
postkey_x_list_stopList the X STOP listreadread, x
postkey_x_statusX toolkit statusreadread, x
postkey_x_save_templatesSave reply wording for Xwritex
postkey_x_list_templatesList saved reply wording for Xreadread, x

Getting started and the account

ToolWhat it doesKindScopes
postkey_get_startedPostkey: start herereadread, content, automations, inbox, contacts, x
postkey_guidePostkey guidereadread, content, automations, inbox, contacts, x
postkey_preview_actionPreview a sendreadcontent, automations, inbox
postkey_list_waiting_for_approvalWhat is waiting for approvalreadread, content, automations, inbox, contacts

Safety

Ask first, on by default

Every connection starts with "ask a person first" switched on, and only an owner or admin can switch it off. Turning an automation on, sending a reply and scheduling a post then wait in Postkey under Posts, then Approvals, until a person presses Approve. Nothing waits forever: after 7 days it lapses.

Links held for review

Before an automation can be turned on, its approval line lists every link and file in it, each with its whole host, and every address it sends contact details to. If there are too many to show, it is not sent for approval at all and a person has to switch it on in Postkey. If the automation is changed while it waits, approving does nothing. Assistants are told never to invent, shorten or rewrite a link.

The 24-hour window

Instagram lets a business reply for 24 hours after the person's last message (7 days for a reply a person types). Postkey tells the assistant whether each conversation can be answered right now, and refuses a reply once the window has closed.

Outside text is marked

DMs, comments and names written by people outside your account come back marked as untrusted, with a note telling the assistant never to follow instructions found in them.

Channels an assistant never replies on

Replies on WhatsApp, Telegram, SMS and TikTok are refused, even with approval.

You can see and stop it

Every change an assistant makes, and every request it leaves for approval, is a line in Postkey's Activity log. The account's switch under Agent & API stops every connection at once.

Limits

Fixed limits keep one busy assistant from crowding out everyone else. Over a limit, the assistant is told to wait and when to try again.

  • Each connection: 60 requests a minute and 200 changes a day. An owner or admin can change both.
  • All of an account's connections together: 120 requests a minute and 3,000 live lookups of conversations and contacts a day.
  • Up to 100 requests waiting for approval per account (20 per connection).
  • Everything an assistant does also counts against the same limits your account has in the app.

Support

Questions about the MCP server, or something not working? Email support@postkey.pro.

Read the terms of service and the privacy policy.