使用说明
信号mcp
桥接的MCP服务器 克劳德代码 到 信号 Messenger 通过 信号cli-rest api.
作为一个 克劳德代码频道 --它通过WebSocket轮询入站Signal消息,并将其作为通道通知传递,因此Claude Code可以实时读取和响应Signal对话。
先决条件
- Python 3.11+
- 跑步 信号cli-rest api 实例(json-rpc模式)
- 链接到Signal-cli-rest-api的已注册Signal bot编号
安装
# Clone and install
git clone https://github.com/Matthew-IDKA/signal-mcp.git
cd signal-mcp
pip install .
# Or install in development mode
pip install -e ".[dev]"
配置
所有配置都是通过环境变量进行的。
必需
| 变量 | 描述 |
|---|---|
SIGNAL_API_URL |
您的signal-cli-rest-api实例的基本URL(例如。, http://localhost:8093) |
SIGNAL_BOT_NUMBER |
用信号cli注册的电话号码(例如。, +15551234567) |
SIGNAL_CHANNEL_TYPE |
dm 用于直接消息或 group 进行群聊 |
SIGNAL_CHANNEL_ID |
收件人电话号码(用于 dm)或组ID(用于 group) |
可选的
| 变量 | 默认值 | 描述 |
|---|---|---|
SIGNAL_ALLOWED_SENDERS |
(空--所有发件人) | 逗号分隔的电话号码。只有来自这些发件人的消息才会转发给Claude Code。建议用于安全。 |
SIGNAL_APPROVAL_SENDERS |
(空-禁用) | 逗号分隔的电话号码,授权通过Signal批准/拒绝工具权限请求。 |
SIGNAL_POLL_INTERVAL |
2 |
WebSocket重新连接尝试之间的秒数(在回退期间使用)。 |
Claude代码集成
使用克劳德代码注册服务器:
claude mcp add signal-mcp \
-e SIGNAL_API_URL=http://localhost:8093 \
-e SIGNAL_BOT_NUMBER=+15551234567 \
-e SIGNAL_CHANNEL_TYPE=dm \
-e SIGNAL_CHANNEL_ID=+15559876543 \
-e SIGNAL_ALLOWED_SENDERS=+15559876543 \
-- signal-mcp
或者使用MCP配置文件(请参阅 mcp-config.example.json).
工具
| 工具 | 说明 |
|---|---|
reply |
向当前信号频道发送短信 |
fetch_messages |
通道连接的诊断检查(消息通过WebSocket自动到达) |
send_attachment |
向通道发送一个文件(最大95 MB) |
download_attachment |
将收到的附件下载到本地磁盘 |
react |
使用表情符号回复消息 |
send_typing |
显示或隐藏打字指示器 |
list_groups |
列出机器人所属的信号组 |
get_contacts |
列出机器人Signal帐户已知的联系人 |
运作原理
Signal app --> signal-cli-rest-api --WebSocket--> signal-mcp --Channel notification--> Claude Code
Claude Code --tool call--> signal-mcp --HTTP POST--> signal-cli-rest-api --> Signal app
与典型的请求/响应MCP服务器不同,signal MCP运行一个 持久WebSocket侦听器 除了MCP stdio传输之外。入站信号消息通过WebSocket到达,通过发送方分配列表进行过滤,并作为 notifications/claude/channel Claude Code内联呈现的事件。
通过MCP工具调用的出站通信流(reply, react等等),信号mcp将其转换为信号cli-rest-api HTTP请求。
权限中继
当 SIGNAL_APPROVAL_SENDERS 配置后,Claude Code工具权限提示将转发给Signal。已批准的发件人可以回复 y <id> 或 n <id> 允许或拒绝远程执行工具。
运行测试
pip install -e ".[dev]"
pytest
许可证
麻省理工学院——见 许可证.
