ManyContacts - WhatsApp Business CRM

io.github.ManyContacts由 GitHub 帳號 ManyContacts 發布v1.1.0更新於 Oct 24, 2026

WhatsApp Business CRM: send messages, manage contacts, campaigns, and AI agents.

概覽

AI 產生的概覽

讓助理操作 ManyContacts WhatsApp Business CRM:傳送訊息、執行大量發送活動,並管理聯絡人、標籤、團隊與 AI 代理。

可以做什麼
透過約 55 個工具把助理接入 ManyContacts WhatsApp Business CRM 帳號。它可以列出、建立、更新與刪除聯絡人;新增或移除標籤、團隊與銷售漏斗階段;讀取並傳送 WhatsApp 文字、範本與內部備註訊息;管理已核准的範本與大量發送活動;並查看或調整 AI 自動回覆代理與組織設定。此外還提供帳號概況、渠道、使用者以及組織 REST API 金鑰。
適用情境
適合已用 ManyContacts 處理 WhatsApp 客服或銷售,並希望助理在不開啟網頁版的情況下查詢對話、分類與貼標籤、推進銷售漏斗,或準備並安排範本大量發送活動的團隊。
執行需求
以 npm 套件(@manycontacts/mcp)透過 npx 在本機執行,需要 Node.js,且僅支援桌面端。需要 ManyContacts 帳號與身分驗證:MC_CLI_TOKEN 環境變數,或由 ManyContacts CLI 登入所儲存的權杖。對外傳送訊息還需要已連接的 WhatsApp Business 渠道與 Meta 核准的範本。
安裝前請注意
MC_CLI_TOKEN 中的權杖可存取整個 CRM 帳號。許多工具會寫入或刪除資料,包括永久刪除聯絡人、標籤、團隊、銷售漏斗與使用者,以及對大量電話號碼執行批次操作。傳送訊息與大量發送活動會聯繫真實客戶,並可能產生 WhatsApp 或 Meta 的訊息費用;其中一個工具會回傳組織 REST API 金鑰。大量發送活動與範本訊息必須使用 Meta 核准的範本。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ManyContacts - WhatsApp Business CRM,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[smithery badge]

ManyContacts MCP Server

MCP (Model Context Protocol) server for ManyContacts — the WhatsApp Business CRM. Enables AI agents (Claude, Cursor, Windsurf, etc.) to manage contacts, send WhatsApp messages, run campaigns, configure AI auto-replies, and perform all CRM operations programmatically.

Quick Start

1. Get your CLI token

bash
npm install -g @manycontacts/cli

Already have an account? Log in:

bash
mc auth login --email [email protected] --password mypasswordmc auth whoami   # verify it works

New to ManyContacts? Create an account and connect your WhatsApp channel:

bash
# Register a new accountmc auth register --email [email protected] --name "My Company"
# Connect a WhatsApp Business channel (choose one method):mc channels connect whatsapp-api      # WhatsApp Cloud API (recommended)mc channels connect coexistence       # ManyContacts coexistence modemc channels connect qr                # QR code pairing
# Verify everything is set upmc auth whoamimc channels list

2. Configure in your MCP client

Claude Desktop / Claude Code

Add to your MCP settings (~/.claude/claude_desktop_config.json or similar):

json
{  "mcpServers": {    "manycontacts": {      "command": "npx",      "args": ["@manycontacts/mcp"],      "env": {        "MC_CLI_TOKEN": "your-cli-token-here"      }    }  }}
Cursor

Add to .cursor/mcp.json:

json
{  "mcpServers": {    "manycontacts": {      "command": "npx",      "args": ["@manycontacts/mcp"],      "env": {        "MC_CLI_TOKEN": "your-cli-token-here"      }    }  }}

Tip: If you've already logged in via the CLI (mc auth login), the token is stored in ~/.manycontacts/config.json and the MCP server will pick it up automatically — no MC_CLI_TOKEN env var needed.


Available Tools (55 total)

Account & Context

manycontacts.context

Get a full overview of your ManyContacts account: connected WhatsApp Business channels, contact/user/tag counts, active AI agents, and enabled features. Use this first to understand the account state before performing other operations.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.org.get

Get WhatsApp Business organization/account information including name, timezone, and all configuration settings.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.org.update

Update organization-level settings such as timezone, auto-reply messages, auto-close behavior, and webhook configuration.

ParameterTypeRequiredDescription
timezonestringNoTimezone identifier (e.g. Europe/Madrid, America/New_York)
auto_reply_openbooleanNoEnable auto-reply when a new chat is opened
auto_reply_open_textstringNoAuto-reply message text when chat opens
auto_reply_closebooleanNoEnable auto-reply when a chat is closed
auto_reply_close_textstringNoAuto-reply message text when chat closes
auto_reply_close_minutesnumberNoMinutes of inactivity before auto-close
auto_reply_awaybooleanNoEnable away/out-of-hours auto-reply
auto_reply_away_textstringNoAway auto-reply message text
webhooks_forwardbooleanNoEnable webhook forwarding to an external URL
webhooks_forward_urlstringNoExternal URL to forward webhook events to

manycontacts.org.schedule.get

Get the business hours schedule. Returns the configured working hours for each day of the week, used to determine when the "away" auto-reply activates.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.org.apikey

Get the organization's REST API key for direct API integrations.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.channels.list

List all connected WhatsApp Business and Instagram channels. For WhatsApp channels, shows the phone number and connection status. For Instagram channels, shows the username.

ParameterTypeRequiredDescription
(none)——No parameters needed

Contacts

All contact operations use phone numbers as identifiers (with country code, no + prefix, e.g. 34600000000).

manycontacts.contacts.list

List WhatsApp Business contacts with advanced filters. Returns paginated results with has_more indicator. Filters can be combined freely.

ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
limitnumberNoResults per page, max 200 (default: 50)
open"true" | "false"NoFilter by conversation open/closed status
assigned_tostringNoFilter by assigned user ID
tagsstringNoComma-separated tag IDs — contacts must have all specified tags
teamstringNoFilter by team ID
stagesstringNoComma-separated funnel stage IDs
date_fromstringNoFilter contacts updated after this date (YYYY-MM-DD)
date_tostringNoFilter contacts updated before this date (YYYY-MM-DD)
unread"true"NoOnly contacts with unread messages
blacklist"true"NoOnly blacklisted contacts
scheduled"true"NoOnly contacts with pending scheduled messages

Note: When using date_from and date_to together, the range cannot exceed 90 days.

Response:

json
{  "ok": true,  "data": [    {      "name": "John Doe",      "number": "34600000000",      "open": true,      "last_user_id": "uuid-of-assigned-user",      "source": "whatsapp",      "notes": "VIP customer",      "customFields": {},      "createdAt": "2026-01-15T10:30:00Z"    }  ],  "pagination": { "page": 1, "limit": 50, "has_more": true }}

manycontacts.contacts.get

Get detailed information about a specific contact including their tags, teams, funnel stages, and custom fields.

ParameterTypeRequiredDescription
phonestringYesPhone number with country code (e.g. 34600000000)

manycontacts.contacts.create

Create a new WhatsApp Business contact in the CRM. The phone number will be normalized automatically (leading + removed).

ParameterTypeRequiredDescription
phonestringYesPhone number with country code (e.g. 34600000000)
namestringNoContact display name
notesstringNoFree-text notes for the contact

manycontacts.contacts.update

Update an existing contact's name, notes, or custom fields.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact to update
namestringNoNew contact name
notesstringNoNew contact notes
customFieldsstringNoCustom fields as a JSON string (e.g. '{"company":"Acme"}')

manycontacts.contacts.delete

Permanently delete a contact from the CRM.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact to delete

manycontacts.contacts.assign

Assign a contact to a specific team member. The assigned user will see this contact in their personal inbox.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
userIdstringYesUser ID to assign the contact to (use manycontacts.users.list to get IDs)

manycontacts.contacts.unassign

Remove the current user assignment from a contact. The contact returns to the general unassigned inbox.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact

manycontacts.contacts.close

Close a WhatsApp conversation. Closed conversations are archived and won't appear in the active inbox.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact

manycontacts.contacts.open

Reopen a previously closed WhatsApp conversation. The contact will appear again in the active inbox.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact

manycontacts.contacts.tag.add

Add a tag to a contact. Use manycontacts.tags.list to get available tag IDs.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
tagIdstringYesTag ID to add

manycontacts.contacts.tag.remove

Remove a tag from a contact.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
tagIdstringYesTag ID to remove

manycontacts.contacts.team.add

Add a team to a contact. Use manycontacts.teams.list to get available team IDs.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
teamIdstringYesTeam ID to add

manycontacts.contacts.team.remove

Remove a team from a contact.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
teamIdstringYesTeam ID to remove

manycontacts.contacts.set_stage

Move a contact to a specific stage within a sales funnel/pipeline. Use manycontacts.funnels.list to get funnel and stage IDs.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
funnel_idstringYesFunnel ID
stage_idstringYesTarget stage ID within the funnel

manycontacts.contacts.bulk

Perform bulk operations on multiple contacts at once. Supports closing, opening, assigning, tagging, and team assignment.

ParameterTypeRequiredDescription
action"close" | "open" | "assign" | "add_tag" | "add_team"YesBulk action to perform
phonesstringYesComma-separated phone numbers (e.g. "34600000000,34600000001")
valuestringNoValue required by the action: user ID for assign, tag ID for add_tag, team ID for add_team. Not needed for close or open.

Messaging

manycontacts.messages.list

List WhatsApp conversation messages for a contact. Returns messages in a conversation-friendly format with timestamps, status, and sender information.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
pagenumberNoPage number (default: 1)
limitnumberNoMessages per page (default: 50)

manycontacts.messages.send.text

Send a WhatsApp text message to a contact. Only works within the 24-hour conversation window. Use manycontacts.messages.send.template to initiate conversations outside this window.

ParameterTypeRequiredDescription
phonestringYesPhone number to send the message to
bodystringYesMessage text content

manycontacts.messages.send.note

Create an internal note on a contact's conversation. Notes are only visible to team members and are not sent to the WhatsApp contact.

ParameterTypeRequiredDescription
phonestringYesPhone number of the contact
bodystringYesInternal note text

manycontacts.messages.send.template

Send a WhatsApp Business template message. Templates are required to initiate conversations outside the 24-hour window or for bulk outbound messaging. Templates must be pre-approved by Meta.

ParameterTypeRequiredDescription
phonestringYesPhone number to send the template to
templateIdstringYesTemplate ID (use manycontacts.templates.list to get IDs)
variablesstringNoTemplate variables as a JSON array string (e.g. '["John","20%"]')

Templates

WhatsApp Business templates are pre-approved message formats required for outbound messaging outside the 24-hour conversation window.

manycontacts.templates.list

List all WhatsApp Business message templates. Shows template name, code, status, components, and media flags.

ParameterTypeRequiredDescription
status"approved" | "pending" | "rejected"NoFilter templates by approval status

manycontacts.templates.get

Get full details of a specific template including its components (header, body, footer, buttons), configuration, and media attachments.

ParameterTypeRequiredDescription
idstringYesTemplate ID

manycontacts.templates.sync

Sync WhatsApp Business templates from Meta Cloud API. Fetches the latest templates from the connected WhatsApp Business account. Useful after creating or modifying templates in the Meta Business Manager.

ParameterTypeRequiredDescription
(none)——No parameters needed

Campaigns

Campaigns allow bulk sending of WhatsApp template messages to a list of phone numbers at a scheduled time.

manycontacts.campaigns.list

List all WhatsApp Business bulk messaging campaigns with statistics (sent, delivered, read, and failed counts), template names, and scheduled dates.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.campaigns.create

Create a new WhatsApp Business bulk messaging campaign. The campaign will send a template message to the specified phone numbers at the scheduled time.

ParameterTypeRequiredDescription
namestringYesCampaign name
templateIdstringYesWhatsApp template ID to use (must be approved)
phonesstringYesComma-separated phone numbers (e.g. "34600000000,34600000001,34600000002")
datestringYesScheduled send date in ISO format (e.g. "2026-12-01T09:00:00")
variablesstringNoTemplate variables as a JSON array string (e.g. '["John","20%"]')

manycontacts.campaigns.delete

Delete a WhatsApp Business campaign. Only pending (not yet sent) campaigns can be deleted.

ParameterTypeRequiredDescription
idstringYesCampaign ID to delete

Tags

Tags are colored labels used to categorize and filter WhatsApp Business contacts (e.g. "VIP", "Support", "Lead").

manycontacts.tags.list

List all available tags with their names, colors, and IDs.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.tags.create

Create a new tag for categorizing contacts.

ParameterTypeRequiredDescription
namestringYesTag name
colorstringNoTag color as hex code (e.g. "#ff0000"). Defaults to #fab1a0

manycontacts.tags.update

Update an existing tag's name or color.

ParameterTypeRequiredDescription
idstringYesTag ID to update
namestringNoNew tag name
colorstringNoNew tag color as hex code

manycontacts.tags.delete

Delete a tag. The tag will be removed from all contacts that have it.

ParameterTypeRequiredDescription
idstringYesTag ID to delete

Teams

Teams group users together for assignment routing and contact organization.

manycontacts.teams.list

List all teams in the organization.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.teams.create

Create a new team.

ParameterTypeRequiredDescription
namestringYesTeam name

manycontacts.teams.add_member

Add a user to a team.

ParameterTypeRequiredDescription
teamIdstringYesTeam ID
userIdstringYesUser ID to add to the team

manycontacts.teams.remove_member

Remove a user from a team.

ParameterTypeRequiredDescription
teamIdstringYesTeam ID
userIdstringYesUser ID to remove from the team

manycontacts.teams.delete

Delete a team. Team members are not deleted, only the team grouping.

ParameterTypeRequiredDescription
idstringYesTeam ID to delete

Sales Funnels / Pipelines

Funnels allow you to track contacts through a multi-stage sales or support pipeline (e.g. "New Lead" -> "Qualified" -> "Proposal" -> "Won").

manycontacts.funnels.list

List all sales funnels/pipelines with their stages.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.funnels.create

Create a new sales funnel/pipeline.

ParameterTypeRequiredDescription
namestringYesFunnel name

manycontacts.funnels.add_stage

Add a new stage to an existing funnel.

ParameterTypeRequiredDescription
funnelIdstringYesFunnel ID
namestringYesStage name (e.g. "Qualified", "Proposal Sent")
ordernumberYesStage position in the pipeline (0-based)

manycontacts.funnels.update_stage

Update a stage's name within a funnel.

ParameterTypeRequiredDescription
funnelIdstringYesFunnel ID
stageIdstringYesStage ID to update
namestringNoNew stage name

manycontacts.funnels.contacts

List contacts currently in a specific funnel, optionally filtered by stage. Returns paginated results.

ParameterTypeRequiredDescription
funnelIdstringYesFunnel ID
stage_idstringNoFilter by specific stage ID
pagenumberNoPage number
limitnumberNoResults per page

manycontacts.funnels.delete

Delete a sales funnel/pipeline and all its stages. Contacts in the funnel are not deleted.

ParameterTypeRequiredDescription
idstringYesFunnel ID to delete

Users / Team Members

Manage the team members who have access to the WhatsApp Business CRM.

manycontacts.users.list

List all team members/users in the organization with their roles and details.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.users.get

Get details of a specific team member.

ParameterTypeRequiredDescription
idstringYesUser ID

manycontacts.users.update

Update a team member's profile information.

ParameterTypeRequiredDescription
idstringYesUser ID to update
namestringNoNew user display name

manycontacts.users.invite

Invite a new team member to the organization by email. They will receive an invitation email to join.

ParameterTypeRequiredDescription
emailstringYesEmail address to send the invitation to

manycontacts.users.delete

Remove a team member from the organization. Their assigned contacts will become unassigned.

ParameterTypeRequiredDescription
idstringYesUser ID to remove

AI Agents

AI agents auto-respond to incoming WhatsApp messages using configurable instructions and scenarios. Only active agents are listed.

manycontacts.ai_agents.list

List all active AI auto-reply agents with their configuration.

ParameterTypeRequiredDescription
(none)——No parameters needed

manycontacts.ai_agents.get

Get full details of a specific AI agent including its scenarios (conversation flows), instruction blocks, and configuration.

ParameterTypeRequiredDescription
idstringYesAI Agent ID (UUID)

manycontacts.ai_agents.update

Update an AI agent's configuration. You can enable/disable the agent or modify its instruction blocks.

ParameterTypeRequiredDescription
idstringYesAI Agent ID (UUID)
activebooleanNoEnable (true) or disable (false) the agent
block_1stringNoAgent instructions — block 1
block_2stringNoAgent instructions — block 2
block_3stringNoAgent instructions — block 3

manycontacts.ai_agents.feedback

Get feedback and conversation logs for an AI agent. Shows how the agent has been responding and user satisfaction data.

ParameterTypeRequiredDescription
idstringYesAI Agent ID (UUID)

Available Prompts (6 total)

Pre-built prompts that guide AI agents through common workflows. Use these to quickly accomplish multi-step tasks.

contact-lookup

Look up a WhatsApp contact and get a complete summary of their profile, tags, funnel stage, and recent messages.

ArgumentRequiredDescription
phoneYesPhone number in international format (e.g. +34612345678)

send-campaign

Step-by-step guide to creating a WhatsApp bulk campaign: lists available templates, asks for recipients and schedule, then creates the campaign.

ArgumentRequiredDescription
(none)—Interactive guided workflow

daily-dashboard

Generates a complete overview of your ManyContacts account including channels, open conversations, team structure, and sales funnels.

ArgumentRequiredDescription
(none)—No arguments needed

reply-to-contact

Reviews recent conversation history with a contact, then sends a WhatsApp message with full context.

ArgumentRequiredDescription
phoneYesPhone number in international format (e.g. +34612345678)
messageYesThe message text to send

manage-funnel

Displays all sales funnels with their stages and contact counts per stage, giving a visual pipeline overview.

ArgumentRequiredDescription
(none)—No arguments needed

bulk-tag-contacts

Tags multiple contacts at once — finds or creates the tag, then applies it in bulk.

ArgumentRequiredDescription
phonesYesComma-separated phone numbers (e.g. +34612345678,+34698765432)
tagNameYesName of the tag to apply

Environment Variables

VariableRequiredDescription
MC_CLI_TOKENYes*ManyContacts CLI authentication token. Get one via mc auth login.
MC_API_URLNoAPI base URL (default: https://api.manycontacts.com)

*If you've logged in via the CLI, the token is stored locally at ~/.manycontacts/config.json and the MCP server reads it automatically.

Authentication

The MCP server authenticates using CLI tokens. Each token is scoped to an organization and has configurable permissions.

bash
# Login to get a tokenmc auth login --email [email protected] --password mypassword
# The token is stored at ~/.manycontacts/config.json# Or set it explicitly via environment variable:export MC_CLI_TOKEN=your-token-here

Rate Limits

  • Paying accounts: 60 requests/minute
  • Free/trial accounts: 10 requests/minute

When rate limited, the server returns a 429 error with a link to upgrade.

License

MIT

來源:README.md,提交 cdfb35b

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。