MCACP
将任何MCP客户端桥接到任何ACP编码代理。
MCACP是一个 主控程序 服务器说 代理客户端协议 代表您的MCP主机。它允许Claude Code、Zed、VS Code或任何兼容MCP的客户端生成、管理ACP编码代理并与之交互——将单个聊天窗口变成多代理控制平面。
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代理。 您不需要为每个代理都提供专用的IDE插件。从Claude Code安装Gemini。从Zed那里运行Codex。混合搭配。
并排比较代理。 在并行会话中为Claude Code ACP和Gemini CLI分配相同的任务,并比较结果。
构建代理驱动的管道。 一个代理编写代码,另一个代理审查代码,第三个代理运行测试。MCACP处理所有这些应用程序的生命周期和权限流。
以交互方式控制权限。 在支持MCP启发(Zed)的主机上,权限请求以交互形式弹出。在没有(Claude Code)的主机上,它们会退回到由主机代理决定的操作员模式。
从你中断的地方继续。 会话持续到磁盘。关机,重启, load_session --特工从停车处接车。
通过聊天发现并安装代理。 浏览ACP注册表,安装代理,检查升级——不要离开你的对话。
快速开始
安装
npm install -g mcacp或者直接运行:
npx mcacp添加到您的MCP客户端
克劳德代码 (~/.claude/settings.json):
{
"mcpServers": {
"mcacp": {
"command": "npx",
"args": ["-y", "mcacp"]
}
}
}泽德 (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 + promptMCP工具
MCACP公开了22个工具,分为五组。
注册表
| 工具 | 说明 |
|---|---|
list_installed_agents | 列出本地安装的代理 |
registry_search | 搜索ACP代理注册表 |
agent_install | 从注册表安装代理 |
agent_uninstall | 删除已安装的代理 |
agent_check_upgrades | 检查可用的升级 |
discover_agents | 代理的扫描编辑器配置(Zed、JetBrains) |
reload_config | 重新加载 mcacp.json 从磁盘 |
生命周期
| 工具 | 说明 |
|---|---|
initialize | 生成代理进程并执行ACP握手 |
shutdown | 优雅地关闭了一个代理 |
会话
| 工具 | 说明 |
|---|---|
new_session | 使用工作目录和权限策略创建会话 |
load_session | 恢复持久会话 |
list_sessions | 列出代理的已存储会话 |
close_session | 关闭会话(保留以供以后继续) |
交互
| 工具 | 说明 |
|---|---|
prompt_start | 发送提示(立即返回) |
prompt | 阻止,直到事件可用 |
prompt_events | 事件的非阻塞轮询 |
grant_permission | 解决待处理的权限请求(操作员模式) |
request_permission | 向主机发送MCP征求意见,以做出许可决定 |
cancel | 取消正在进行的提示 |
set_mode | 切换代理操作模式 |
状态
| 工具 | 说明 |
|---|---|
list_running_agents | 列出所有具有状态和会话的代理 |
get_agent_status | 正在运行的代理的详细状态 |
set_agent_status | 为代理设置状态文本 |
权限策略
每个会话可以使用不同的策略:
| 政策 | 行为 |
|---|---|
allow_all | 自动批准所有代理操作 |
deny_all | 阻止所有工具使用 |
elicit | 作为MCP启发转发给宿主;回落到 operator 如果不受支持 |
operator | 按事件排队——主机代理通过以下方式决定 grant_permission |
操作员流程
Orchestrator MCACP ACP Agent
| | |
|-- prompt(sessionId, ...) ->| |
| |-- session/prompt --------->|
| || |
| {toolCallId, optionId} |-- permission outcome ----->|
| |<- prompt result -----------|
|<- {stopReason, updates} | |配置
MCACP寻找 mcacp.json 在这些地点(首次发现获胜):
--config旗帜或MCACP_CONFIGenv 是.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