克洛岱尔
____ _ _ __ __ _ _
/ ___| | __ _ _ _ __| | ___ | \/ | __ _(_) |
| | | |/ _` | | | |/ _` |/ _ \| |\/| |/ _` | | |
| |___| | (_| | |_| | (_| | __/| | | | (_| | | |
\____|_|\__,_|\__,_|\__,_|\___||_| |_|\__,_|_|_|
Welcome to ClaudeMail实例间消息传递 克劳德代码 通过MCP。在不同服务器上运行的Claude Code实例之间发送结构化简报——没有电子邮件,没有Slack,没有外部API。
为跨服务器(开发、测试、生产、CI)运行多个Claude Code实例的团队而构建,这些团队需要在不离开终端的情况下进行协调。
为什么
如果你在多台机器上运行Claude Code,你的实例就无法相互通信。ClaudeMail解决了这个问题。它为每个实例提供一个收件箱,让它们通过HTTP交换结构化的降价简报,并跟踪整个车队的行动项目。
没有账户。没有云服务。只需要一个MCP服务器、一个SQLite数据库和您自己的机器之间的HTTP。
运作原理
ClaudeMail与ClaudeCode一起作为MCP服务器运行。舰队中的每台服务器都运行一个轻量级的HTTP网关。实例通过网格发送和接收降价简报——没有中央服务器,没有中继。
┌─────────────────┐ HTTP ┌─────────────┐
│ Server A │◄────────────────►│ Server B │
│ :3300 │ briefs + pings │ :3301 │
│ │ │ │
│ ┌──────┐┌──────┐│ │ ┌─────────┐ │
│ │alpha ││bravo ││ │ │ charlie │ │
│ └──────┘└──────┘│ │ └─────────┘ │
│ ┌──────┐ │ └─────────────┘
│ │delta │ │
│ └──────┘ │
└─────────────────┘节点 是服务器。 实例 这些服务器上有Claude Code进程。每个实例都有一个呼号(PID锁定),这样并发会话就不会发生冲突。您可以根据需要在每台服务器上运行任意数量的实例。
特性
- 简报 --带有frontmatter(日期、发件人、收件人、操作项)的结构化标记消息
- 收件箱 --已读/未读跟踪、主演、摘要摘要
- 行动 --自动从简报中提取、可分配、优先、可关闭
- 名册 --具有心跳和读取覆盖率的实例注册表
- 呼号 --每个会话的PID锁定标识,支持每个服务器任意数量的并发实例
- 网状运输 --节点之间的直接HTTP,无需中央服务器或中继
- SQLite存储 --一切都是本地的,云中没有
- 健康检查 --检测正在进行的过时工作、过期项目、工作负载不平衡
工具
ClaudeMail注册了12个Claude Code可以直接调用的MCP工具:
消息传递
| 工具 | 它做什么 |
|---|---|
claudemail_send | 向一个或所有实例发送简报 |
claudemail_check | 显示未读计数,不标记为已读 |
claudemail_read | 阅读特定的简报(完整内容),标记为已读 |
claudemail_digest | 总结所有未读的简报,标记为已读 |
claudemail_star | 在简报上切换星号 |
行动
| 工具 | 它做什么 |
|---|---|
claudemail_actions | 列出待处理/wip操作项目 |
claudemail_action_update | 更新行动状态、优先级或受让人 |
claudemail_action_create | 创建新的操作项 |
claudemail_action_list | 筛选操作列表(按状态、受让人、优先级) |
基础设施
| 工具 | 它做什么 |
|---|---|
claudemail_status | 仪表板——文件计数、收件箱统计、节点可达性 |
claudemail_roster | 实例注册表和心跳状态 |
claudemail_checkup | 健康检查——过期WIP、过期项目、工作负载 |
快速开始
1.克隆和构建
git clone https://github.com/ai461/claudemail.git
cd claudemail/server
npm install
npm run build2.配置
mkdir -p ~/.claudemail
cp config.example.json ~/.claudemail/config.json编辑 ~/.claudemail/config.json 对于您的设置。以下是2服务器配置的样子:
{
"nodes": [
{ "id": "server1", "ip": "10.0.0.1", "gateway_port": 3300 },
{ "id": "server2", "ip": "10.0.0.2", "gateway_port": 3301 }
],
"instances": [
{ "id": "instance1", "node_id": "server1", "callsigns": ["alpha", "bravo"] },
{ "id": "instance2", "node_id": "server2", "callsigns": ["charlie"] }
],
"signatures": {
"alpha": "// alpha, over",
"bravo": "// bravo, clear",
"charlie": "// charlie out"
},
"mailbox_dir": "~/.claudemail/mailbox",
"db_path": "~/.claudemail/claudemail.db",
"registry_db_path": "~/.claudemail/registry.db",
"ping_dir": "~/.claudemail/pings",
"poll_interval_ms": 20000,
"heartbeat_interval_ms": 60000
}根据需要为每个节点添加更多实例和呼号——每个服务器可以运行的实例数量没有限制。
时间: poll_interval_ms 控制轮询器检查新内裤的频率(默认值:20秒)。 heartbeat_interval_ms 控制实例向花名册宣布自己的频率(默认值:60秒)。两者都可以根据部署进行配置。
配置搜索路径: ~/.claudemail/config.json, ~/.config/claudemail/config.json, /etc/claudemail/config.json,或设置 CLAUDEMAIL_CONFIG 有人是。
3.用克劳德代码注册
添加到您的 .claude.json 或 .mcp.json:
{
"mcpServers": {
"claudemail": {
"type": "stdio",
"command": "node",
"args": ["/path/to/claudemail/server/dist/index.js"]
}
}
}4.预批准工具(推荐)
添加到您的 settings.local.json 要跳过权限提示,请执行以下操作:
{
"permissions": {
"allow": [
"mcp__claudemail__claudemail_status",
"mcp__claudemail__claudemail_check",
"mcp__claudemail__claudemail_checkup",
"mcp__claudemail__claudemail_read",
"mcp__claudemail__claudemail_send",
"mcp__claudemail__claudemail_digest",
"mcp__claudemail__claudemail_star",
"mcp__claudemail__claudemail_actions",
"mcp__claudemail__claudemail_action_update",
"mcp__claudemail__claudemail_roster",
"mcp__claudemail__claudemail_action_list",
"mcp__claudemail__claudemail_action_create",
"mcp__claudemail__claudemail_waiting",
"mcp__claudemail__claudemail_clean"
]
}
}5.启动时自动检查(可选)
添加一个钩子 settings.json 因此,每次会话开始时,ClaudeMail都会检查您的收件箱:
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node /path/to/claudemail/server/mail-check.js",
"timeout": 5,
"statusMessage": "Checking mail..."
}
]
}
]
}
}您还可以在终端底部添加一个显示未读计数的持久状态行:
{
"statusLine": {
"type": "command",
"command": "node -e \"const{openDb,getUnreadCount}=require('/path/to/claudemail/server/dist/db');const{loadConfig}=require('/path/to/claudemail/server/dist/config');try{const c=loadConfig();const db=openDb(c.dbPath);const v=require('/path/to/claudemail/server/package.json').version;const n=getUnreadCount(db);db.close();process.stdout.write(n>0?'\\u2709 ClaudeMail v'+v+' | '+n+' unread':'\\u2709 ClaudeMail v'+v+' | clear')}catch(e){process.stdout.write('\\u2709 ClaudeMail | offline')}\""
}
}6.在每台服务器上重复
在您的机群中的每台服务器上安装ClaudeMail。每台服务器都需要:
- 它自己的
config.json(内容相同,只需确保节点IP可访问) - 服务器之间的HTTP连接(Tailscale、WireGuard、LAN等)
- 网关端口打开(默认3300+)
用法示例
注册后,Claude Code可以直接使用这些工具:
发送简报:
“向实例2发送一份标题为“部署阻止程序”的简报,解释数据库迁移问题”
检查收件箱:
“查看我的收件箱”或“有新的内裤吗?”
摘要未读:
“汇总所有未读简报并总结行动项目”
轨道工程:
“显示所有待处理的操作”或“将操作5标记为已完成”
健康检查:
“检查一下——有什么过期或陈旧的东西吗?”
公文包是带有YAML frontmatter的markdown文件:
---
title: Deploy Blocker — DB Migration
date: 2026-03-24
from: alpha (server1)
to: charlie (server2)
action: Review migration script before deploying
---
The migration adds a NOT NULL column without a default value.
Existing rows will fail. Either add a default or backfill first.建筑
server/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── config.ts # Config loading + validation
│ ├── db.ts # SQLite schema + queries
│ ├── hypernet.ts # Mesh networking (sync, gateway, heartbeat)
│ ├── http-transport.ts # HTTP transport layer
│ ├── callsign.ts # PID-locked callsign management
│ └── tools/ # One file per MCP tool
│ ├── send.ts
│ ├── check.ts
│ ├── read.ts
│ ├── digest.ts
│ ├── star.ts
│ ├── status.ts
│ ├── roster.ts
│ ├── actions.ts
│ ├── waiting.ts
│ └── clean.ts
├── tests/ # Vitest test suite
├── package.json
└── tsconfig.json- SQLite 用于收件箱状态、操作和注册表(通过
better-sqlite3) - HTTP网格 用于节点之间的简短传输(无SSH,无外部deps)
- MCP-SDK (
@modelcontextprotocol/sdk)用于Claude Code集成 - TypeScript 贯穿始终,严格模式
需求
- Node.js>=18
- 服务器之间的HTTP连接(Tailscale、WireGuard、LAN、VPN等)
- 支持MCP的Claude代码
技能(可选)
ClaudeMail包含一个可选的Claude Code技能,该技能将所有12个工具打包成一个 /mail 命令:
cp -r skill/ ~/.claude/skills/mail/然后使用 /mail digest, /mail send "title", /mail actions等等。看 skill/README.md 查看完整的命令列表。
贡献
看 贡献.md 作为指导方针。
许可证
麻省理工学院——见 许可证
作者
由...建造 Ben@英国投资
