Iterable MCP服务器

一个运行在Cloudflare Workers上的远程MCP服务器,使ChatGPT、Gemini CLI和其他基于Web的AI客户端能够连接到Iterable账户。

  • by sumeruchat
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sumeruchat/iterable-mcp-server-cloudflare-deployment

使用说明

可移植MCP服务器-Cloudflare Workers

在Cloudflare Workers上运行的Iterable的远程MCP服务器,使ChatGPT、Gemini CLI和其他基于web的AI客户端能够连接到您的Iterability帐户。

特性

  • ✅ 远程MCP服务器 -web客户端的HTTP/SSE传输
  • ✅ 23+只读工具 -活动、模板、用户、列表、旅程等。
  • ✅ 安全认证 -通过标头的API密钥(在传输过程中加密)
  • ✅ 权限门控 -PII、写入和发送限制
  • ✅ 多用户 -每个用户都提供自己的API密钥
  • ✅ 全局边缘 -部署在Cloudflare的网络上

快速入门-连接到公共服务器

无需部署!使用我们的公共服务器立即开始。

重要提示: 双子座网络(Gemini.google.com)确实如此 不 目前支持自定义MCP服务器。使用 Gemini CLI 或 ChatGPT 相反。


选项1:ChatGPT(Plus、Pro、Team或Enterprise)

ChatGPT在开发人员模式下通过连接器支持MCP服务器。

步骤:

  1. 启用开发者模式

    • 打开 ChatGPT
    • 首选 设置 (齿轮图标)→ 连接器 → 高级
    • 隐藏面 开发者模式
  2. 创建连接器

    • 点击 + 聊天面板中的图标
    • 选择 开发者模式 → 添加源
    • 或前往 设置 → 连接器 → 创建
  3. 配置连接器

    • 姓名: Iterable
    • 服务器URL: https://iterable-mcp-server.nodemaker.workers.dev/sse?api_key=YOUR_ITERABLE_API_KEY
    • 检查✅ “我信任此提供商”
    • 点击 创建
  4. 用它

    • 开始新的聊天并选择 开发者模式 从模型下拉列表中
    • 选择您的 可迭代 连接器
    • 问: “列出我的Iterable活动”

注: 替换 YOUR_ITERABLE_API_KEY 与你的实际 可重复的API密钥.


选项2:Gemini CLI

Gemini CLI支持MCP服务器,具有用于安全身份验证的自定义标头。

步骤:

  1. 安装Gemini CLI (如果尚未安装)

    npm install -g @anthropic-ai/gemini-cli
    
  2. 配置MCP服务器

    编辑 ~/.gemini/settings.json (如果不存在则创建):

    {
      "mcpServers": {
        "iterable": {
          "httpUrl": "https://iterable-mcp-server.nodemaker.workers.dev/mcp",
          "headers": {
            "X-Iterable-Api-Key": "YOUR_ITERABLE_API_KEY"
          }
        }
      }
    }
    

    或者使用环境变量插值:

    {
      "mcpServers": {
        "iterable": {
          "httpUrl": "https://iterable-mcp-server.nodemaker.workers.dev/mcp",
          "headers": {
            "X-Iterable-Api-Key": "$ITERABLE_API_KEY"
          }
        }
      }
    }
    

    然后设置环境变量:

    export ITERABLE_API_KEY="your_actual_api_key"
    
  3. 用它

    gemini
    # Ask: "What campaigns do I have in Iterable?"
    

替代方案:通过命令行添加

gemini mcp add iterable \
  --http-url "https://iterable-mcp-server.nodemaker.workers.dev/mcp" \
  --header "X-Iterable-Api-Key: YOUR_ITERABLE_API_KEY"

选项3:Claude桌面/光标(通过mcp-remote)

对于Claude Desktop或Cursor,请使用 mcp-remote 代理:

克劳德桌面版 (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "iterable": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://iterable-mcp-server.nodemaker.workers.dev/sse",
        "--header",
        "X-Iterable-Api-Key: YOUR_ITERABLE_API_KEY"
      ]
    }
  }
}

光标 (.cursor/mcp.json):

{
  "mcpServers": {
    "iterable": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://iterable-mcp-server.nodemaker.workers.dev/sse",
        "--header",
        "X-Iterable-Api-Key: YOUR_ITERABLE_API_KEY"
      ]
    }
  }
}

认证

服务器支持两种方法来传递您的Iterable API密钥:

方法 如何使用 安全
头球 X-Iterable-Api-Key: YOUR_KEY ✅ 以HTTPS加密
URL参数 ?api_key=YOUR_KEY ⚠️ 可能出现在日志中

建议: 尽可能使用标题(Gemini CLI、Claude Desktop)。使用ChatGPT的URL参数(其连接器格式要求)。

安全考虑

URL参数可以出现在:

  • 服务器访问日志
  • 浏览器历史
  • 代理日志

标头在HTTPS传输过程中被加密,当您的客户端支持它们时,它们是更安全的选择。


可用工具

活动工具

  • get_campaigns -列出所有带有筛选功能的活动
  • get_campaign -获取特定的活动详细信息
  • get_campaign_metrics -获取活动绩效指标
  • get_child_campaigns -获取定期活动的儿童活动

模板工具

  • get_templates -列出所有模板
  • get_email_template -按ID获取电子邮件模板
  • get_sms_template -按ID获取短信模板
  • get_push_template -按ID获取推送模板
  • get_inapp_template -按ID获取应用内模板
  • get_template_by_client_id -通过客户端ID获取模板

用户工具

  • get_user_by_email -通过电子邮件查找用户 (需要PII许可)
  • get_user_by_user_id -按用户ID查找用户 (需要PII许可)
  • get_user_fields -获取所有用户数据字段
  • get_sent_messages -获取发送给用户的消息 (需要PII许可)
  • get_user_events_by_email -获取用户事件 (需要PII许可)
  • get_user_events_by_user_id -获取用户事件 (需要PII许可)

列出工具

  • get_lists -获取所有订阅者列表
  • get_list_size -获取列表中的用户数
  • get_list_users -在列表中获取用户 (需要PII许可)

其他工具

  • get_channels -获取消息频道
  • get_message_types -获取消息类型
  • get_journeys -获取所有行程
  • get_experiment_metrics -获取实验指标
  • get_webhooks -获取webhooks
  • get_snippets -获取代码片段
  • get_snippet -获取特定代码段
  • get_catalogs -获取所有目录
  • get_catalog_items -从目录中获取项目
  • get_catalog_item -获取特定目录项

平台支持

平台 支持 授权方式 注意事项
ChatGPT ✅ 完整 URL参数 Plus、Pro、Team或Enterprise
Gemini CLI ✅ 完整 标头 最安全选项
Gemini Web ❌ 无 - 不支持自定义MCP服务器
克劳德桌面版 ✅ 通过代理 邮件头 使用mcp远程
光标 ✅ 通过代理 邮件头 使用mcp远程

部署您自己的服务器

1.克隆和安装

git clone https://github.com/your-org/iterable-mcp-server-cloudflare
cd iterable-mcp-server-cloudflare
npm install

2.本地运行

# Create .env file with your API key for testing
echo 'ITERABLE_API_KEY=your_api_key' > .env

# Start local server
npm run dev

服务器将在以下时间启动 http://localhost:8788

3.部署到Cloudflare

npm run deploy

您的服务器将在 https://iterable-mcp-server.your-account.workers.dev


配置

环境变量

变量 必填 默认 描述
ITERABLE_API_BASE_URL ❌ https://api.iterable.com 使用 https://api.eu.iterable.com 欧盟
ITERABLE_USER_PII ❌ false 启用暴露用户PII的工具
ITERABLE_ENABLE_WRITES ❌ false 启用修改数据的工具
ITERABLE_ENABLE_SENDS ❌ false 启用发送消息的工具

安全默认值

默认情况下,服务器在 安全只读模式:

  • ❌ 无用户个人身份信息暴露
  • ❌ 无写入操作
  • ❌ 未发送消息

要在您自己的部署中启用提升的功能,请执行以下操作:

wrangler secret put ITERABLE_USER_PII
# Enter: true

测试

# Unit tests
npm test

# Integration tests (local)
echo 'ITERABLE_API_KEY=your_api_key' > .env
npm run integration:local

# Integration tests (remote)
npm run integration:remote

故障排除

“需要API密钥”错误

请确保您正在传递API密钥:

# Via header (recommended)
curl -H 'X-Iterable-Api-Key: YOUR_KEY' \
  https://iterable-mcp-server.nodemaker.workers.dev/mcp

# Via URL parameter
curl 'https://iterable-mcp-server.nodemaker.workers.dev/mcp?api_key=YOUR_KEY'

ChatGPT显示“服务器被拒绝”

  1. 确保启用了开发人员模式
  2. 验证您的URL是否包含API密钥: ...?api_key=YOUR_KEY
  3. 检查您是否正在使用 /sse ChatGPT的端点

Gemini CLI未连接

  1. 验证您的 settings.json 是有效的JSON(没有尾随逗号)
  2. 检查文件位置: ~/.gemini/settings.json
  3. 验证您的API密钥是否正确

欧盟地区

如果您的Iterable帐户位于欧盟地区,请部署自己的服务器:

wrangler secret put ITERABLE_API_BASE_URL
# Enter: https://api.eu.iterable.com

许可证

麻省理工学院

学分

参考文献