关于 mcp-crewd-rs
mcp-crewd-rs 是用于协调 AI Worker 会话的本地守护进程,面向 Claude Code、Codex CLI 和其他 MCP 客户端。它通过 Unix 套接字运行 Worker Cell,并以追加式哈希链审计日志记录活动。
主要功能
- 01启动并监管 Worker Cell
- 02发送任务并交换消息
- 03调度任务并跟踪 Cell 状态
- 04按 Cell 配置能力与身份验证
- 05追加式哈希链审计日志
适用场景
- 01将一个 AI 会话的任务委派给 Worker 会话
- 02协调多个 Cell 间的消息与回复
- 03通过 MCP 客户端查看 Cell 状态和结果
- 04验证守护进程的审计记录
MCP 相关
`crew mcp` stdio shim 提供按 Cell 配置的工具,用于启动、通信和跟踪 Worker Cell。Worker 模式的 shim 会隐藏启动能力,以避免不受控的嵌套扩展。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-crewd-rs
crewd 是一个面向 AI Agent 的单元织网守护进程:它让一个 AI 会话(Claude Code、Codex CLI 或任意 MCP 客户端)通过单个 MCP 服务生成、协调并与其他 AI 工作会话——单元——通信。使用 Rust 编写,每个组件都是一个静态二进制文件,不监听网络:所有操作都通过本地 Unix 套接字运行。
它属于 Rust MCP 服务系列 mcp-*-rs。
┌────────────┐ MCP stdio ┌──────┐ UDS (NDJSON) ┌───────┐ spawns ┌─────────────────┐
│ Claude Code│─────────────▶│ crew │─────────────────▶│ crewd │──────────▶│ engine processes│
│ / Codex CLI│ cell_* tools│ shim │ 0600 socket │daemon │ │ claude / codex │
└────────────┘ └──────┘ └───────┘ │ / pi workers │
└─────────────────┘
组件
| 二进制文件 | 作用 |
|---|---|
crewd | 守护进程:单元注册表、作业调度器、引擎监管器、消息总线、SQLite(WAL)存储、仅追加的哈希链审计日志 |
crew | 运维 CLI(status、inspect、audit verify)+ 每个单元的 MCP stdio 垫片(crew mcp) |
MCP 工具
通过 crew mcp 按单元挂载:
- 织网 —
cell_spawn(启动工作单元:引擎 + 配置档案 + 任务),cell_send_task、cell_status、cell_result、cell_cancel、cell_list - 总线 —
cell_send(发送后不等待),cell_ask/cell_await(提问工单 + 长轮询回复)、cell_reply、cell_broadcast、cell_inbox
工作单元会通过 --worker-mode 获取相同的垫片,此模式会隐藏生成入口(避免失控的嵌套扩散)。
引擎
| 引擎 | 方式 | 会话连续性 |
|---|---|---|
claude | 基于 Claude Agent SDK 的 Node 垫片(shim/claude-shim.mjs) | 按会话 ID 恢复 |
codex | codex app-server JSON-RPC(v2 协议) | 按线程 ID 重新连接 |
pi | pi rpc | 无(v0) |
Claude 配置档案用于选择引擎获取凭据的位置。max(默认值)使用主机自身的 Claude 凭据,无需额外配置。其他配置档案会将引擎路由至兼容 Anthropic 的端点,并从 keys_env_path 读取该配置档案的 bearer 令牌(绝不会从 crewd.toml、argv 或日志读取);内置配置档案定义在 engine-claude 适配器中。
单元的身份由其工作目录决定:生成的引擎会加载你传给 cell_spawn 的 cwd 中的 CLAUDE.md、.mcp.json、记忆和技能。因此,一个守护进程可以通过在不同项目根目录中生成单元,服务于多个“角色”。
安装
预编译二进制文件(推荐)——从最新版本下载适用于你平台的归档文件并解压;其中包含 crewd、crew 和 shim/ 目录:
tar xzf mcp-crewd-rs-x86_64-unknown-linux-gnu.tar.gz
install -m755 mcp-crewd-rs-*/crewd mcp-crewd-rs-*/crew ~/.local/bin/
预编译目标平台(Linux + Android):x86_64-unknown-linux-gnu、
x86_64-unknown-linux-musl、aarch64-unknown-linux-gnu、
aarch64-unknown-linux-musl(边缘设备 / ARM)、aarch64-linux-android(Termux)。
macOS:不提供预编译二进制文件(需要 Apple 代码签名)。
请改为从源代码构建——macOS 已通过 CI 测试(在 macOS 上,点对点身份验证使用
getpeereid + LOCAL_PEERPID,而不是 SO_PEERCRED):
git clone https://github.com/DioNanos/mcp-crewd-rs && cd mcp-crewd-rs
cargo build --release --locked
install -m755 target/release/crewd target/release/crew ~/.local/bin/
从源代码构建(任何平台)——Rust ≥ 1.85:
cargo build --release
install -m 0755 target/release/crewd target/release/crew ~/.local/bin/
引擎运行时要求:claude 引擎需要 Node ≥ 20,并在垫片旁安装
@anthropic-ai/claude-agent-sdk(cd shim && npm install);codex 引擎需要在守护进程的
PATH 中提供 codex CLI。
配置
crewd.toml(通过 --config 显式传入,不会根据当前工作目录推导):
runtime_dir = "/home/you/.config/crewd/runtime" # socket, db, audit, tokens
acl_path = "/home/you/.config/crewd/acl.toml"
# Optional: only for claude profiles that authenticate against an
# Anthropic-compatible endpoint. A KEY=value env file holding that profile's
# bearer token(s), e.g. `PROVIDER_API_KEY=...`. Omit for the default `max`.
keys_env_path = "/home/you/.config/crewd/keys.env"
acl.toml — 每个已注册的单元对应一个区段,包含其引擎和能力(send、ask、reply、broadcast、read_inbox、list_cells、read_audit、spawn):
[cell.coordinator]
engine = "claude"
capabilities = ["send","ask","reply","broadcast","read_inbox","list_cells","read_audit","spawn"]
每个单元的身份验证:每个单元使用一个权限为 0600 的令牌文件(L0 方案)。在 MCP 客户端配置中挂载此 shim:
// .mcp.json (Claude Code) — one entry per cell identity
{
"mcpServers": {
"crew": {
"command": "crew",
"args": ["mcp",
"--runtime-dir", "/home/you/.config/crewd/runtime",
"--cell", "coordinator",
"--token-file", "/home/you/.config/crewd/coordinator.secret"]
}
}
}
systemd
[Unit]
Description=crewd — cell fabric daemon
After=network.target
[Service]
Type=simple
User=you
Group=you
# The claude shim path is resolved relative to this directory.
WorkingDirectory=/path/to/mcp-crewd-rs
ExecStart=%h/.local/bin/crewd --config %h/.config/crewd/crewd.toml
# IMPORTANT: the default systemd PATH does not include user-level bins.
# Engine adapters spawn `codex` / `node` from the daemon's PATH:
Environment="PATH=%h/.local/bin:/usr/local/bin:/usr/bin:/bin"
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
安全模型
- Unix 套接字位于权限为
0700的运行时目录中,权限为0600;绑定时会拒绝符号链接。 - 握手时检查内核对端凭据(Linux/Android 上使用
SO_PEERCRED,macOS 上使用getpeereid+LOCAL_PEERPID),随后验证每个单元的令牌(文件权限为0600)。 - 引擎子进程仅运行在精确的环境变量允许列表中 — 守护进程从
keys_env_path读取密钥,并仅将其注入需要这些密钥的子进程;密钥绝不会出现在日志或错误消息中。 - 仅追加、采用哈希链的审计日志(
crew audit verify)。 - 如实报告失败状态:崩溃或孤立的轮次会在启动时恢复为
interrupted/failed_unknown,引擎接受请求后绝不会静默重试。
如实说明范围:以与守护进程相同 UID 运行的进程可以读取套接字和令牌文件 — crewd 用于隔离单元,并非为同一用户提供权限边界。请参阅 THREAT_MODEL.md。
平台
| 平台 | 状态 |
|---|---|
| Linux(x86_64 / aarch64,gnu + musl) | ✅ 已预构建 + CI 测试通过 |
| Android / Termux(aarch64) | ✅ 已预构建(aarch64-linux-android),CI 构建检查通过 |
| macOS(Apple Silicon / Intel) | ✅ 可从源码构建,CI 测试通过(使用 getpeereid 进行对端身份验证) |
| Windows | ❌ 不支持(Unix 套接字 + 对端凭据) |
Termux 上没有 systemd:请通过 termux-services 运行 crewd,或使用普通命令 nohup crewd --config … &。macOS 上请使用 launchd 或在终端中运行。
文档
- SPEC.md — 规范性协议与行为规范
- THREAT_MODEL.md — 威胁模型与非目标
状态
1.0 之前(v0.1.x):单主机网络(UDS)。跨主机网络、操作员令牌 CLI 和引擎热复用已列入路线图。
许可证
Apache-2.0。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。