Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
作者提供的说明(英文原文)
WhatsApp Business MCP: send messages, manage contacts, campaigns, and AI agents.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
MC_CLI_TOKEN标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"whatsapp": {
"command": "npx",
"args": [
"-y",
"@manycontacts/mcp"
],
"env": {
"MC_CLI_TOKEN": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add whatsapp --env MC_CLI_TOKEN=your-value -- npx -y @manycontacts/mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"whatsapp": {
"command": "npx",
"args": [
"-y",
"@manycontacts/mcp"
],
"env": {
"MC_CLI_TOKEN": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"whatsapp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@manycontacts/mcp"
],
"env": {
"MC_CLI_TOKEN": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 manycontacts 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:MC_CLI_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.1.1)于7个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Vexa, emailmd, MCP WhatsApp Cloud
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
npm install -g @manycontacts/cli
Already have an account? Log in:
mc auth login --email user@example.com --password mypassword
mc auth whoami # verify it works
New to ManyContacts? Create an account and connect your WhatsApp channel:
# Register a new account
mc auth register --email user@example.com --name "My Company"
mc channels connect whatsapp-api # WhatsApp Cloud API (recommended) mc channels connect coexistence # ManyContacts coexistence mode mc channels connect qr # QR code pairing
mc auth whoami mc channels list
Add to your MCP settings (~/.claude/claude_desktop_config.json or similar):
{
"mcpServers": { "manycontacts": { "command": "npx", "args": ["@manycontacts/mcp"], "env": { "MC_CLI_TOKEN": "your-cli-token-here" } } } }
Add to .cursor/mcp.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.jsonand the MCP server will pick it up automatically — noMC_CLI_TOKENenv var needed.
manycontacts.contextGet 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| *(none)* | — | — | No parameters needed |
manycontacts.org.getGet WhatsApp Business organization/account information including name, timezone, and all configuration settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
| *(none)* | — | — | No parameters needed |
manycontacts.org.updateUpdate organization-level settings such as timezone, auto-reply messages, auto-close behavior, and webhook configuration.
| Parameter | Type | Required | Description |
|---|---|---|---|
timezone | string | No | Timezone identifier (e.g. Europe/Madrid, America/New_York) |
auto_reply_open | boolean | No | Enable auto-reply when a new chat is opened |
auto_reply_open_text | string | No | Auto-reply message text when chat opens |
auto_reply_close | boolean | No | Enable auto-reply when a chat is closed |
auto_reply_close_text | string | No | Auto-reply message text when chat closes |
auto_reply_close_minutes | number | No | Minutes of inactivity before auto-close |
auto_reply_away | boolean | No | Enable away/out-of-hours auto-reply |
auto_reply_away_text | string | No | Away auto-reply message text |
webhooks_forward | boolean | No | Enable webhook forwarding to an external URL |
webhooks_forward_url | string | No | External URL to forward webhook events to |
manycontacts.org.schedule.getGet the business hours schedule. Returns the configured working hours for each day of the week, used to determine when the "away" auto-reply activates.
| Parameter | Type | Required | Description |
|---|---|---|---|
| *(none)* | — | — | No parameters needed |
manycontacts.org.apikeyGet the organization's REST API key for direct API integrations.
| Parameter | Type | Required | Description |
|---|---|---|---|
| *(none)* | — | — | No parameters needed |
manycontacts.channels.listList all connected WhatsApp Business and Instagram channels. For WhatsApp channels, shows the phone number and connection status. For Instagram channels, shows the username.
| Parameter | Type | Required | Description |
|---|---|---|---|
| *(none)* | — | — | No parameters needed |
All contact operations use phone numbers as identifiers (with country code, no + prefix, e.g. 34600000000).
manycontacts.contacts.listList WhatsApp Business contacts with advanced filters. Returns paginated results with has_more indicator. Filters can be combined freely.
| Parameter | Type | Required | Description | |
|---|---|---|---|---|
page | number | No | Page number (default: 1) | |
limit | number | No | Results per page, max 200 (default: 50) | |
open | "true" \ | "false" | No | Filter by conversation open/closed status |
assigned_to | string | No | Filter by assigned user ID | |
tags | string | No | Comma-separated tag IDs — contacts must have all specified tags | |
team | string | No | Filter by team ID | |
stages | string | No | Comma-separated funnel stage IDs | |
date_from | string | No | Filter contacts updated after this date (YYYY-MM-DD) | |
date_to | string | No | Filter contacts updated before this date (YYYY-MM-DD) | |
unread | "true" | No | Only contacts with unread messages | |
blacklist | "true" | No | Only blacklisted contacts | |
scheduled | "true" | No | Only contacts with pending scheduled messages |
Note: When using
date_fromanddate_totogether, the range cannot exceed 90 days.
Response:
{
"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.getGet detailed information about a specific contact including their tags, teams, funnel stages, and custom fields.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number with country code (e.g. 34600000000) |
manycontacts.contacts.createCreate a new WhatsApp Business contact in the CRM. The phone number will be normalized automatically (leading + removed).
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number with country code (e.g. 34600000000) |
name | string | No | Contact display name |
notes | string | No | Free-text notes for the contact |
manycontacts.contacts.updateUpdate an existing contact's name, notes, or custom fields.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact to update |
name | string | No | New contact name |
notes | string | No | New contact notes |
customFields | string | No | Custom fields as a JSON string (e.g. '{"company":"Acme"}') |
manycontacts.contacts.deletePermanently delete a contact from the CRM.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact to delete |
manycontacts.contacts.assignAssign a contact to a specific team member. The assigned user will see this contact in their personal inbox.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
userId | string | Yes | User ID to assign the contact to (use manycontacts.users.list to get IDs) |
manycontacts.contacts.unassignRemove the current user assignment from a contact. The contact returns to the general unassigned inbox.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
manycontacts.contacts.closeClose a WhatsApp conversation. Closed conversations are archived and won't appear in the active inbox.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
manycontacts.contacts.openReopen a previously closed WhatsApp conversation. The contact will appear again in the active inbox.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
manycontacts.contacts.tag.addAdd a tag to a contact. Use manycontacts.tags.list to get available tag IDs.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
tagId | string | Yes | Tag ID to add |
manycontacts.contacts.tag.removeRemove a tag from a contact.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
tagId | string | Yes | Tag ID to remove |
manycontacts.contacts.team.addAdd a team to a contact. Use manycontacts.teams.list to get available team IDs.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
teamId | string | Yes | Team ID to add |
manycontacts.contacts.team.removeRemove a team from a contact.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
teamId | string | Yes | Team ID to remove |
manycontacts.contacts.set_stageMove a contact to a specific stage within a sales funnel/pipeline. Use manycontacts.funnels.list to get funnel and stage IDs.
| Parameter | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Phone number of the contact |
funnel_id | string | Yes | Funnel ID |
stage_id | string | Yes | Target stage ID within the funnel |
manycontacts.contacts.bulkPerform bulk operations on multiple contacts at once. Supports closing, opening, assigning, tagging, and team assignment.
| Parameter | Type | Required | Description | ||||
|---|---|---|---|---|---|---|---|
action | "close" \ | "open" \ | "assign" \ | "add_tag" \ | "add_team" | Yes | Bulk action to perform |
phones | string | Yes | Comma-separated phone numbers (e.g. "34600000000,34600000001") | ||||
value | string | No | Value required by the action: user ID for assign, tag ID for add_tag, team ID for add_team. Not needed for close or open. |
manycontacts.messages.listList WhatsApp conversation messages for a contact. Returns messages in a conversation-friendly format with timestamps, status, and sender information.
| Parameter | Type | Required | Description |
|---|
| phone | string | Yes | Phone n
只显示了开头部分;其余内容请在仓库中阅读