Instant Reply MCP Server

Connect AI assistants to Instagram, WhatsApp and Messenger conversations, contacts, WhatsApp templates, journeys and delivery diagnostics through Instant Reply.

Documentation

MCP server for yourAI inbox.

Claude Code, Cursor, Windsurf, Zed, and Claude Desktop get direct access to your Instagram DMs, WhatsApp chats, and Messenger inbox - reading conversations, drafting replies, managing the template lifecycle, and debugging journey deliveries through up to 97 tools, 13 prompts, an interactive workspace, and two resource templates. Run one npx command and ask your agent to connect: it pairs itself through a signed setup link, the same device authorization grant gh auth login uses, so no dashboard visit and no copied API key are needed first.

mcp config · pick one

{
  "mcpServers": {
    "instantreply": {
      "command": "npx",
      "args": [
        "-y",
        "@instantreply.co/mcp"
      ]
    }
  }
}

Prefer no install? Claude.ai: Settings → Connectors → Add custom connector → paste https://api.instantreply.co/mcp → sign in. ChatGPT: add it as a connector with developer mode on. The 7-day free trial on yearly plans requires a card; nothing is charged until day 8. Monthly plans have no trial. No key yet? Add the zero-key block, restart the client, and ask it to connect InstantReply. It hands you a code and a link. Already paired? Use the slash commands like /audit_template_cost or /utility_rewrite_loop.

Install · zero-key

Any agent that can run npx can do this.

No dashboard visit, no copied key. The server requests a device code the way gh auth login or a smart-TV app does (RFC 8628, device authorization grant), shows you a link, and picks up the key the moment you approve it in a browser.

  1. 01

    Add the block

    Drop this in your client's MCP config. No key, no global install.
    "instantreply": {
      "command": "npx",
      "args": ["-y", "@instantreply.co/mcp"]
    }
    
    Copy
  2. 02

    Ask it to connect

    Your agent calls start_setup and gets back a code and a link. Open the link, sign up or log in (captcha and consent apply, same as the site), and approve.
    {
      "instructions": "Tell the user to open this link and approve: https://www.instantreply.co/pair/ABCD-2345",
      "code": "ABCD-2345",
      "link": "https://www.instantreply.co/pair/ABCD-2345",
      "expires_in_seconds": 600,
      "device_code": "kx9F2q... (opaque, single use)",
      "poll_interval_seconds": 5,
      "next_step": "Call check_setup with this device_code once approved."
    }
    
    Copy
  3. 03

    Reconnect, then ask

    check_setup confirms the approval and caches the key at ~/.instantreply/config.json. Restart the client once; every npx run after that skips setup.
    "Find unanswered DMs from today,
     draft a reply for each,
     send only after I confirm."
    
    Copy

The setup link expires in 10 minutes and the code is single use. Prefer to manage a key yourself, for CI, Docker, or a shared machine? Generate one from Settings → API Keys and set INSTANTREPLY_API_KEY instead. Read the spec at RFC 8628.

Tools · up to 97

Annotated for safe agents.

Every tool advertises readOnlyHint and destructiveHint. Compliant agents ask before they write.

  • get_connection_guide how to connect each channel, no key requiredread
  • list_conversations list inbox conversationsread
  • get_conversation fetch one conversation with last messageread
  • list_messages paginate messages in a conversationread
  • send_message deliver an outbound replydestructive
  • assign_conversation route to a teammatedestructive
  • close_conversation mark resolveddestructive
  • list_contacts fetch contacts and lead stageread
  • get_contact fetch one contactread
  • update_contact patch name, email, lead stagedestructive
  • list_channels list connected platformsread
  • set_channel_ai_replies turn AI DM auto-replies on or off for one channeldestructive
  • list_comments list Instagram/Facebook post commentsread
  • get_comment fetch one tracked commentread
  • reply_to_comment post a public reply under a commentdestructive
  • set_comment_ai_replies turn AI comment auto-replies on or off org-widedestructive
  • get_analytics_summary dashboard stats by date rangeread
  • get_usage API usage and tier headroomread
  • list_templates template statuses, categories, componentsread
  • get_template fetch one template by IDread
  • validate_template check category fit and UTILITY coachingread
  • validate_template_draft preflight new template ideasread
  • submit_template submit a template to Meta for approvaldestructive
  • submit_stored_template submit an existing draftdestructive
  • delete_template remove obsolete templates from Metadestructive
  • send_whatsapp_template trigger an approved WhatsApp senddestructive
  • trigger_journey enroll one phone into a journeydestructive
  • trigger_journey_batch bulk enroll up to 100 recipientsdestructive
  • validate_journey_trigger dry-run phone, journey, metadataread
  • check_journey_status poll enrollment delivery stateread
  • list_journey_history recent enrollment and send historyread
  • explain_delivery_failure plain-English explanation of a failed sendread
  • get_developer_onboarding integration checklist - what is done, what is nextread
  • get_developer_capabilities current API key scope mapread
  • get_developer_limits rate limits and quota headroomread
  • recommend_plan plan fit from channels, volume, and team sizeread
  • ask_barq hand a task to Barq, the in-app agentdestructive
  • list_pending_approvals actions Barq is waiting on you to approveread
  • decide_approval approve or reject a pending Barq actiondestructive
  • notify_owner text the owner an update on WhatsAppdestructive
  • ask_owner ask the owner yes or no on WhatsApp and wait for the answerdestructive
  • get_owner_answer check the owner's answer to a questionread
  • read_owner_messages read what the owner texted backread
  • react_to_message react to messagedestructive
  • list_channel_groups list channel groupsread
  • connect_channel connect channeldestructive
  • create_channel_group create channel groupdestructive
  • update_channel_group update channel groupdestructive
  • assign_channel_group assign channel groupdestructive
  • list_channel_group_knowledge list channel group knowledgeread
  • add_channel_group_knowledge add channel group knowledgedestructive
  • delete_channel_group_knowledge delete channel group knowledgedestructive
  • list_channel_ai_providers list channel ai providersread
  • set_channel_ai_provider set channel ai providerdestructive
  • delete_channel_ai_provider delete channel ai providerdestructive
  • propose_knowledge_entry propose knowledge entrydestructive
  • propose_follow_up_rule propose follow up ruledestructive
  • list_keyword_automations list keyword automationsread
  • create_keyword_automation create keyword automationdestructive
  • update_keyword_automation update keyword automationdestructive
  • delete_keyword_automation delete keyword automationdestructive
  • set_channel_comment_ai_replies set channel comment ai repliesdestructive
  • get_comment_automation_settings get comment automation settingsread
  • set_comment_keyword_rules set comment keyword rulesdestructive
  • update_comment_settings update comment settingsdestructive
  • list_comment_posts list comment postsread
  • list_comment_ai_instructions list comment ai instructionsread
  • add_comment_ai_instruction add comment ai instructiondestructive
  • update_comment_ai_instruction update comment ai instructiondestructive
  • delete_comment_ai_instruction delete comment ai instructiondestructive
  • list_knowledge list knowledgeread
  • add_knowledge_entry add knowledge entrydestructive
  • update_knowledge_entry update knowledge entrydestructive
  • delete_knowledge_entry delete knowledge entrydestructive
  • get_ai_instructions get ai instructionsread
  • update_ai_instructions update ai instructionsdestructive
  • list_knowledge_gaps list knowledge gapsread
  • teach_knowledge_gap teach knowledge gapdestructive
  • test_ai_reply test ai replyread
  • whatsapp_groups_eligibility check WhatsApp group accessread
  • list_whatsapp_groups list WhatsApp groupsread
  • create_whatsapp_group create WhatsApp groupdestructive
  • get_whatsapp_group_invite_link get or reset WhatsApp group invite linkdestructive
  • send_whatsapp_group_message send WhatsApp group messagedestructive
  • remove_whatsapp_group_participants remove WhatsApp group participantsdestructive
  • approve_whatsapp_group_join_requests approve WhatsApp group join requestsdestructive
  • open_workspace open workspaceread
  • list_pipeline_leads list pipeline leadsread
  • get_pipeline_lead get pipeline leadread
  • list_pipeline_stages list pipeline stagesread
  • move_pipeline_lead move pipeline leaddestructive
  • list_journeys list journeysread
  • get_journey get journeyread
  • create_journey create journeydestructive
  • replace_journey_steps replace journey stepsdestructive
  • set_journey_status set journey statusdestructive
  • list_broadcasts list broadcastsread
  • get_broadcast get broadcastread
  • estimate_broadcast estimate broadcastread
  • create_broadcast_draft create broadcast draftdestructive
  • preflight_broadcast preflight broadcastdestructive
  • launch_broadcast launch broadcastdestructive
  • list_lead_magnets list lead magnetsread
  • list_lead_magnet_sources list lead magnet sourcesread
  • draft_lead_magnet draft lead magnetdestructive
  • preview_lead_magnet preview lead magnetread
  • publish_lead_magnet publish lead magnetdestructive
  • pause_lead_magnet pause lead magnetdestructive

Want the agent to text you on WhatsApp and ask before it deploys? See Agent Line.

Prompts · 13

Slash commands for the work you already do.

MCP clients expose these prompts as reusable commands. Pair them with the downloadable InstantReply skill packs so the agent knows the approval loop, Utility rewrite rules, owner growth plays, integration runbooks, and destructive-action guardrails.

/setup_instantreply

Pair your workspace and connect your channels.

/add_your_own_integration

Connect channels or your own reply webhook.

/draft_reply

Draft an answer in the team voice from the last three replies.

/summarize_conversation

Three sentences. Customer goal, current state, what unblocks them.

/find_urgent_unanswered

Rank open conversations by likelihood of churn.

/weekly_inbox_digest

Wins, regressions, response-time deltas. Paste-ready.

/suggest_macros

Surface repeated answers worth turning into canned replies.

/escalation_note

Internal handoff note. Risk first, context second.

/audit_template_cost

Check every pending template - flag MARKETING phrases, estimate savings if reworded as UTILITY.

/utility_rewrite_loop

Rewrite, submit, poll, and report on templates that legitimately qualify as UTILITY.

/journey_recommendation

Turn product events into trigger names, variables, journeys, and delivery checks.

/image_to_whatsapp_template_brief

Use an image or product asset to propose compliant WhatsApp template briefs.

/debug_last_failure

Explain the last delivery failure in plain English and suggest the next step.

Agent skills

Download the operating playbooks.

Install the MCP server for live tools, then add these skills to teach the agent how to run the business workflows: growth audits, WhatsApp policy, template creative, and developer integration.

  • WhatsApp OperatorRun template approval, Utility rewrites, polling, cleanup, sends, and delivery debugging.Download →
  • Business Owner GrowthFind missed leads, no-shows, support leaks, review loops, and the next useful automation.Download →
  • WhatsApp Best PracticesReview templates, opt-ins, journeys, categories, quality risks, and approval loops.Download →
  • API IntegrationGuide developers through scopes, webhooks, retries, idempotency, journeys, and delivery tracking.Download →
  • Creative StudioTurn offers, customer events, and images into category-safe WhatsApp template briefs.Download →

Clients

Drop the block. Pick your editor.

  • Claude Code.mcp.json (project root) Setup guide →
  • Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json Setup guide →
  • Cursor ~/.cursor/mcp.json Setup guide →
  • Windsurf ~/.codeium/windsurf/mcp_config.json Setup guide →
  • Zed Zed → Settings → Assistant → Context Servers Setup guide →
  • ChatGPT Actions Custom GPT → Actions → paste route schemas from /api-docs (no public OpenAPI import) Setup guide →
  • Claude.ai (remote) Settings → Connectors → Add custom connector → https://api.instantreply.co/mcp
  • Any MCP host stdio transport · npx -y @instantreply.co/mcp

WhatsApp workflows · conversational

Ask instead of clicking.

The MCP server exposes the same template-lifecycle and delivery-debug APIs as conversational tools. You can drive the full workflow - validate, reword, submit, debug - without opening Meta Business Manager or reading error codes.

Template UTILITY coaching

Ask: "Check my pending templates and tell me which ones qualify as UTILITY." The validate_template tool returns flagged marketing phrases and category-safe rewrites. Utility templates are often cheaper than Marketing when the message is truly transactional.

Submit to Meta

Once the coaching is clear, ask: "Fix the flagged phrases and submit." The submit_template tool routes the corrected template to Meta and returns the approval status.

Explain a delivery failure

Ask: "Why did the last campaign message fail for contact X?" The explain_delivery_failure tool returns what happened, whether the fault is ours or Meta's, and whether a retry is safe.

Developer onboarding checklist

Ask: "What integration steps are still incomplete?" The get_developer_onboarding tool returns a checklist of which steps are done and which are not - connect channel, validate first template, register webhook.

Permissions · scopes

The key controls what the agent can do.

Every MCP tool maps to an API key scope. Read tools require conversations:read. Write tools require messages:send. Template tools require templates:write to validate and templates:submit to submit.

Use a read-only key for agent sessions that should only observe. Use a full-scope key for agents that send messages or submit templates. Both key types work with the same server config - just swap the key value.

Zero-key pairing and the remote connector sign-in mint a key with every resource scope, never the wildcard or admin scopes. Your plan still applies: Free and Creator workspaces stay read-only on every request. Want a narrower agent? Generate a dedicated key from the dashboard with only the scopes it needs.

Every tool advertises readOnlyHint and destructiveHint so compliant MCP clients ask for confirmation before any write action.

# Read-only agent: observe and debug
IR_API_KEY=ir_live_...  # scopes: conversations:read

# Full agent: validate, submit, send
IR_API_KEY=ir_live_...  # scopes: conversations:read,
                        #   messages:send,
                        #   templates:write,
                        #   templates:submit

FAQ

What agents and developers actually ask.

Do I need an API key before I can use this MCP server?

No. Add the config block with no env vars and ask your agent to connect. It calls start_setup, which returns a short code and a link using the same OAuth 2.0 Device Authorization Grant flow gh auth login uses (RFC 8628). Approve it in a browser, then check_setup picks up the key automatically and caches it at ~/.instantreply/config.json. Restart the MCP connection once and the full tool set loads.

How many tools, prompts, and resources does the server expose?

Up to 97 tools once paired - authenticated tools covering conversations, contacts, templates, journeys, and delivery debugging, including get_connection_guide, which needs no key and is always on. Before pairing there are only 3 setup/guide tools. Remote MCP plans omit the 3 hosted AI tools; directory deployments omit 3 further tools. There are also 13 prompts (slash commands like /audit_template_cost), an interactive workspace resource, and 2 resource templates, conversation and contact. Every tool declares readOnlyHint and destructiveHint so a compliant MCP client can ask before it writes or deletes anything.

Which plans include the MCP server?

Free gets read-only MCP tools. Creator does not include MCP. The public GitHub repository is the MIT-licensed client only; the hosted server and AI require an eligible plan. MCP Starter is $12/month ($120/year), MCP Growth $29/month ($290/year), and MCP Pro $89/month ($890/year). The MCP plans are built for bringing your own agent and model: they include the MCP tools but no InstantReply-hosted AI replies. Every Developer plan (Dev Hobby, Dev Pro, Dev Scale) and every paid Business plan (Starter, Growth, Pro) includes the full tool set, with priority MCP routing on Dev Scale and Pro.

What's the difference between a read-only key and a full-scope key?

A read-only key (conversations:read) can list and read conversations, contacts, analytics, templates, and usage - nothing it does changes data. Sending a message needs messages:send. Validating and submitting templates need templates:write and templates:submit. Zero-key pairing and the remote connector sign-in mint a key with every resource scope (never the wildcard or admin scopes), so template tools work after pairing. Free and Creator workspaces are still limited to read-only on every request.

Does this work with ChatGPT?

Yes, two ways. Add the remote connector URL (https://api.instantreply.co/mcp) in ChatGPT's connectors with developer mode on and sign in, or build a Custom GPT action from the route schemas on the REST catalog (the production API does not serve a public OpenAPI file). The local stdio server is for terminal clients like Claude Code, Cursor, Windsurf, and Zed.

Can I connect without installing anything?

Yes. In Claude.ai go to Settings → Connectors → Add custom connector, paste https://api.instantreply.co/mcp, and sign in to InstantReply. Approve the consent screen, which shows who is asking and lets you revoke access any time in Settings → API keys. ChatGPT works the same way through connectors in developer mode. In Claude Code run: claude mcp add --transport http instantreply https://api.instantreply.co/mcp, then type /mcp to sign in. In Cursor add {"mcpServers": {"instantreply": {"url": "https://api.instantreply.co/mcp"}}} to ~/.cursor/mcp.json, then connect it in Cursor Settings → MCP. In Codex run: codex mcp add instantreply --url https://api.instantreply.co/mcp, then codex mcp login instantreply to sign in. Yearly plans start with a 7-day free trial of the selected plan, card required, and nothing is charged until day 8. Monthly plans have no trial.

Will the agent send a message or delete something without asking me first?

Every write and destructive tool - send_message, submit_template, delete_template, and the rest - advertises destructiveHint: true in its MCP tool metadata. A compliant client prompts for confirmation before running it. The server executes the call when the client sends it; it does not silently auto-send on its own.