PR Watcher MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器,核心职责是通过 MCP 协议向客户端暴露一组工具(Tools),使得 LLM 可以通过标准化的 JSON-RPC 请求来执行 PR 监控、问题查询、问题标记等操作,并获取相关的上下文信息。
-
主要功能点
- MCP 服务器实现与注册
- 使用 @modelcontextprotocol/sdk 提供的 Server,基于 MCP 标准实现请求处理与响应折返。
- 工具集合
- watch_pr:开始监控指定的 GitHub PR(通过 URL 或 owner/repo#number 指定)
- check_for_issues:轮询获取该 PR 的新问题,返回尚未处理的项
- get_issue_details:按 issue-id 获取详细信息
- mark_issue_handled:将某个问题标记为已处理
- get_watched_pr:获取当前正在监控的 PR 信息
- clear_handled:清空已处理问题的记录
- 集成外部服务
- GitHub API(通过 GITHUB_TOKEN)获取 PR 评论、Review、Check Runs、Status 等信息
- Buildkite 集成(在辅助脚本中实现,需提供 BUILDKITE_TOKEN 可选)
- 会话与状态
- 会话级状态维护(watchedPR、handledIssueIds、lastCheckTime 等),支持多 PR 的单进程监控逻辑
- 客户端可观测输出
- MCP 响应包含文本内容,帮助对话代理理解结果与下一步动作
- 传输与启动
- 使用 StdioServerTransport 启动,允许通过标准输入/输出接入 Cursor 等环境
- MCP 服务器实现与注册
-
安装步骤
- 克隆或拷贝到本地
- 进入仓库目录
- 安装依赖
- 准备环境变量(至少 GITHUB_TOKEN,若使用 Buildkite 还需 BUILDKITE_TOKEN)
- 启动 MCP 服务器(例如 node index.js,在支持的环境中通过 Stdio 传输接入)
-
服务器配置(MCP 客户端需要的最小信息)
- 说明:MCP 客户端通过该配置信息知道如何启动并连接到 MCP 服务器。以下以 JSON 形式给出配置示例要点,实际使用时请填入具体路径和环境信息。
- 配置要点(JSON 结构,不作为代码块呈现,方便复制到配置文件中): { "mcpServers": { "pr-watcher": { "name": "PR Watcher MCP Server", "command": "node", "args": ["<path-to-your-pr-watcher>/index.js"] } // 如有多实例可按需添加 } }
- 注释说明
- name:MCP 服务器在客户端显示的名称,便于区分不同的 MCP 服务
- command:启动服务器的可执行命令
- args:启动命令的参数,通常指向服务器入口文件,如 index.js
- 路径请替换为实际部署的路径
- 说明
- MCP 客户端仅需要该配置信息来启动并连接到服务器,后续的请求/响应通过 MCP 协议进行。服务器自身实现了对工具的注册与执行逻辑,并通过标准化的接口暴露给客户端。
-
基本使用方法
- 运行与连接
- 将配置文件提供给 MCP 客户端,使用指定命令启动服务器连接,即可在 Cursor 等环境中通过 MCP 调用服务器暴露的工具。
- 常用操作流程
- 使用 watch_pr 提供 PR 标识,初始化监控
- 使用 check_for_issues 轮询当前的未处理问题
- 使用 get_issue_details 查看具体某个问题的上下文
- 使用 mark_issue_handled 将不再需要注意的问题标记为已处理
- 使用 get_watched_pr 查看当前监控状态
- 使用 clear_handled 重置已处理记录,重新展示所有问题
- 运行依赖与注意
- 需要 Node.js 环境
- 需要 GitHub 访问令牌 GITHUB_TOKEN(私有仓库需要更高权限的 token,公共仓库也可用)
- 若计划集成 Buildkite,需要 BUILDKITE_TOKEN
- 运行与连接