使用说明
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 undeploy
iOS快捷方式设置
1.启用所需权限
在创建自动化之前,请在iPhone上启用以下功能:
- 设置→ 捷径→ 允许访问邮件 → On
- 设置→ 捷径→ 允许通知 → On
- 设置→ 将军→ 后台应用刷新 → On
2.创建自动化
- 打开 捷径 app → tap 自动化 (底部选项卡)
- 轻按 + → 新自动化 → 滚动至 消息 在通信
- 发送者 --留空(任何发件人)
- 消息包含 --键入单个空格
" "(iOS要求启用“立即运行”) - 切换 立即运行 → 打开(点击“不问”进行确认)
- 轻按 下一步
3.添加操作
按顺序添加以下操作:
动作1--将消息发送给您的员工
- 添加 获取URL内容
- 网址:
https://<your-worker>.workers.dev/messages - 方法:
POST - 标题:添加一个标题
- 密钥:
Authorization - 价值:
Bearer <your-api-token>
- 密钥:
- 请求正文:
JSON- 添加三个字段:
键 值 text快捷方式输入→ 内容 sender快捷方式输入→ 发送者 chat_identifier快捷方式输入→ 发送者
- 添加三个字段:
动作2——解析响应
-
添加 从输入中获取词典
- 输入:URL操作的结果
-
添加 获取字典值
- 密钥:
ok - 字典:先前操作的结果
- 密钥:
动作3--显示结果
- 添加 如果
- 条件:字典值
istrue - 添加 显示通知 内部If块:
- 标题:
✓ Message forwarded
- 标题:
- 添加 否则 块:
- 添加 显示通知 内部否则块:
- 标题:
✗ Forward failed - 正文:URL内容(原始错误响应)
- 标题:
- 条件:字典值
4.保存并测试
轻按 完成。从另一台设备给自己发送一条消息——你应该看到一个“✓消息转发”的通知,消息会出现在你的D1数据库中。
通过以下方式进行验证:
curl -H "Authorization: Bearer <api_token>" \
https://<worker>.workers.dev/messages
MCP设置
imsg-mcp公开了一个mcp服务器 /mcp 用于Claude Code或任何MCP兼容客户端。
复制示例并填写您的值:
cp .mcp.json.example .mcp.json
.mcp.json:
{
"mcpServers": {
"imsg-mcp": {
"type": "http",
"url": "https://<your-worker>.workers.dev/mcp",
"headers": {
"Authorization": "Bearer <your-api-token>"
}
}
}
}
.mcp.json 是gitignored-它包含您的凭据。
可用工具
| 工具 | 说明 |
|---|---|
get_messages(count?) |
获取最新的iMessages(默认1条,最多50条) |
查询消息
# Fetch latest 50 messages
curl -H "Authorization: Bearer <api_token>" \
https://<worker>.workers.dev/messages
# Filter by sender
curl -H "Authorization: Bearer <api_token>" \
"https://<worker>.workers.dev/messages?sender=%2B15555550123"
# Paginate (before Unix timestamp)
curl -H "Authorization: Bearer <api_token>" \
"https://<worker>.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())
);
许可证
麻省理工学院