使用说明
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 + prompt
MCP工具
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 --------->|
| |<- request_permission ------|
|<- {pendingPermission: ...} | |
| | |
|-- grant_permission ------->| |
| {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
