mcpField
A
ActiveCampaign

ActiveCampaign

本地服务
github.com商业与营销16 周前更新

关于 ActiveCampaign

ActiveCampaign 是面向 ActiveCampaign 账户自动化与管理的 MCP 服务,适用于通过 MCP 客户端调用账户 API 的团队。它将 v3 REST、SMS、WhatsApp 和 Segments API 生成为带安全分类的工具,并支持只读筛选和多种传输方式。

主要功能

  1. 01覆盖账户 API 的多类操作
  2. 02工具按只读、写入和破坏性操作分类
  3. 03支持只读模式及资源组筛选
  4. 04分页、排序和过滤作为输入
  5. 05自动重试并限制请求速率
  6. 06支持 stdio 与 Streamable HTTP

适用场景

  1. 01查找联系人及其标签和活动
  2. 02创建交易或更新联系人
  3. 03筛选并查看营销活动数据
  4. 04在确认前准备 SMS 广播

MCP 相关

该 MCP 服务将 ActiveCampaign API 操作作为工具提供给客户端,支持 stdio 和 Streamable HTTP。API 凭据保存在服务端环境中,并可配置只读模式、资源组筛选及 HTTP 端点认证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ohneben-activecampaign": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_TRANSPORT",
"-e",
"ACTIVECAMPAIGN_API_URL",
"-e",
"ACTIVECAMPAIGN_API_TOKEN",
"-e",
"MCP_AUTH_TOKEN",
"ghcr.io/ohneben/activecampaign-mcp:1.1.1"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"ACTIVECAMPAIGN_API_URL": "<ACTIVECAMPAIGN_API_URL>",
"ACTIVECAMPAIGN_API_TOKEN": "<ACTIVECAMPAIGN_API_TOKEN>",
"MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
}
}
}
}
启动命令docker run -i --rm -e MCP_TRANSPORT -e ACTIVECAMPAIGN_API_URL -e ACTIVECAMPAIGN_API_TOKEN -e MCP_AUTH_TOKEN ghcr.io/ohneben/activecampaign-mcp:1.1.1
需要配置的环境变量
MCP_TRANSPORTServer transport. Set to 'stdio' for local MCP clients; the image otherwise starts the Streamable HTTP transport.
ACTIVECAMPAIGN_API_URLYour account's API URL, copied from ActiveCampaign -> Settings -> Developer, e.g. https://your-account.api-us1.com/api/3
ACTIVECAMPAIGN_API_TOKEN密钥Your ActiveCampaign API token (same Developer screen).
MCP_AUTH_TOKEN密钥Only for MCP_TRANSPORT=http: bearer token required on /mcp. Without it a non-loopback bind refuses to start.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/ohneben/activecampaign-mcp:1.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ohneben 的 ActiveCampaign MCP

Buy Me A Coffee


许可证与检查

CI License: MIT

MCP 注册目录

MCP Registry Listed on mcpservers.org ActiveCampaign-MCP MCP server

这是目前功能最全面的 ActiveCampaign MCP 服务。 使用 Claude、Cursor 或任何其他 MCP 客户端, 即可通过自然语言管理整个 ActiveCampaign 账户。

此 Model Context Protocol 服务开放了 完整的 ActiveCampaign 账户 API — 约 325 个工具,涵盖 v3 REST API,以及 SMS、WhatsApp 和异步 Segments API,直接根据 ActiveCampaign 自己的 OpenAPI 定义生成。每个工具都经过安全类别标记 (🟢 只读 / 🟡 写入 / 🔴 破坏性),让助手在调用操作之前了解其作用。服务可通过 stdio(Claude Desktop 和其他本地启动器)或 Streamable HTTP(在 Docker 中托管)运行,并配备重试机制、针对 ActiveCampaign 每秒 5 次请求上限调优的客户端限流,以及请求超时设置,可稳定应对实际账户。

为什么你会需要它

有些 MCP 服务只是转发 API 的一部分。这个服务旨在做到可安全交给大模型使用、功能完整,并且易于实际运行:

你将获得什么为什么重要
约 325 个工具 — 完整的账户 API全面覆盖联系人、交易、账户、列表、标签、自定义字段和对象、电商(深度数据)、营销活动、消息、自动化、细分群组、Webhook、任务、日历、网站/事件跟踪、SMS 和 WhatsApp——没有挑挑拣拣,也没有遗漏。其他服务通常只支持约 60 个工具。
精心设计的安全类别 🟢 / 🟡 / 🔴不会天真地认为“GET = 安全”:contact sync 会标记为插入或更新,细分群组匹配的 POST 会标记为只读查询,为联系人添加标签会标记为关联,而 POST /sms/broadcasts 会标记为发送消息——这样模型就能了解真实的影响范围。
机器可读的 MCP 注释(readOnlyHint、destructiveHint)支持注释的宿主(包括 Claude)可以自动信任读取操作,并在执行任何破坏性操作前要求确认。
只读模式和资源筛选只开放 🟢 只读工具(ACTIVECAMPAIGN_READ_ONLY=true),或缩小范围,只开放你使用的分组(ACTIVECAMPAIGN_INCLUDE_GROUPS=contacts,deals,lists)。可根据每种部署方式调整开放的功能。
一流的分页支持limit、offset、orders[…] 和 filters[…] 会作为类型化输入注入每个列表端点,因此助手可以翻页、排序和筛选,无需猜测 ActiveCampaign 的括号语法。
自动重试并采用退避策略遇到临时的 429 / 5xx 响应时,会采用带抖动的指数退避策略重试,并遵循服务端的 Retry-After 标头。
内置速率限制会在 ActiveCampaign 账户每秒 5 个请求的上限内自动节流,避免一阵工具调用触发 429。
响应大小保护可选择限制超大的列表响应(ACTIVECAMPAIGN_MAX_RESPONSE_CHARS),避免单次调用撑爆模型的上下文窗口。
GraphQL 直通附带一个用于 ActiveCampaign Ecommerce GraphQL API 的工具,可通过一次往返请求精确指定所需字段。
两种传输方式:stdio 和 Streamable HTTP可在 Claude Desktop 中本地使用,也可运行一个常驻服务,让任意数量的 MCP 客户端通过 HTTP 访问。
Docker + docker-compose、健康检查、自动重启开箱即用的生产级部署:运行 docker compose up 后,服务就会持续运行。
HTTP 端点支持可选的 Bearer 令牌认证只要服务可从 localhost 以外访问,就可以立即在它前面加上共享密钥。
你的令牌永远不会传给模型Api-Token 存放在服务的环境中,并会随每个请求注入——助手只会看到工具输入和 API 响应。
可直接替换的规范更新ActiveCampaign 发布了更新的 OpenAPI JSON?替换 spec/ 中的文件并重新构建——新端点会自动成为新工具,无需修改代码。

对比情况

目前有几种方式可以通过 AI 助手访问 ActiveCampaign。以下是本服务与其他方案的对比:

本服务官方 AC 远程 MCPHighLiuk mcp-server-activecampaignmcp-activecampaign (PyPI)CData MCP
工具数量(约)~325精选子集58~653(通用 SQL)
完整 v3 REST 覆盖✅➖➖ 核心 CRM➖ 广泛的 CRM❌
SMS · WhatsApp · 细分✅❌❌❌❌
深度电商数据 + GraphQL✅➖❌➖❌
支持读取和写入✅✅✅✅❌ 只读
在自己的基础设施上自托管✅❌ 供应商云✅✅✅
直接连接 AC API✅✅✅✅❌ 通过 JDBC 驱动程序
stdio 传输✅❌✅✅✅
Streamable-HTTP 传输✅✅➖➖❌
Docker + compose + 健康检查✅不适用❌❌❌
精选的 🟢 / 🟡 / 🔴 安全类别✅➖➖ 部分支持➖不适用
readOnlyHint / destructiveHint✅➖➖➖➖
只读模式 + 分组筛选✅❌❌❌始终只读
速率限制 + 自动重试(429/5xx)✅➖❌➖❌
语言TypeScript—TypeScriptPythonJava
许可证MIT专有MITMITMIT

✅ = 是 · ➖ = 部分支持 / 未注明 · ❌ = 否。根据各项目公开文档整理;这是一个非官方项目,与 ActiveCampaign 或表中列出的项目均无关联。工具数量为近似值,会随 API 演进而变化。

简而言之:官方远程 MCP 是很好的托管入门方案,但运行在 ActiveCampaign 的云端,且只涵盖精选的 API 子集。社区服务很可靠,但最多只有约 60 个核心 CRM 工具,且仅支持 stdio,没有部署方案。本服务提供完整的账户 API、两种传输方式、Docker 部署和安全防护措施——可自托管,使用你自己的令牌,采用 MIT 许可证。

可以做什么

连接后,可以向助手提出以下请求:

  • “查找联系人 [email protected],并显示她的标签、列表和近期活动。”
  • “在‘Sales’销售流程的‘Qualified’阶段,为 Acme Corp 创建一笔金额为 $12,000 的交易。”
  • “列出本月添加、打开了上一场营销活动,但尚未添加‘engaged’标签的联系人。”
  • “为列表 5 中的每位联系人添加‘webinar-2026’标签。”
  • “显示电商总收入和上周金额最高的 10 笔订单。”
  • “创建一个包含德国客户的细分,并统计符合条件的人数。”
  • “为‘VIP’列表拟一条 SMS 群发消息——但在我确认之前不要发送。”

工具会根据 ActiveCampaign 的规范自动生成,并分为 🟢 只读、🟡 写入和 🔴 破坏性操作三类,这样行为规范的宿主就可以区别对待各组工具。

工作原理

Claude / Cursor / any MCP client  ──MCP──►  this server  ──HTTPS──►  ActiveCampaign API (your account)

服务会将打包的 OpenAPI 定义解析为 MCP 工具(解析 $ref 并防止递归架构),为每个工具标注精选的安全类别,并在每个发出的请求中注入 Api-Token 标头。令牌保存在服务的环境中——模型看不到也不会处理它。

要求

  • 拥有 API 访问权限的 ActiveCampaign 账户——从Settings → Developer 获取你的 API URL 和 API token。请参阅获取 API 凭据。
  • 按照下方快速入门操作需要 Docker(macOS/Windows 上使用 Docker Desktop);或者需要 Node.js ≥ 18,以便从源代码运行。

快速开始(Docker)

1. 添加凭据。 复制示例配置并填写:

cp .env.example .env
# edit .env → set ACTIVECAMPAIGN_API_URL and ACTIVECAMPAIGN_API_TOKEN
#           → set MCP_AUTH_TOKEN to a long random string if reachable beyond localhost

2. 启动服务:

docker compose up -d --build

随附的 docker-compose.yml 仅绑定到 127.0.0.1:8765,因此服务可从你的计算机访问,但无法从网络访问。

3. 确认服务正在运行:

curl -s http://localhost:8765/health
# → {"status":"ok","server":"activecampaign-mcp","tools":325}

4. 连接 MCP 客户端。 MCP 端点为 http://localhost:8765/mcp。

  • Claude Desktop — 添加一个指向该 URL 的自定义连接器(Settings → Connectors),或使用 mcp-remote 在本地桥接。在配置的 mcpServers 下添加以下内容,然后完全退出并重新打开应用:

    {
      "mcpServers": {
        "activecampaign": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "http://localhost:8765/mcp",
            "--header", "Authorization: Bearer YOUR_MCP_AUTH_TOKEN"
          ]
        }
      }
    }
    

    (如果将 MCP_AUTH_TOKEN 留空,请删除 --header 行。)

  • Claude Code — 只需一条命令:

    claude mcp add --transport http activecampaign http://localhost:8765/mcp
    
  • Claude Cowork — 与 Claude Code 共用 MCP 配置,因此运行上述命令后,这些工具也会在其中可用。

更倾向于使用预构建镜像?

每次推送到 main 时,都会向 GitHub Container Registry 发布一个可直接运行的镜像,因此你可以完全跳过本地构建:

docker run -d --name activecampaign-mcp -p 127.0.0.1:8765:8765 --env-file .env \
  ghcr.io/ohneben/activecampaign-mcp:latest

获取 API 凭据

  1. 登录 ActiveCampaign 并打开 Settings → Developer。
  2. 复制你的 API URL → ACTIVECAMPAIGN_API_URL。格式类似 https://your-account.api-us1.com/api/3。请使用显示的确切 URL — 并非所有账户都使用 api-us1,自定义域名也各不相同。
  3. 复制你的 API Key → ACTIVECAMPAIGN_API_TOKEN。

将两者填入 .env。服务会在每次请求时注入令牌,因此你的助手不会看到它。

配置

所有设置都在 .env 中(从 .env.example 复制而来):

变量必填默认值说明
ACTIVECAMPAIGN_API_URL✅—账户的 API URL,包括 /api/3
ACTIVECAMPAIGN_API_TOKEN✅—API 令牌(Api-Token 标头)
MCP_TRANSPORT—stdiostdio 或 http(Docker 镜像默认使用 http)
PORT—8765HTTP 监听端口
HOST—0.0.0.0HTTP 绑定地址
MCP_HTTP_PATH—/mcpHTTP MCP 路由
MCP_AUTH_TOKEN—(关闭)要求访问 /mcp 时提供 Authorization: Bearer <token>
ACTIVECAMPAIGN_MAX_REQUESTS—4每个时间窗口内客户端请求数(0 表示禁用限流)
ACTIVECAMPAIGN_RATE_WINDOW_MS—1000限流时间窗口,单位为 ms(默认:4 req/s)
ACTIVECAMPAIGN_MAX_RETRIES—3遇到 429 / 5xx / 网络错误时的重试次数
ACTIVECAMPAIGN_TIMEOUT_MS—30000每次尝试的请求超时时间
ACTIVECAMPAIGN_READ_ONLY—false仅公开 🟢 只读工具
ACTIVECAMPAIGN_INCLUDE_GROUPS—(全部)仅公开这些资源组(以逗号分隔)
ACTIVECAMPAIGN_EXCLUDE_GROUPS—(无)隐藏这些资源组
ACTIVECAMPAIGN_ENABLE_GRAPHQL—true公开 Ecommerce GraphQL 透传工具
ACTIVECAMPAIGN_GRAPHQL_URL—(自动推导)覆盖 GraphQL 端点
ACTIVECAMPAIGN_MAX_RESPONSE_CHARS—0截断超过 N 个字符的响应(0 = 从不截断)
ACTIVECAMPAIGN_SPEC_DIR—(随附目录)从其他目录加载 OpenAPI 文件

更改 .env 后,运行 docker compose up -d --force-recreate 重新加载。

运行 npm run list-tools(无需凭据)即可打印完整目录、各类别的数量,以及可用于筛选的资源组键列表。

工具安全类别

每个工具的描述都以以下横幅之一开头,并带有对应的 MCP 注解:

横幅数量readOnlyHintdestructiveHint含义
🟢 只读155truefalseGET — 仅获取数据。安全。
🟢 只读 · 查询7truefalse用于搜索/报告的 POST(匹配细分、导出指标)——不更改任何数据。
🟡 写入 · 创建数据51falsefalsePOST — 创建记录(非幂等;可能产生重复记录)。
🟡 写入 · 创建或更新1falsefalse幂等式插入或更新(contact sync)。
🟡 写入 · 更新数据52falsefalsePUT / PATCH — 原位修改记录。
🟡 写入 · 关联记录6falsefalse关联记录(为联系人添加标签,或将其添加到列表/自动化中)。可撤销。
🟡 写入 · 取消关联记录5falsefalse移除关联(取消标签、从列表中移除)。可撤销。
🟡 写入 · 发送消息3falsefalse发送/安排发送外发 SMS 或 WhatsApp 消息。
🟡 GraphQL1falsefalse任意 GraphQL 文档(可能包含变更操作)。
🔴 破坏性操作 · 删除数据42falsetrueDELETE — 删除记录。请先确认。
🔴 破坏性操作 · 批量删除2falsetrue一次删除多条记录。请先确认。

共 162 个只读 · 119 个写入 · 44 个破坏性操作 = 325 个工具。 遵循注解的主机(包括 Claude)可以要求确认使用 destructiveHint 的工具,并自动信任使用 readOnlyHint 的工具。想进一步限制权限?设置 ACTIVECAMPAIGN_READ_ONLY=true,仅开放 162 个只读工具。

各领域覆盖情况(🟢 读取 / 🟡 写入 / 🔴 破坏性操作)
领域🟢 读取🟡 写入🔴 删除工具
自定义字段与对象1825952
交易与销售管道1923951
联系人3011243
营销活动与消息1510429
管理与投递128626
账户813425
细分163120
电商(深度数据)96318
SMS124117
列表、标签与表单85215
站点与事件跟踪75214
WhatsApp75113
自动化1001
GraphQL 直通—1—1
总计16211944325

从源代码运行(stdio,无 Docker)

更喜欢在 Claude Desktop 中使用经典的 stdio 模式?在本地构建:

npm install
npm run build

然后在 claude_desktop_config.json 中,将 Claude Desktop 指向已编译的入口点:

{
  "mcpServers": {
    "activecampaign": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/ActiveCampaign-MCP/dist/index.js"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "ACTIVECAMPAIGN_API_URL": "https://your-account.api-us1.com/api/3",
        "ACTIVECAMPAIGN_API_TOKEN": "your-api-token"
      }
    }
  }
}

保持规范为最新版本

spec/ 下随附的文件是工具的事实来源:

文件API身份验证标头
v3.json核心 v3 REST APIApi-Token
sms.jsonSMS 广播 APIApi-Token
whatsapp.jsonWhatsApp 渠道 APIToken(也会发送 Api-Token)
segments-crud.json、segments-match-one.json、segments-match-all-some.json异步细分 APIApi-Token

要更新到较新的 API 版本,请将更新后的 OpenAPI JSON 文件放到原位(或将 ACTIVECAMPAIGN_SPEC_DIR 指向包含相同文件名的目录),然后重新构建。新路径会自动成为新工具,无需更改代码。

开发

npm install
npm run build      # compile TypeScript → dist/
npm test           # run the Vitest suite
npm run list-tools # print the categorized tool catalog (no credentials needed)

CI 会在 Node 20 和 22 环境下构建并测试每次推送;推送到 main 时,还会将 Docker 镜像发布到 GitHub Container Registry。

说明与约定

  • 传输方式:本地启动器使用 MCP_TRANSPORT=stdio(默认值); Docker 镜像运行的常驻 Streamable-HTTP 服务使用 MCP_TRANSPORT=http。
  • 分页 / 排序 / 筛选:列表工具接受 limit(最大值为 100)、offset、 orders({"email":"ASC"})和 filters({"name":"ecom"})。对于非常大的 联系人导出,ActiveCampaign 建议使用 orders={"id":"ASC"} + id_greater。
  • 速率限制:ActiveCampaign 允许每个账户每秒发送 5 个请求(所有密钥共享此限制);服务会将请求速率限制在 ACTIVECAMPAIGN_MAX_REQUESTS / ACTIVECAMPAIGN_RATE_WINDOW_MS(默认为 1 秒 4 个请求),并重试仍收到的任何 429 响应,同时遵循 Retry-After。
  • 请求正文:写入工具接受 body 参数;其架构根据规范解析并展示给模型(例如,create-contact 需要 {"contact": {…}})。

安全

  • 你的 API 令牌仅存储在 .env 中,该文件已加入 git 忽略列表。**切勿提交真实 密钥。**此令牌拥有账户的完全访问权限;如果泄露,请在 ActiveCampaign → Settings → Developer 中轮换令牌。
  • HTTP 端点默认不需要身份验证(在 localhost 上使用没有问题)。若要将其开放给其他设备访问,请设置 MCP_AUTH_TOKEN,并通过 Authorization: Bearer <token> 标头发送令牌——最好在 TLS 后面部署。
  • 删除和发送(SMS/WhatsApp)工具带有相应注释,以便行为良好的宿主在执行前进行确认——请保留此确认,或在 ACTIVECAMPAIGN_READ_ONLY=true 模式下运行。

完整政策及漏洞报告方式请参阅 SECURITY.md。

致谢与许可

这是一个非官方的社区集成项目,适用于 ActiveCampaign;与 ActiveCampaign 无关联,也未获其认可。基于 Model Context Protocol 构建。 工具根据 ActiveCampaign 的公开 OpenAPI 定义生成。根据 MIT License 授权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。