可移植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服务器。
步骤:
- 启用开发者模式
- 打开 ChatGPT - 首选 设置 (齿轮图标)→ 连接器 → 高级 - 隐藏面 开发者模式
- 创建连接器
- 点击 + 聊天面板中的图标 - 选择 开发者模式 → 添加源 - 或前往 设置 → 连接器 → 创建
- 配置连接器
- 姓名: Iterable - 服务器URL: https://iterable-mcp-server.nodemaker.workers.dev/sse?api_key=YOUR_ITERABLE_API_KEY - 检查✅ “我信任此提供商” - 点击 创建
- 用它
- 开始新的聊天并选择 开发者模式 从模型下拉列表中 - 选择您的 可迭代 连接器 - 问: *“列出我的Iterable活动”*
注: 替换 YOUR_ITERABLE_API_KEY 与你的实际 可重复的API密钥.______________________________________________________________________
选项2:Gemini CLI
Gemini CLI支持MCP服务器,具有用于安全身份验证的自定义标头。
步骤:
- 安装Gemini CLI (如果尚未安装)
npm install -g @anthropic-ai/gemini-cli- 配置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"- 用它
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-获取webhooksget_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 install2.本地运行
# 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显示“服务器被拒绝”
- 确保启用了开发人员模式
- 验证您的URL是否包含API密钥:
...?api_key=YOUR_KEY - 检查您是否正在使用
/sseChatGPT的端点
Gemini CLI未连接
- 验证您的
settings.json是有效的JSON(没有尾随逗号) - 检查文件位置:
~/.gemini/settings.json - 验证您的API密钥是否正确
欧盟地区
如果您的Iterable帐户位于欧盟地区,请部署自己的服务器:
wrangler secret put ITERABLE_API_BASE_URL
# Enter: https://api.eu.iterable.com______________________________________________________________________
许可证
麻省理工学院
学分
- 基于 @可迭代/mcp Greg Methvin
- 建于 Cloudflare代理SDK
