这是一个 MCP(模型上下文协议)服务器,用于与 ActiveCampaign API 集成。借助对 AI 友好的工具,它允许对联系人及跟踪事件进行查询和分析。
在使用此服务器之前,请确保满足以下安装要求并完成相应的安装步骤。
git clone https://github.com/mmarqueti/activecampaign-mcp-server.git
cd activecampaign-mcp-server
# 使用 npm
npm install
# 使用 pnpm
pnpm install
cp .env.example .env
编辑 .env 文件并填入你的凭证信息:
ACTIVECAMPAIGN_API_URL=https://seuaccount.api-us1.com
ACTIVECAMPAIGN_API_KEY=sua-api-key-aqui
# 使用 npm
npm run build
# 使用 pnpm
pnpm build
open(打开)、click(点击)、sent(发送)、bounce(退回)、reply(回复)、forward(转发)subscribe(订阅)、unsubscribe(取消订阅)、update(更新)deal_add(添加交易)、deal_update(更新交易)、deal_delete(删除交易)note_add(添加备注)、task_add(添加任务)automation_start(自动化开始)、automation_complete(自动化完成)# 开发模式
npm run dev
# 生产模式
npm start
若要在 Claude Desktop 中使用此 MCP 服务器,需要在其配置文件中进行如下设置:
⚠️ 重要提示
此功能要求 Claude Desktop 版本为 0.7.0 或更高,且支持 MCP。
macOS 系统:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows 系统:
%APPDATA%\Claude\claude_desktop_config.json
编辑 claude_desktop_config.json 文件并添加以下内容:
{
"mcpServers": {
"activecampaign": {
"command": "node",
"args": ["/caminho/para/seu/projeto/dist/index.js"],
"env": {
"ACTIVECAMPAIGN_API_URL": "https://seuaccount.api-us1.com",
"ACTIVECAMPAIGN_API_KEY": "sua-api-key-aqui"
}
}
}
}
完整路径示例:
{
"mcpServers": {
"activecampaign": {
"command": "node",
"args": ["/Users/seunome/projetos/activecampaign-mcp-server/dist/index.js"],
"env": {
"ACTIVECAMPAIGN_API_URL": "https://seuaccount.api-us1.com",
"ACTIVECAMPAIGN_API_KEY": "abc123def456ghi789"
}
}
}
}
确保项目已编译:
# 使用 npm
npm run build
# 推荐使用 pnpm
pnpm build
在配置到 Claude Desktop 之前,你可以测试服务器是否正常工作:
# 使用 MCP 检查器进行测试
pnpm inspect
# 或者直接测试
node dist/index.js
完全关闭并重新打开 Claude Desktop,以加载新的配置。
在 Claude Desktop 中,你可以使用以下命令:
若工具未显示:
dist/index.js 的路径正确npm run build使用系统环境变量的替代配置:
{
"mcpServers": {
"activecampaign": {
"command": "node",
"args": ["/caminho/para/seu/projeto/dist/index.js"]
}
}
}
在这种情况下,需在系统中设置环境变量:
export ACTIVECAMPAIGN_API_URL="https://seuaccount.api-us1.com"
export ACTIVECAMPAIGN_API_KEY="sua-api-key-aqui"
配置完成后,你可以直接在 Claude Desktop 中测试这些工具:
命令示例:
🔍 查找联系人:
"在 ActiveCampaign 中查找邮箱为 john@exemplo.com 的联系人信息"
📊 参与度分析:
"显示 ID 为 123 的联系人在过去 30 天内的邮件事件"
🔍 高级搜索:
"搜索姓名中包含 'CEO' 的所有联系人,并显示其完整信息"
📈 活动报告:
"分析 maria@empresa.com 在过去 3 个月内的参与行为"
{
"name": "get_contact_by_email",
"arguments": {
"email": "usuario@exemplo.com"
}
}
{
"name": "get_contact_by_id",
"arguments": {
"contactId": "123"
}
}
{
"name": "search_contacts",
"arguments": {
"query": "João Silva",
"limit": 10
}
}
{
"name": "get_contact_tracking_logs",
"arguments": {
"contactId": "123",
"limit": 50,
"offset": 0,
"eventType": "open",
"dateRange": {
"start": "2024-01-01",
"end": "2024-12-31"
}
}
}
{
"name": "get_contact_tracking_logs_by_email",
"arguments": {
"email": "usuario@exemplo.com",
"limit": 100,
"eventType": "click"
}
}
src/
├── index.ts # 主 MCP 服务器
├── types/
│ └── index.ts # TypeScript 接口和类型
└── tools/
├── index.ts # 工具导出
├── contacts.ts # 联系人工具
└── tracking.ts # 跟踪工具
{
"id": "123",
"email": "usuario@exemplo.com",
"firstName": "João",
"lastName": "Silva",
"phone": "+55 11 99999-9999",
"fieldValues": [
{
"field": "Empresa",
"value": "Exemplo Corp"
}
],
"tags": ["Cliente VIP", "Newsletter"],
"lists": [
{
"list": "Newsletter Mensal",
"status": "active"
}
],
"cdate": "2024-01-15T10:30:00Z",
"udate": "2024-01-20T14:45:00Z"
}
{
"summary": {
"total": 25,
"count": 25,
"limit": 100,
"offset": 0,
"eventTypes": {
"open": 15,
"click": 8,
"sent": 2
}
},
"events": [
{
"id": "456",
"type": "open",
"timestamp": "2024-01-15T10:30:00-03:00",
"date": "2024-01-15T13:30:00.000Z",
"contact": "123",
"subscriberId": "123",
"hash": "abc123",
"description": "Email foi aberto",
"campaign": {
"id": "789",
"name": "Newsletter Janeiro"
}
}
]
}
我们非常欢迎你的贡献!若要贡献代码,请按以下步骤操作:
git checkout -b feature/nova-funcionalidade)git commit -m '添加新功能')git push origin feature/nova-funcionalidade)# 安装依赖项
pnpm install
# 以开发模式运行
pnpm dev
# 运行测试
pnpm test
# 检查代码规范
pnpm lint
# 编译生产版本
pnpm build
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
若你遇到任何问题或有疑问,请按以下步骤操作: