imsg mcp
通过iOS快捷方式将iMessage转发到Cloudflare Worker+D1数据库,并使用MCP服务器进行AI访问。
建筑
iPhone (incoming message)
└── iOS Shortcut automation
└── POST /messages ──► Cloudflare Worker
└── D1 Database
└── GET /messages- iOS快捷方式 --在每条传入消息上触发,向worker发送发送者+文本
- 工人 --Cloudflare Worker(TypeScript)使用Bearer令牌进行身份验证,存储具有服务器端时间戳的消息
- 数据库 --Cloudflare D1(SQLite),可按发件人或时间戳查询
需求
- 运行iOS 17的iPhone+
- Cloudflare帐户(免费层就足够了)
- 包子 ≥ 1.0
设置
git clone https://github.com/ShunL12324/imsg-mcp.git
cd imsg-forwarder
bun install配置
cp config.example.yaml config.yaml编辑 config.yaml:
cloudflare:
account_id: "" # Cloudflare account ID (dash.cloudflare.com → right sidebar)
api_token: "" # API token with Workers:Edit + D1:Edit permissions
worker_name: "imsg-forwarder"
db_name: "imsg-forwarder"
api_token: "" # Shared secret for Shortcut → worker auth (openssl rand -hex 32)配置位置: config.yaml 在repo根目录中(旁边 package.json).
Cloudflare API代币
在以下位置创建令牌 dash.cloudflare.com/profile/api-tokes 与:
| 权限 | 级别 |
|---|---|
| Workers脚本--编辑 | 帐户 |
| D1--编辑 | 帐户 |
CLI使用情况
部署
配置Cloudflare Worker和D1数据库。
bun run deploy诊断
检查配置完整性、Cloudflare令牌有效性、Workers/D1权限和worker可达性。
bun run doctor解除部署
删除Cloudflare Worker和D1数据库。
bun run undeployiOS快捷方式设置
1.启用所需权限
在创建自动化之前,请在iPhone上启用以下功能:
- 设置→ 捷径→ 允许访问邮件 → On
- 设置→ 捷径→ 允许通知 → On
- 设置→ 将军→ 后台应用刷新 → On
2.创建自动化
- 打开 捷径 app → tap 自动化 (底部选项卡)
- 轻按 + → 新自动化 → 滚动至 消息 在通信
- 发送者 --留空(任何发件人)
- 消息包含 --键入单个空格
" "(iOS要求启用“立即运行”) - 切换 立即运行 → 打开(点击“不问”进行确认)
- 轻按 下一步
3.添加操作
按顺序添加以下操作:
动作1--将消息发送给您的员工
- 添加 获取URL内容
- 网址:
https://.workers.dev/messages - 方法:
POST - 标题:添加一个标题
- 密钥: Authorization - 价值: Bearer
- 请求正文:
JSON
- 添加三个字段:
| 键 | 值 |
|---|---|
text | 快捷方式输入→ 内容 |
sender | 快捷方式输入→ 发送者 |
chat_identifier | 快捷方式输入→ 发送者 |
动作2——解析响应
- 添加 从输入中获取词典
- 输入:URL操作的结果
- 添加 获取字典值
- 密钥: ok - 字典:先前操作的结果
动作3--显示结果
- 添加 如果
- 条件:字典值 is true - 添加 显示通知 内部If块: - 标题: ✓ Message forwarded - 添加 否则 块: - 添加 显示通知 内部否则块: - 标题: ✗ Forward failed - 正文:URL内容(原始错误响应)
4.保存并测试
轻按 完成。从另一台设备给自己发送一条消息——你应该看到一个“✓消息转发”的通知,消息会出现在你的D1数据库中。
通过以下方式进行验证:
curl -H "Authorization: Bearer " \
https://.workers.dev/messagesMCP设置
imsg-mcp公开了一个mcp服务器 /mcp 用于Claude Code或任何MCP兼容客户端。
复制示例并填写您的值:
cp .mcp.json.example .mcp.json.mcp.json:
{
"mcpServers": {
"imsg-mcp": {
"type": "http",
"url": "https://.workers.dev/mcp",
"headers": {
"Authorization": "Bearer "
}
}
}
}.mcp.json 是gitignored-它包含您的凭据。
可用工具
| 工具 | 说明 |
|---|---|
get_messages(count?) | 获取最新的iMessages(默认1条,最多50条) |
查询消息
# Fetch latest 50 messages
curl -H "Authorization: Bearer " \
https://.workers.dev/messages
# Filter by sender
curl -H "Authorization: Bearer " \
"https://.workers.dev/messages?sender=%2B15555550123"
# Paginate (before Unix timestamp)
curl -H "Authorization: Bearer " \
"https://.workers.dev/messages?before=1700000000&limit=100"响应架构
{
"messages": [
{
"id": 1,
"text": "Hello",
"sender": "+15555550123",
"chat_identifier": "+15555550123",
"received_at": 1700000000
}
]
}数据库模式
CREATE TABLE messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
text TEXT,
sender TEXT,
chat_identifier TEXT,
received_at INTEGER NOT NULL DEFAULT (unixepoch())
);许可证
麻省理工学院
