MCP Rewatch 是一个模型上下文协议(MCP)服务器,它能让像 Claude Code 这样的 AI 编码助手管理长期运行的开发进程。如果没有这个工具,Claude Code 无法运行像 npm run dev 这样的命令,因为它会阻塞并等待进程完成,最终在没有看到任何输出的情况下超时。
# 使用 npx(无需安装)
claude mcp add rewatch npx -- mcp-rewatch
# 或者如果全局安装
claude mcp add rewatch mcp-rewatch
# 或者用于本地开发
claude mcp add rewatch node -- /path/to/mcp-rewatch/dist/index.js
rewatch.config.json。要使 MCP Rewatch 在所有 Claude Code 会话中可用:
claude mcp add -s user rewatch npx -- mcp-rewatch
重要提示:服务器会在 Claude Code 运行的当前工作目录中查找 rewatch.config.json。每个项目都需要有自己的配置文件。
工作原理:MCP Rewatch 会在 Claude Code 运行的当前工作目录中查找 rewatch.config.json。
最佳实践:
rewatch.config.json。cwd 路径,如 "./backend" 或 "./frontend"。多服务配置示例:
{
"processes": {
"frontend": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "./frontend"
},
"backend": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "./backend"
},
"database": {
"command": "docker",
"args": ["compose", "up", "postgres"],
"cwd": "./"
}
}
}
通过 npm 全局安装:
npm install -g mcp-rewatch
或者直接使用 npx(无需安装):
npx mcp-rewatch
在使用 Claude Code 进行开发时,会遇到一个基本限制:
# Claude Code 尝试运行开发服务器时的情况:
$ npm run dev
> my-app@1.0.0 dev
> next dev
▲ Next.js 14.0.0
- Local: http://localhost:3000
[Claude Code 现在会卡在这,等待进程退出]
[大约 2 分钟后,它会在没有看到任何输出的情况下超时]
[Claude Code 永远看不到编译错误、成功消息或任何日志]
Claude Code 无法做到以下几点:
这使得使用 Claude Code 进行有效开发几乎变得不可能,因为你需要手动运行所有开发服务器,并在更改后手动重启它们。
MCP Rewatch 充当 Claude Code 和你的开发进程之间的桥梁:
MCP Rewatch 充当 Claude Code 和你的开发进程之间的中介:
这种架构允许 Claude Code 有效地管理长期运行的进程,尽管它本身无法直接运行这些进程。
在项目根目录(即你将运行 Claude Code 的地方)创建一个 rewatch.config.json 文件。
startupDelay 应根据你的具体进程进行调整:
{
"processes": {
"convex": {
"command": "pnpm",
"args": ["dlx", "convex", "dev"],
"cwd": "./",
"startupDelay": 5000
},
"nextjs": {
"command": "pnpm",
"args": ["dev"],
"cwd": "./",
"env": {
"PORT": "3000"
},
"startupDelay": 4000
},
"backend": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "./backend",
"env": {
"NODE_ENV": "development",
"PORT": "8080"
},
"startupDelay": 2000
}
}
}
npm、pnpm、node)配置完成后,Claude Code 可以使用以下工具:
restart_process按名称停止并重启开发进程。等待配置的 startupDelay(或默认 3 秒),然后返回初始日志。
await restart_process({ name: "nextjs" })
// 输出:
// 进程 'nextjs' 成功启动
//
// 初始日志:
// [2024-01-07T10:00:01.123Z] [stdout] > my-app@1.0.0 dev
// [2024-01-07T10:00:01.456Z] [stdout] > next dev
// [2024-01-07T10:00:02.789Z] [stdout] ▲ Next.js 14.0.0
// [2024-01-07T10:00:03.012Z] [stdout] - Local: http://localhost:3000
get_process_logs从进程中检索日志,可选择限制行数。
await get_process_logs({ name: "nextjs", lines: 50 })
// 返回 Next.js 进程的最后 50 行日志
await get_process_logs({ name: "convex" })
// 返回 Convex 进程的所有可用日志
list_processes列出所有配置的进程及其当前状态。
await list_processes()
// 输出:
// nextjs: 运行中 (PID: 12345)
// convex: 已停止
stop_all优雅地停止所有正在运行的进程。
await stop_all()
// 输出: "所有进程已停止"
以下是 Claude Code 在开发过程中使用 MCP Rewatch 的方式:
rewatch.config.json。restart_process({ name: "nextjs" }) 重启服务器。get_process_logs({ name: "nextjs" })。restart_process 调用时的工作原理startupDelay(默认值:3 秒)。这使 Claude Code 能够立即获得以下方面的反馈:
对于持续监控,Claude Code 可以使用 get_process_logs 稍后检查进度。
没有 MCP Rewatch,使用 Claude Code 进行开发的流程会令人沮丧:
npm run dev → 阻塞并超时。有了 MCP Rewatch:
restart_process → 立即返回。rewatch.config.json。要为 MCP Rewatch 做出贡献:
git clone https://github.com/brennancheung/mcp-rewatch.git
cd mcp-rewatch
pnpm install
pnpm build
对于开发,你可以将 Claude Code 直接指向构建输出:
# 构建项目
pnpm build
# 添加到 Claude Code
claude mcp add rewatch-dev node -- /path/to/mcp-rewatch/dist/index.js
然后在你进行测试的任何目录中创建一个 rewatch.config.json 文件。