异步bash-mcp
 
英语| 中文
用于异步生成和管理bash命令的MCP服务器。并行运行多个shell命令,并独立检查其进度。
背景
使用opencode
添加到您的 opencode.json 配置以将bash工具替换为异步bash-mcp:
{
"$schema": "https://opencode.ai/config.json",
"tools": {
"bash": false
},
"mcp": {
"async-bash": {
"type": "local",
"command": ["/path/to/async-bash-mcp"],
"enabled": true
}
}
}从下载最新二进制文件 或从源代码构建 cargo build --release.
然后使用以下命令:
- “在后台生成一个长时间运行的构建”
- “并行运行测试并向我显示结果”
- “启动服务器并告诉我它什么时候准备好”
为什么是异步bash?
在处理构建、测试或服务器等长时间运行的命令时,代理需要:
- 递增地监控进度,而无需承诺固定的超时
- 并行运行多个命令,并独立检查每个命令
- 根据部分输出做出继续或终止的决定
- 在命令生成输出时处理实时反馈
该工具为代理提供了更好的决策信息,从而加快了任务完成速度,减少了混乱的反应。
与内置bash工具相比的主要优势:
- 更好的决策:代理可以看到部分输出,并就继续或终止做出明智的选择
- 并行执行:同时运行多个命令
- 无超时猜测:逐步检查进度,而不是预先设置超时
- 更快的迭代:当错误已经可见时,无需等待任意超时
该工具旨在取代opencode的bash工具,用于任何可能涉及长时间运行命令的场景,为代理提供他们做出更好决策所需的信息,为您节省时间。
工具
产卵 -异步启动bash命令
command(str):要运行的bash命令cwd(str,可选):工作目录路径- 返回用于跟踪的进程ID
列表_流程 -显示所有正在运行/最近的进程
- 无参数
- 返回数组
{"ID": int, "command": str, "done": bool}
投票 -检查生成进程的进度
process_id(int):spawn命令中的IDwait(int):等待时间(毫秒)terminate(bool,可选):在返回结果之前杀死进程- 退货
{"stdout": str, "stderr": str, "elapsedTime": float, "finished": bool, "exitCode": int}
安装
从下载预构建的二进制文件 ,或从源代码构建:
cargo build --release
# Binary will be at: target/release/async-bash-mcpmacOS笔记
如果您从GitHub Release下载了二进制文件,macOS Gatekeeper可能会阻止其运行。首先删除隔离属性:
xattr -d com.apple.quarantine /path/to/async-bash-mcp