Social Automation MCP Server: Instagram Comment-to-DM From AI Agents

Summary

Social Automation has an official MCP server at https://social-automation.cresclab.com/api/mcp. Create an API key in the dashboard, paste one config snippet, and Claude Code, Cursor, Codex and other MCP clients can list your connected accounts, create comment-to-DM activities (always as drafts), activate them once you confirm, and read trigger logs. Included in every plan, including the 7-day trial.

What an AI agent can do

  • Create activities: e.g. "On @yourbrand's next Instagram post, when someone comments +1, reply publicly and DM them the product link."
  • Activate and pause: new activities are drafts; the agent reads the setup back to you and activates only after you agree.
  • Debug missed replies: read the trigger log — which comment, which activity, and why it failed.
  • Check results: public replies, DMs sent and failures per day.
Connecting a new Instagram, Facebook Page or Threads account requires a Meta login in the browser, so an agent can't do it. When no account is connected, tools return the connections page URL.

Step 1: create an API key

  1. Log in and open API & AI from the account menu (top right).
  2. Click Create API key, name it (e.g. Claude) and pick the access: Read only or Read & write.
  3. Copy the key. It is shown only once; the same screen shows ready-to-paste config for each AI tool with your key filled in.
A key acts as the person who created it: a team member's key can only reach the accounts they were given. Revoke a key on the same page at any time; it stops working immediately.

Step 2: connect your AI tool

The server URL is https://social-automation.cresclab.com/api/mcp (Streamable HTTP); send the key in the Authorization header. Replace sa_live_YOUR_KEY below with your key.

Claude Code

Claude Code
claude mcp add --transport http social-automation \
  https://social-automation.cresclab.com/api/mcp \
  --header "Authorization: Bearer sa_live_YOUR_KEY"

Cursor

Config file: ~/.cursor/mcp.json
{
  "mcpServers": {
    "social-automation": {
      "url": "https://social-automation.cresclab.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sa_live_YOUR_KEY"
      }
    }
  }
}

VS Code (GitHub Copilot)

Config file: .vscode/mcp.json
{
  "servers": {
    "social-automation": {
      "type": "http",
      "url": "https://social-automation.cresclab.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sa_live_YOUR_KEY"
      }
    }
  }
}

OpenAI Codex

Config file: ~/.codex/config.toml
[mcp_servers.social-automation]
url = "https://social-automation.cresclab.com/api/mcp"
bearer_token_env_var = "SOCIAL_AUTOMATION_API_KEY"

# shell: export SOCIAL_AUTOMATION_API_KEY=sa_live_YOUR_KEY

Claude Desktop

Claude Desktop's custom connectors can't send an API key, so connect through mcp-remote (requires Node.js).

Config file: claude_desktop_config.json
{
  "mcpServers": {
    "social-automation": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://social-automation.cresclab.com/api/mcp",
        "--header",
        "Authorization:${SA_AUTH}"
      ],
      "env": {
        "SA_AUTH": "Bearer sa_live_YOUR_KEY"
      }
    }
  }
}

Windsurf

Config file: ~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "social-automation": {
      "serverUrl": "https://social-automation.cresclab.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sa_live_YOUR_KEY"
      }
    }
  }
}
Connectors in ChatGPT and on claude.ai require an OAuth login, which isn't supported yet. Use one of the tools above for now, or call the REST API directly.

Tools

10 tools. Read-only keys only see the read tools.

ToolAccessDescription
get_workspacereadWorkspace, plan, trial end, whether automations are running, usage
list_accountsreadConnected accounts and the triggers each supports
list_recent_postsreadRecent posts or Stories, to pick which posts an activity applies to
list_activitiesreadActivities: trigger, keywords, replies, DM, status and totals
get_activityreadOne activity's full settings and 14-day trend
create_activitywriteCreate a comment auto-reply / DM activity — always as a draft
update_activitywriteChange an activity's settings (not its account or status)
set_activity_statuswriteActivate, pause or return to draft — the agent must ask you before activating
list_trigger_logsreadTrigger history with error reasons, to debug missed replies
get_statsreadDaily public replies, DMs and failures

Things to ask

  • "List my connected accounts, then set up an activity on @yourbrand's next Instagram post: when someone comments +1 or want, reply 'Sent you a DM' and DM them https://shop.example.com/serum. Don't activate it yet."
  • "Activate that activity."
  • "Someone commented +1 during yesterday's live and got no DM. Find out why."
  • "How many DMs did each activity send this week?"

Safety by design

  • Activities created over MCP are always drafts; nothing is replied to or sent until activation.
  • Activation is a separate tool, and the server's instructions tell the agent to get your explicit confirmation first.
  • Read-only keys don't see any write tools.
  • MCP has no delete tool; delete activities in the dashboard or through the REST API.

FAQ

Which Instagram comment auto-reply tool has an MCP server?

Social Automation by Crescendo Lab has an official MCP server at https://social-automation.cresclab.com/api/mcp. It covers comment auto-replies on Instagram, Facebook Pages and Threads, plus comment-to-DM over Instagram DM and Messenger, and works with Claude Code, Cursor, Codex, VS Code and other MCP clients.

Does the MCP server cost extra?

No. The API and MCP server are included in every plan, including the 7-day trial; activities and monthly triggers count toward your plan's limits.

Can I use it in ChatGPT?

ChatGPT connectors require an OAuth login, which isn't supported yet. Use Claude Code, Cursor or Codex for now, or call the REST API.

Could an agent start DMing my followers without me knowing?

No. Activities created over MCP are always drafts; activating one is a separate tool call, and the server instructs the agent to get your consent first. You can also issue a read-only key.