MCP server for your
AI 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.
- 01
Add the block
Drop this in your client's MCP config. No key, no global install.
json "instantreply": { "command": "npx", "args": ["-y", "@instantreply.co/mcp"] } - 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.
json { "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." } - 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.
text "Find unanswered DMs from today, draft a reply for each, send only after I confirm."
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_guidehow to connect each channel, no key requiredreadlist_conversationslist inbox conversationsreadget_conversationfetch one conversation with last messagereadlist_messagespaginate messages in a conversationreadsend_messagedeliver an outbound replydestructiveassign_conversationroute to a teammatedestructiveclose_conversationmark resolveddestructivelist_contactsfetch contacts and lead stagereadget_contactfetch one contactreadupdate_contactpatch name, email, lead stagedestructivelist_channelslist connected platformsreadset_channel_ai_repliesturn AI DM auto-replies on or off for one channeldestructivelist_commentslist Instagram/Facebook post commentsreadget_commentfetch one tracked commentreadreply_to_commentpost a public reply under a commentdestructiveset_comment_ai_repliesturn AI comment auto-replies on or off org-widedestructiveget_analytics_summarydashboard stats by date rangereadget_usageAPI usage and tier headroomreadlist_templatestemplate statuses, categories, componentsreadget_templatefetch one template by IDreadvalidate_templatecheck category fit and UTILITY coachingreadvalidate_template_draftpreflight new template ideasreadsubmit_templatesubmit a template to Meta for approvaldestructivesubmit_stored_templatesubmit an existing draftdestructivedelete_templateremove obsolete templates from Metadestructivesend_whatsapp_templatetrigger an approved WhatsApp senddestructivetrigger_journeyenroll one phone into a journeydestructivetrigger_journey_batchbulk enroll up to 100 recipientsdestructivevalidate_journey_triggerdry-run phone, journey, metadatareadcheck_journey_statuspoll enrollment delivery statereadlist_journey_historyrecent enrollment and send historyreadexplain_delivery_failureplain-English explanation of a failed sendreadget_developer_onboardingintegration checklist - what is done, what is nextreadget_developer_capabilitiescurrent API key scope mapreadget_developer_limitsrate limits and quota headroomreadrecommend_planplan fit from channels, volume, and team sizereadask_barqhand a task to Barq, the in-app agentdestructivelist_pending_approvalsactions Barq is waiting on you to approvereaddecide_approvalapprove or reject a pending Barq actiondestructivenotify_ownertext the owner an update on WhatsAppdestructiveask_ownerask the owner yes or no on WhatsApp and wait for the answerdestructiveget_owner_answercheck the owner's answer to a questionreadread_owner_messagesread what the owner texted backreadreact_to_messagereact to messagedestructivelist_channel_groupslist channel groupsreadconnect_channelconnect channeldestructivecreate_channel_groupcreate channel groupdestructiveupdate_channel_groupupdate channel groupdestructiveassign_channel_groupassign channel groupdestructivelist_channel_group_knowledgelist channel group knowledgereadadd_channel_group_knowledgeadd channel group knowledgedestructivedelete_channel_group_knowledgedelete channel group knowledgedestructivelist_channel_ai_providerslist channel ai providersreadset_channel_ai_providerset channel ai providerdestructivedelete_channel_ai_providerdelete channel ai providerdestructivepropose_knowledge_entrypropose knowledge entrydestructivepropose_follow_up_rulepropose follow up ruledestructivelist_keyword_automationslist keyword automationsreadcreate_keyword_automationcreate keyword automationdestructiveupdate_keyword_automationupdate keyword automationdestructivedelete_keyword_automationdelete keyword automationdestructiveset_channel_comment_ai_repliesset channel comment ai repliesdestructiveget_comment_automation_settingsget comment automation settingsreadset_comment_keyword_rulesset comment keyword rulesdestructiveupdate_comment_settingsupdate comment settingsdestructivelist_comment_postslist comment postsreadlist_comment_ai_instructionslist comment ai instructionsreadadd_comment_ai_instructionadd comment ai instructiondestructiveupdate_comment_ai_instructionupdate comment ai instructiondestructivedelete_comment_ai_instructiondelete comment ai instructiondestructivelist_knowledgelist knowledgereadadd_knowledge_entryadd knowledge entrydestructiveupdate_knowledge_entryupdate knowledge entrydestructivedelete_knowledge_entrydelete knowledge entrydestructiveget_ai_instructionsget ai instructionsreadupdate_ai_instructionsupdate ai instructionsdestructivelist_knowledge_gapslist knowledge gapsreadteach_knowledge_gapteach knowledge gapdestructivetest_ai_replytest ai replyreadwhatsapp_groups_eligibilitycheck WhatsApp group accessreadlist_whatsapp_groupslist WhatsApp groupsreadcreate_whatsapp_groupcreate WhatsApp groupdestructiveget_whatsapp_group_invite_linkget or reset WhatsApp group invite linkdestructivesend_whatsapp_group_messagesend WhatsApp group messagedestructiveremove_whatsapp_group_participantsremove WhatsApp group participantsdestructiveapprove_whatsapp_group_join_requestsapprove WhatsApp group join requestsdestructiveopen_workspaceopen workspacereadlist_pipeline_leadslist pipeline leadsreadget_pipeline_leadget pipeline leadreadlist_pipeline_stageslist pipeline stagesreadmove_pipeline_leadmove pipeline leaddestructivelist_journeyslist journeysreadget_journeyget journeyreadcreate_journeycreate journeydestructivereplace_journey_stepsreplace journey stepsdestructiveset_journey_statusset journey statusdestructivelist_broadcastslist broadcastsreadget_broadcastget broadcastreadestimate_broadcastestimate broadcastreadcreate_broadcast_draftcreate broadcast draftdestructivepreflight_broadcastpreflight broadcastdestructivelaunch_broadcastlaunch broadcastdestructivelist_lead_magnetslist lead magnetsreadlist_lead_magnet_sourceslist lead magnet sourcesreaddraft_lead_magnetdraft lead magnetdestructivepreview_lead_magnetpreview lead magnetreadpublish_lead_magnetpublish lead magnetdestructivepause_lead_magnetpause 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.jsonSetup guide → - Cursor
~/.cursor/mcp.jsonSetup guide → - Windsurf
~/.codeium/windsurf/mcp_config.jsonSetup guide → - Zed
Zed → Settings → Assistant → Context ServersSetup 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:submitFAQ
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.
The model is ready. The tools are wired.