Model Context Protocol

Plug your social into any AI agent

The entire API, exposed as a hosted MCP server (Streamable HTTP). Point Claude, OpenClaw, Hermes, Cursor, ChatGPT or Grok — any MCP-capable agent — at one URL with a workspace key, and it can list accounts, draft, schedule, publish and read analytics. No install, no SDK.

Connect in one line

Auth: send your key as the X-Api-Key header (Claude Desktop, Cursor, Claude Code). Clients that only take a URL — Claude.ai's "Add custom connector", ChatGPT, Grok — can't set headers, so append ?key=sk_live_xxx to the URL and leave the OAuth fields blank.

Use a dedicated, scoped key for URL-based connectors. You can revoke it any time from the dashboard (Developer → API keys) and it stops working immediately — every request re-checks the key, so there's no cache or delay.

Claude Desktop / Cursor / Windsurf
{
  "mcpServers": {
    "social-by-idm": {
      "type": "streamable-http",
      "url": "https://social-api.instantdm.com/mcp",
      "headers": { "X-Api-Key": "sk_live_xxx" }
    }
  }
}
Claude Code (CLI)
claude mcp add --transport http social-by-idm https://social-api.instantdm.com/mcp \
  --header "X-Api-Key: sk_live_xxx"
Claude.ai · ChatGPT · Grok (URL only — no headers)
https://social-api.instantdm.com/mcp?key=sk_live_xxx

16 tools — full API parity

Every tool hits the same publish pipeline the dashboard uses. Keys are workspace-scoped; a tool whose scope the key lacks returns 403.

Accounts

list_accounts List the social accounts connected in your workspace, with platform and handle. accounts:read

Posts

create_post Schedule or publish a post — text, image, carousel, video, reel, story, thread, article or document — to one or more accounts, with per-platform captions and times. posts:write
update_post Edit a scheduled post or reschedule it, and activate a draft. posts:write
get_post Fetch a post and its per-platform targets. posts:read
get_post_status Check whether a post is still waiting or has published — per platform, with permalinks. posts:read
list_posts List posts in the workspace (drafts, scheduled, published). posts:read
delete_post Cancel or delete a post created through us. posts:write

Native posts

list_platform_posts List native posts straight from a platform — including ones not created here. On Instagram, Facebook, X & Pinterest each post includes mediaUrl (the downloadable video/image file) for repurposing; TikTok/YouTube return null (no downloadable file). posts:read
delete_platform_post Delete a native post off the platform by its platform post id (works for posts not created here). posts:write

Media

upload_media_from_url Pull an image or video from a URL into your media library to attach to posts. media:write
create_upload_url Get a presigned URL to upload a LOCAL file (no public URL needed). Returns media_id + upload_url; PUT the bytes to it, then call complete_upload. media:write
complete_upload Mark a presigned upload complete after PUTting the bytes, returning the media_id to attach to a post. media:write
list_media List media assets in the workspace. media:read
delete_media Delete a media asset. media:write

Analytics

get_analytics Workspace analytics — totals, status/type breakdown, plus live per-account and per-platform insights. analytics:read

Proxy

platform_request Call a connected account’s native platform API directly — we inject the OAuth token. Give account_id, method and a relative path. Reach endpoints we don’t wrap. (X/Twitter disabled.) platform:proxy

Hand your agent the keyboard

Mint a scoped key in the dashboard, paste the config, and your agent posts.