关于 mcacp
mcacp 是一款 MCP 服务,让 MCP 客户端能够启动和控制 ACP 编码 Agent。它提供 Agent 安装、会话管理、提示词交互、权限处理和持久会话恢复功能。
主要功能
- 01安装并发现 ACP Agent
- 02启动和管理 Agent 进程
- 03创建并恢复持久会话
- 04发送提示词并接收事件
- 05处理权限请求
- 06并行运行多个 Agent
适用场景
- 01从 MCP 客户端运行 ACP Agent
- 02比较并行 Agent 的结果
- 03构建编写、审查、测试流程
MCP 相关
mcacp 向 MCP 客户端提供工具,用于查找和安装 ACP Agent、管理其生命周期与会话、发送提示词及处理权限。它通过 ACP 与 Agent 通信。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
24收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
MCACP
将任意 MCP 客户端连接到任意 ACP 编码 Agent。
MCACP 是一个 MCP 服务,代表 MCP 主机使用 Agent Client Protocol。它让 Claude Code、Zed、VS Code 或任何兼容 MCP 的客户端都能启动、管理并与 ACP 编码 Agent 交互,将单个聊天窗口变成多 Agent 控制平面。
MCP Client (Claude Code, Zed, VS Code, ...)
|
| MCP (stdio)
v
MCACP
|
| ACP (stdio, per agent)
v
Claude Code · Gemini CLI · Codex · Auggie · Copilot · ...
你可以用它做什么?
从任意 MCP 客户端运行任意 ACP Agent。 你无需为每个 Agent 安装专用 IDE 插件。通过 Claude Code 安装 Gemini。通过 Zed 运行 Codex。自由组合。
并排比较 Agent。 在并行会话中,将同一任务交给 Claude Code ACP 和 Gemini CLI,并比较结果。
构建由 Agent 驱动的流水线。 一个 Agent 编写代码,另一个负责审查,第三个运行测试。MCACP 会为它们处理整个生命周期和权限流程。
交互式控制权限。 在支持 MCP 询问功能的主机(Zed)上,权限请求会以交互式表单的形式弹出。在不支持的主机(Claude Code)上,则会回退到操作员模式,由主机 Agent 决定。
从上次停下的地方继续。 会话会持久化到磁盘。关闭、重启,然后运行 load_session——Agent 会从中断处继续。
在聊天中发现并安装 Agent。 浏览 ACP 注册表、安装 Agent、检查升级,无需离开对话。
快速开始
安装
npm install -g mcacp
或直接运行:
npx mcacp
添加到 MCP 客户端
Claude Code(~/.claude/settings.json):
{
"mcpServers": {
"mcacp": {
"command": "npx",
"args": ["-y", "mcacp"]
}
}
}
Zed(settings.json):
{
"context_servers": {
"mcacp": {
"command": { "path": "npx", "args": ["-y", "mcacp"] }
}
}
}
然后在聊天中:
"Search for available agents" → registry_search
"Install the Gemini agent" → agent_install
"Initialize it and start a session" → initialize + new_session
"Ask it to refactor auth" → prompt_start + prompt
MCP 工具
MCACP 提供 22 个工具,分为五组。
注册表
| 工具 | 描述 |
|---|---|
list_installed_agents | 列出本地已安装的 Agent |
registry_search | 搜索 ACP Agent 注册表 |
agent_install | 从注册表安装 Agent |
agent_uninstall | 移除已安装的 Agent |
agent_check_upgrades | 检查是否有可用升级 |
discover_agents | 扫描编辑器配置(Zed、JetBrains)以查找 Agent |
reload_config | 从磁盘重新加载 mcacp.json |
生命周期
| 工具 | 描述 |
|---|---|
initialize | 启动 Agent 进程并执行 ACP 握手 |
shutdown | 正常关闭 Agent |
会话
| 工具 | 描述 |
|---|---|
new_session | 使用工作目录和权限策略创建会话 |
load_session | 恢复持久化的会话 |
list_sessions | 列出某个 Agent 已存储的会话 |
close_session | 关闭会话(保留以供之后恢复) |
交互
| 工具 | 描述 |
|---|---|
prompt_start | 发送提示词(立即返回) |
prompt | 阻塞等待事件可用 |
prompt_events | 非阻塞轮询事件 |
grant_permission | 解决待处理的权限请求(操作员模式) |
request_permission | 向主机发送 MCP 询问,请求其作出权限决定 |
cancel | 取消正在进行的提示词 |
set_mode | 切换 Agent 运行模式 |
状态
| 工具 | 描述 |
|---|---|
list_running_agents | 列出所有 Agent 的状态和会话 |
get_agent_status | 查看运行中 Agent 的详细状态 |
set_agent_status | 设置 Agent 的状态文本 |
权限策略
每个会话都可以使用不同的策略:
| 策略 | 行为 |
|---|---|
allow_all | 自动批准 Agent 的所有操作 |
deny_all | 阻止使用所有工具 |
elicit | 以 MCP 询问的形式转发给主机;若不受支持,则回退到 operator |
operator | 将请求排入事件队列,由主机 Agent 通过 grant_permission 决定 |
操作员流程
Orchestrator MCACP ACP Agent
| | |
|-- prompt(sessionId, ...) ->| |
| |-- session/prompt --------->|
| |<- request_permission ------|
|<- {pendingPermission: ...} | |
| | |
|-- grant_permission ------->| |
| {toolCallId, optionId} |-- permission outcome ----->|
| |<- prompt result -----------|
|<- {stopReason, updates} | |
配置
MCACP 会在以下位置查找 mcacp.json(使用第一个找到的文件):
--config标志或MCACP_CONFIG环境变量- 当前目录中的
.mcacp/mcacp.json ~/.config/mcacp/mcacp.json
{
"registries": ["https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json"],
"defaultPermissionPolicy": "elicit",
"agent_servers": {
"my-custom-agent": {
"command": "node",
"args": ["my-agent.js"]
}
}
}
完整的架构请参阅 docs/configuration.md。
从源代码构建
git clone https://github.com/Oortonaut/mcacp.git
cd mcacp
npm install
npm run build
node dist/index.js
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。