IFTTT MCP服务器
npx@modelcontextprotocol/检查器 \ 紫外线 \ --目录/Users/ram/Github/mcp-ifttt \ 跑 \ mcp-ifttt
生产准备就绪 模型上下文协议(MCP) 该服务器使Claude能够向IFTTT webhooks发送JSON消息,从而解锁数百个服务的自动化工作流程。
特性
- 基于FastMCP 使用现代Python异步/等待模式
- 双重运输支持:stdio用于本地开发,SSE(服务器发送事件)用于生产
- 生产准备就绪:具有健康检查和监控功能的干净架构
- 安全:基于环境的配置,没有硬编码的秘密
- 稳健的错误处理:可操作的错误消息指导用户找到解决方案
- Pydantic验证:运行时输入验证确保数据完整性
你能自动化什么?
借助IFTTT webhooks,Claude可以在700多个服务中触发操作:
- 📱 向移动设备发送通知
- 📊 将数据记录到Google表格、Airtable或数据库
- 🏠 控制智能家居设备(灯、恒温器、锁)
- 📧 通过Gmail发送电子邮件或通过Twilio发送短信
- 🐦 发布到社交媒体(推特、领英、脸书)
- 📝 在Todoist、Trello或Asana中创建任务
- 🔔 触发松弛/不协调通知
- 🌡️ 记录传感器数据以供分析
- 还有更多!
快速开始
先决条件
- Python 3.10或更高版本
- 紫外线 用于依赖管理(推荐)或pip
- 一 IFTTT账户 启用Webhooks服务
- 您的IFTTT webhook密钥来自 ifttt.com/maker_webhooks/settings
本地安装
- 克隆存储库:
git clone https://github.com/yourusername/mcp-ifttt.git
cd mcp-ifttt- 安装依赖项:
使用紫外线(推荐):
uv sync或者使用pip:
pip install -e .- 配置您的webhook URL:
创建一个 .env 文件(使用 .env.example 作为模板):
cp .env.example .env编辑 .env 并添加您的IFTTT webhook URL:
IFTTT_WEBHOOK_URL=https://maker.ifttt.com/trigger/your_event_name/json/with/key/your-webhook-key- 运行服务器:
# For local development (stdio mode)
uv run mcp-ifttt
# or with pip: python -m mcp_ifttt.server
# For HTTP mode (SSE transport)
TRANSPORT=http uv run mcp-ifttt部署
部署环境变量
部署到任何平台时,请设置以下环境变量:
IFTTT_WEBHOOK_URL:您的IFTTT webhook URL(必填)TRANSPORT:设置为http用于远程部署PORT:服务器端口(取决于平台,通常自动设置)
部署平台
此FastMCP服务器可以部署到:
- 铁路:设置
TRANSPORT=http和IFTTT_WEBHOOK_URL环境变量 - 渲染:使用Python运行时并设置环境变量
- Fly.io:使用Docker或Python构建包进行部署
- AWS Lambda:使用合适的FastMCP适配器
- 谷歌云运行:使用Docker容器
服务器支持远程部署的SSE(服务器发送事件)传输。
配置
Claude桌面设置
地方发展(stdio)
添加到您的Claude桌面配置 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ifttt": {
"command": "uv",
"args": ["run", "mcp-ifttt"],
"cwd": "/path/to/mcp-ifttt",
"env": {
"IFTTT_WEBHOOK_URL": "https://maker.ifttt.com/trigger/your_event/json/with/key/your-key"
}
}
}
}或者,如果使用Python系统:
{
"mcpServers": {
"ifttt": {
"command": "python",
"args": ["-m", "mcp_ifttt.server"],
"cwd": "/path/to/mcp-ifttt",
"env": {
"IFTTT_WEBHOOK_URL": "https://maker.ifttt.com/trigger/your_event/json/with/key/your-key"
}
}
}
}用于远程部署(HTTP/SSE)
{
"mcpServers": {
"ifttt": {
"url": "https://your-deployment-url.com/sse",
"transport": "sse"
}
}
}备注:你不需要包括 IFTTT_WEBHOOK_URL 在使用远程部署时,在客户端配置中-它在服务器上配置。
IFTTT Webhook设置
- 首选 IFTTT Webhooks设置
- 复制您的webhook密钥
- 创建新小程序:
- 如果:Webhooks-接收web请求 - 事件名称: your_event_name (在webhook URL中使用此项) - 然后:选择任何操作(Gmail、表格、通知等)
您的webhook URL格式:
https://maker.ifttt.com/trigger/{event_name}/json/with/key/{your_key}用法
可用工具
ifttt_send_webhook
向您配置的IFTTT webhook发送JSON消息。
参数:
payload(object,必填):要发送给IFTTT的JSON消息
例子:
{
"payload": {
"message": "Task completed!",
"priority": "high",
"timestamp": "2024-01-01T12:00:00Z"
}
}答复:
Message sent to IFTTT successfully!
Status: 200
Response: "Congratulations! You've fired the your_event_name event"示例工作流
发送通知:
"Hey Claude, send a notification to IFTTT that the deployment is complete"将数据记录到Google表格:
"Log this data to my spreadsheet: temperature 72.5, humidity 45%"触发智能家居操作:
"Turn on the living room lights via IFTTT"发展
项目结构
mcp-ifttt/
├── src/
│ └── mcp_ifttt/
│ ├── __init__.py # FastMCP server implementation
│ └── server.py # Server entry point
├── pyproject.toml # Python dependencies
├── uv.lock # Dependency lock file
├── Dockerfile # Docker build configuration
├── .env.example # Environment variable template
└── README.md # This file发展模式
FastMCP支持开发过程中的热重载。安装开发依赖项:
uv add --dev fastmcp[dev]使用自动重新加载运行:
uv run mcp dev mcp_ifttt.serverMCP检验员测试
使用MCP检查器测试服务器:
# For stdio mode
npx @modelcontextprotocol/inspector uv run mcp-ifttt
# For HTTP mode
TRANSPORT=http uv run mcp-ifttt
# Then in another terminal:
npx @modelcontextprotocol/inspector http://localhost:3000/sse环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
IFTTT_WEBHOOK_URL | 是 | - | 带密钥的IFTTT webhook URL |
TRANSPORT | 没有 | stdio | 运输方式: stdio 对于本地, http 用于远程 |
PORT | 没有 | 3000 | HTTP服务器端口(由部署平台自动设置) |
错误处理
服务器提供可操作的错误消息:
- 400错误请求:webhook URL或负载格式无效
- 401未经授权:IFTTT webhook密钥无效
- 403禁止:拒绝访问webhook
- 404未找到:未找到Webhook或小程序
- 429价格有限:请求太多,请等待重试
- 500/502/503:IFTTT服务暂时不可用
- 连接错误:网络或连接问题
所有错误都包括解决建议。
监控
日志
查看服务器日志:
# Local logs (stderr)
uv run mcp-ifttt 2>&1 | tee server.log
# Deployment platform logs (varies by platform)
# Railway: railway logs
# Render: View in dashboard
# Fly.io: fly logs故障排除
“未配置IFTTT webhook URL”
解决方案:设置 IFTTT_WEBHOOK_URL 环境变量 .env (本地)或部署平台仪表板(生产)。
“未找到Webhook”(404)
解决方案:验证:
- webhook URL中的事件名称与IFTTT小程序匹配
- webhook密钥正确
- 小程序在IFTTT中启用
“连接超时”
解决方案:
- 检查您的互联网连接
- 验证IFTTT服务状态 status.ifttt.com
- 尝试在中增加超时时间 src/mcp-ifttt/初始化南美国家巴拉圭的缩写(Paraguay) (第111行)
部署时服务器不会启动
解决方案:
- 检查部署平台日志是否有错误
- 验证
TRANSPORT=http在环境变量中设置 - 确保
IFTTT_WEBHOOK_URL在平台环境变量中配置 - 验证Python 3.10+是否可用
安全最佳实践
- ✅ 永不承诺
.env文件或硬编码webhook密钥 - ✅ 对所有机密使用环境变量
- ✅ 在IFTTT设置中定期旋转webhook键
- ✅ 使用部署平台的内置环境变量加密
- ✅ 在IFTTT仪表板中监控webhook使用情况
- ✅ 审查
.gitignore确保秘密永不泄露
贡献
欢迎投稿!拜托:
- 复刻仓库
- 创建要素分支
- 通过测试进行更改
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
- 问题:
- MCP文件: 模型上下文协议.io
- IFTTT帮助: help.ifttt.com
致谢
内置:
______________________________________________________________________
由以下材料制成❤️ 克劳德生态系统
