这轮更新主要围绕一个目标:让 coding-tools-mcp 更容易被放进临时容器环境里运行,并且可以通过 GitHub Actions 一键启动一个远程 coding sandbox,给 Agent 直接连上使用。
一键启动远程沙盒
现在项目里已经补上了 reusable workflow:其他仓库可以直接引用这个 workflow,在自己的 GitHub Actions runner 里启动一个临时 coding-tools-mcp 环境。
大致使用方式是:
jobs:
sandbox:
uses: xyTom/coding-tools-mcp/.github/workflows/start-sandbox.yml@main
with:
permission_mode: trusted
tool_profile: full
checkout_repository: true
timeout_minutes: 120
启动后,workflow 会:
checkout 当前仓库;
拉取 sandbox Docker image;
启动 coding-tools-mcp 服务;
生成 bearer token;
打开 cloudflared tunnel;
在 GitHub Actions 日志里打印连接方式;
保持 job 持续运行,直到用户取消 workflow 或超时(默认120分钟,最长可以360分钟)。
这样 Agent 可以拿到 URL 和 token 后直接连接到这个远程 sandbox,执行代码阅读、修改、测试、commit、push 等操作。
这轮也继续收紧 runtime 行为:
runtime 目录放在 workspace 外,避免污染代码仓库;
Docker / CI 环境下通过环境变量配置 workspace、port、auth、permission mode;
server_info / check_exec_environment 会报告 runtime、home、tmp、cache 等执行环境信息;
kill_session 行为调整为先 TERM,必要时升级 SIGKILL,并在进程仍未退出时保留 session 供后续重试或 watchdog 清理。
这些改动主要是为了让 Agent 执行命令时更可控,也更容易排查 sandbox 里的环境问题。
Tunnel 脚本整理
cloudflared、ngrok、devtunnel 相关脚本也做了统一处理:
auth credential 逻辑收敛;
bearer / oauth / noauth 模式更清晰;
tunnel 启动后会打印 MCP URL 和认证方式;
对不支持 header 的远程 MCP client,也给出了 noauth / external proxy 的使用提示。
这轮更新的核心意义
以前 coding-tools-mcp 更像是本地开发工具;这轮之后,它开始变成一个可以被 CI、Docker、远程 Agent 直接拉起来用的 coding sandbox。
现在比较理想的使用路径是:
仓库里点一下 GitHub Actions;
runner 自动启动容器;
tunnel 打出公网 URL;
Agent 连上 MCP;
Agent 在隔离环境里读代码、跑命令、改文件;
需要时 push 分支或开 PR;
workflow 结束后环境自动销毁。
这让它更适合作为临时 Agent workspace、远程 coding sandbox、CI 内部调试环境,以及后续更自动化的代码修改流程。
滥用action会封号