Give an agent the keys to ManyChat.
It already knows the rules.

Open source MCP server and CLI. Your agent reads leads, qualifies, replies and follows up. Every send is checked before it leaves.

  • AGPL-3.0
  • SELF-HOST FREE

What your agent can do

Lead operations, not API calls.

Your agent works the account the way an operator would.

Find a lead by email, phone or name

Read their context tags, custom fields, last interaction

Qualify and tag write the segment back to ManyChat

Update fields one at a time, or up to 20 in bulk

Trigger a flow hand off to automation you already built

Reply and follow up only after the messaging window checks out

Recover a cold lead tag them and wait for a fresh window — no promo DM after 24 hours

Hand off to a human tag and stop sending, instead of guessing

  • Instagram
  • Messenger
  • WhatsApp
  • TikTok
  • Telegram
  • SMS
  • Email

Install

Pick your agent.

Copy the prompt. Your agent wires the MCP server, then asks for your ManyChat key and writes it to the right file — never back into the chat.

Claude Code

Connect the ManyChat MCP server to Claude Code so I can operate my ManyChat account from this agent.

Source: https://github.com/WIZNEOAI/Manychat-MCP
npm package: mcp-manychat
Landing: https://mc-mcp.wizneo.org
llms.txt: https://mc-mcp.wizneo.org/llms.txt

Open-source CLI + MCP runtime. The agent finds leads, tags, updates fields, triggers flows, and sends — with Meta messaging-policy checks before every send.

Do this:
1. Install/configure the MCP server for Claude Code using the local stdio transport:
   npx -y mcp-manychat mcp serve --transport stdio
2. Put that config in `.mcp.json` in this repo, or the user-level Claude MCP list.
3. I will give you the ManyChat API key when you ask. Generate it in ManyChat: Settings → API → Generate your API Key (Pro account). It is shown once.

Tools I expect after connect: find_subscriber_by_email, find_subscriber_by_phone, find_subscriber_by_name, get_subscriber, add_tag_to_subscriber, set_custom_field, set_custom_fields_bulk (max 20 fields), send_flow, send_text_message, send_content, validate_message. There is no recover_lead tool — cold recovery is tag + wait for a fresh 24h window, then send_flow or send_text_message.

Credential rules:
- Ask me for the ManyChat API key only when you are about to write the config.
- Write the key into the env field of that config (or ~/.hermes/.env for Hermes). Never print the key. Never paste it back into this chat. Never write it into a markdown file, README, issue, or git commit.
- After saving, tell me the file path you wrote and confirm tools loaded. validate_message must be in the tool list.
- This runtime is unofficial and AGPL-3.0. Not affiliated with ManyChat, Inc.

Preferred command (the key goes in the -e flag, not in the chat log you show me):
claude mcp add manychat -e MANYCHAT_API_KEY=THE_KEY -- npx -y mcp-manychat mcp serve --transport stdio

Equivalent .mcp.json:
{
  "mcpServers": {
    "manychat": {
      "command": "npx",
      "args": ["-y","mcp-manychat","mcp","serve","--transport","stdio"],
      "env": { "MANYCHAT_API_KEY": "THE_KEY" }
    }
  }
}

Then run /mcp and confirm the server is connected.

Safety

What it will not do.

Meta decides when you are allowed to message someone. This MCP checks the 24-hour clock, promo tags, and opt-in before a send leaves — so the agent sees the block, not a restricted page.

01

It will not message someone too late

On Instagram and Messenger, Meta closes ordinary replies after 24 hours of silence. The agent reads that clock before it writes — every time — not after the send fails.

02

It will not push a promo without a reason

Promotional messages need a valid message tag or an opt-in on file. Without one the send is refused up front. WhatsApp outside the window needs an approved template, not a tag.

03

It will not guess when it is unsure

Borderline cases stop. The lead gets tagged for a person. An hour of silence is cheaper than a restricted account.

What that looks like

Agent wants to send a promotion

  • Channel: Instagram
  • Last reply from this lead: 31 hours ago
  • Tag on the message: none

Blocked before sending

Outside the 24 hour window and no opt-in on file.

For builders: this is the validate_message tool, and every send path calls it first.