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 34 tools, 11 prompts, and two resources. 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 free trial gives full access. 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 · 34
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 replywriteassign_conversationroute to a teammatewriteclose_conversationmark resolveddestructivelist_contactsfetch contacts and lead stagereadget_contactfetch one contactreadupdate_contactpatch name, email, lead stagewritelist_channelslist connected platformsreadget_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 approvalwritesubmit_stored_templatesubmit an existing draftwritedelete_templateremove obsolete templates from Metadestructivesend_whatsapp_templatetrigger an approved WhatsApp sendwritetrigger_journeyenroll one phone into a journeywritetrigger_journey_batchbulk enroll up to 100 recipientswritevalidate_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 agentwritelist_pending_approvalsactions Barq is waiting on you to approvereaddecide_approvalapprove or reject a pending Barq actionwrite
Prompts · 11
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.
- /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
~/.claude/mcp.jsonSetup guide → - Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.jsonSetup guide → - Cursor
~/.cursor/mcp_servers.jsonSetup guide → - Windsurf
~/.codeium/windsurf/mcp_config.jsonSetup guide → - Zed
Zed → Settings → Assistant → Context ServersSetup guide → - ChatGPT Actions
Custom GPT → Actions → Import OpenAPISetup 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 grants a starter scope set: conversations (read and write), contacts (read and write), message sends, and analytics. Template submission needs templates:write and templates:submit, which aren't in that starter set - generate a dedicated key from the dashboard for that workflow.
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?
- 34 tools once paired - 33 authenticated tools covering conversations, contacts, templates, journeys, and delivery debugging, plus get_connection_guide, which needs no key and is always on. There are also 11 prompts (slash commands like /audit_template_cost) and 2 resource types, 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. 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 grants a starter scope set (conversations, contacts, message sends, analytics); template submission needs a dedicated key generated from the dashboard.
- 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 import the OpenAPI spec as a Custom GPT action through REST API Actions. 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 Cursor or Claude Code run: claude mcp add --transport http instantreply https://api.instantreply.co/mcp. New workspaces start on a free trial with full access, no card required.
- 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.