Instagram MCP Server (also WhatsApp and Messenger)
An MCP server that lets Claude, Cursor, Claude Code and any other MCP client read and reply to Instagram DMs, WhatsApp messages and Facebook Messenger conversations, through the official Meta Business APIs.
Ask your assistant to "find the lead who asked about pricing on Instagram and send them the booking template", and it happens on the real account.
Why this one is different
Most Instagram and WhatsApp MCP servers drive a personal account: a browser automation session, an unofficial bridge, or a reverse engineered mobile API. They break when Meta changes something, and they put the account at risk of being disabled.
This one talks to the official Instagram Messaging API, WhatsApp Cloud API and Messenger Platform, through SetSmart's Meta-approved Business app. Messaging Instagram, WhatsApp or Messenger programmatically is not possible without an approved app, which is why this bridge requires a SetSmart workspace rather than your Instagram password.
That is the tradeoff, stated plainly: it is not self-hostable against your own account, and it needs a SetSmart API key.
Requirements
- Node.js 18 or newer
- A SetSmart workspace with at least one channel connected (Instagram, WhatsApp or Messenger)
- Your workspace API key, from Settings then Integrations
Quick start
Claude Desktop / Claude Code
Add this to your MCP config (claude_desktop_config.json, or .mcp.json for Claude Code):
{
"mcpServers": {
"setsmart": {
"command": "npx",
"args": ["-y", "setsmart-mcp"],
"env": {
"SETSMART_API_KEY": "your-workspace-api-key"
}
}
}
}
Cursor
Same block, in ~/.cursor/mcp.json.
Remote MCP, without this bridge
The SetSmart MCP server is also reachable directly over Streamable HTTP with OAuth, so clients that support remote MCP can skip this package entirely:
https://setsmart.io/api/mcp
Use this bridge when your client only speaks stdio, or when you would rather authenticate with a static API key than an interactive OAuth consent.
Tools
30 tools, grouped by what they touch.
Messaging
Conversations
Contacts
AI control
Scheduling, templates and stats
What it deliberately cannot do
An API key is a long lived static secret, so it gets a restricted surface. These are reachable through interactive OAuth on the remote server, never through this bridge:
- billing and subscription changes
- workspace settings
- connecting or disconnecting a channel
- creating or rewriting AI assistants
- bulk deletion, blacklists, blocked countries
Rotating the key in your SetSmart settings revokes access immediately, on the next request.
Configuration
How it works
This package contains no messaging logic. It is a stdio to Streamable HTTP pipe: your client speaks MCP over stdin and stdout, the bridge forwards each request to the hosted SetSmart MCP server with your key in the Authorization header, and streams the answer back. Around 150 lines, in src/index.js, so you can read all of it before trusting it with an account.
Links
License
MIT