返回市场
MCP-重播服务器

MCP-重播服务器

作者:brennancheung2 星标更新:2025-07-04

项目介绍

MCP Rewatch

一个模型上下文协议(MCP)服务器,使像Claude Code这样的AI编码助手能够管理长时间运行的开发过程。如果没有这个工具,Claude Code无法运行如npm run dev这样的命令,因为它会阻塞等待进程完成,并最终超时而没有任何输出。

问题

在使用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和你的开发进程之间的桥梁:

  • 后台运行进程 - Claude Code不会被阻塞
  • 捕获所有输出 - 将stdout/stderr保存在内存缓冲区中
  • 提供异步访问 - Claude Code可以随时检查日志
  • 支持重启 - Claude Code可以在更改后重启服务器
  • 管理多个进程 - 可以同时运行前端、后端和数据库服务器

工作原理

MCP Rewatch作为Claude Code和你的开发进程之间的中介:

  1. 作为一个独立服务运行,Claude Code可以通过MCP与其通信
  2. 独立管理进程 - 作为子进程启动你的开发服务器
  3. 非阻塞操作 - Claude Code可以开始/重启进程并立即继续
  4. 异步日志检索 - Claude Code可以在不阻塞的情况下稍后检查日志
  5. 正确处理生命周期 - 平稳关闭,没有孤儿进程

这种架构允许Claude Code有效地管理长时间运行的进程,尽管它本身无法直接运行这些进程。

安装

通过npm全局安装:

npm install -g mcp-rewatch

或者直接使用npx(无需安装):

npx mcp-rewatch

配置

在项目根目录(你将运行Claude Code的地方)创建一个rewatch.config.json文件:

startupDelay应根据具体进程进行调整:

  • 快速工具(脚本、小型服务器):1000-2000毫秒
  • Next.js/React开发服务器:3000-5000毫秒
  • 大型构建进程:5000-10000毫秒
  • 带有依赖的服务:8000-15000毫秒
{
  "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
    }
  }
}

配置选项

  • command: 要运行的可执行文件(例如,npmpnpmnode
  • args: 命令参数数组
  • cwd: 进程的工作目录(相对于MCP服务器运行的位置,即你的项目根目录)
  • env: 额外的环境变量(可选)
  • startupDelay: 启动后等待的时间(默认:3000毫秒)
  • readyPattern: (尚未实现 - 请参阅路线图)

使用Claude Code

快速开始(单个项目)

  1. 将MCP Rewatch添加到Claude Code:
# 使用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
  1. 在项目根目录创建rewatch.config.json

  2. 从项目目录启动Claude Code - MCP Rewatch将在当前工作目录查找配置文件

用户范围设置(全局访问)

要使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

最佳实践

  1. 保持配置特定于项目:每个项目应有自己的rewatch.config.json
  2. 使用相对路径:在配置中使用相对cwd路径,如"./backend""./frontend"
  3. 从项目根目录启动Claude Code:始终从项目目录启动Claude Code

多服务配置示例

{
  "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": "./"
    }
  }
}

可用工具

一旦配置好,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:

  1. 初始设置(由你一次性完成):

    • 在项目中创建rewatch.config.json
    • 启动Claude Code - 服务器可以根据需要启动
  2. 在开发期间,Claude Code将:

    • 对你的文件进行代码更改
    • 调用restart_process({ name: "nextjs" })来重启服务器
    • 自动接收初始日志,在3秒启动延迟后
    • 检查日志中的成功指示器或错误
    • 根据结果继续进行更多更改
    • 如果需要,稍后调用get_process_logs({ name: "nextjs" })
  3. 关键优势

    • Claude Code永远不会被长时间运行的进程阻塞
    • 你不需要在每次更改后手动重启服务器
    • Claude Code可以通过检查日志来验证更改是否有效
    • 可以并行管理多个服务器

如何工作

当调用restart_process时:

  1. 停止具有该名称的任何现有进程
  2. 启动新的进程
  3. 等待配置的startupDelay(默认:3秒)
  4. 返回启动状态和初始日志

这给Claude Code提供了关于是否:

  • 进程成功启动
  • 是否有即时错误(端口冲突、缺少依赖项)
  • 服务器开始编译/构建

为了持续监控,Claude Code可以使用get_process_logs稍后检查进度。

为什么这很重要

没有MCP Rewatch,使用Claude Code的开发流程令人沮丧:

  • ❌ Claude Code尝试npm run dev → 阻塞并超时
  • ❌ 你进行更改 → 服务器崩溃 → 需要手动重启
  • ❌ 没有办法检查更改是否编译成功

有了MCP Rewatch:

  • ✅ Claude Code使用restart_process → 立即返回
  • ✅ 更改后服务器自动重启
  • ✅ Claude Code可以检查日志以验证成功

故障排除

  • 进程未启动:检查项目根目录是否存在rewatch.config.json
  • 权限错误:确保配置中的命令具有正确的执行权限
  • 找不到工具:验证MCP Rewatch是否出现在Claude Code的MCP菜单中
  • 日志未出现:进程可能在缓冲输出;某些服务器需要特定标志来禁用缓冲

开发

要为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