GitHub代码审查服务

一个MCP服务器,为Claude提供直接访问GitHub仓库的功能,用于代码审查、安全分析和开发者入门引导。

  • by AjayMaan13
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AjayMaan13/code-review-mcp

使用说明

GitHub代码审查MCP服务器

MCP服务器,使Claude可以直接访问您的GitHub存储库,进行代码审查、安全分析和开发人员入职培训。

先决条件

安装

克隆存储库:

git clone <your-repo-link>
cd code-review-mcp

Docker(推荐)

不需要Python设置。Docker处理环境。

塑造形象:

docker build -t code-review-mcp .

本地Python

安装依赖项:

uv sync

创建一个 .env 文件:

GITHUB_TOKEN=your_personal_access_token

添加到Claude桌面

在macOS上打开配置文件:

code ~/Library/Application\ Support/Claude/claude_desktop_config.json

克劳德桌面——Docker

令牌在运行时作为环境变量传递——它永远不会进入映像。

{
  "mcpServers": {
    "github-code-reviewer": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "GITHUB_TOKEN", "code-review-mcp"],
      "env": {
        "GITHUB_TOKEN": "your_github_personal_access_token"
      }
    }
  }
}

Claude桌面——本地Python

{
  "mcpServers": {
    "github-code-reviewer": {
      "command": "/ABSOLUTE/PATH/TO/code-review-mcp/.venv/bin/python",
      "args": [
        "/ABSOLUTE/PATH/TO/code-review-mcp/server.py"
      ],
      "env": {
        "GITHUB_TOKEN": "your_github_personal_access_token"
      }
    }
  }
}

完全重新启动Claude Desktop以使更改生效。

MCP图元

资源 =直接访问已知数据 工具 =发现、计算或决定的方法 提示 =预先加载的指令,告诉克劳德该做什么以及如何响应

资源

资源是通过URI读取的——Claude直接获取它们,无需调用工具。

URI 返回什么
github://{owner}/{repo} 回购元数据:描述、默认分支、语言、星号、叉号
github://{owner}/{repo}/pulls/{pr_number} 完整的PR上下文:元数据+更改的文件+差异(捆绑)
github://{owner}/{repo}/blob/{branch}/{path} 来自特定分支的文件内容
github://{owner}/{repo}/contents/{path} 默认分支中的文件内容(自动解析)

工具

当Claude需要发现或计算某些东西时,会使用工具。

工具 它做什么
list_public_repos 列出经过身份验证的用户的所有公共存储库
list_open_prs 列出回购中的未结PR
get_pull_request 获取PR标题、描述和分支机构信息
get_pr_files 列出PR中更改的文件
get_pr_diff 获取PR的原始统一差异
get_file_content 从特定分支获取原始文件内容
list_files 浏览仓库的目录树

提示

提示一次性加载结构化指令和PR/repo上下文。

Prompt Args 它的作用
security_review repo_name, pr_number 进行以安全为重点的审查。输出一个包含严重性、文件、行、问题和修复的调查结果表,以及一个结论。
explain_to_junior repo_name, pr_number 向初级开发人员解释PR。没有行话,没有行引用-专注于 为什么,而不是 什么.
onboard_me repo_name 聘请了一位新的开发人员。Claude读取代码库并生成结构化部分:它的功能、结构、入口点、关键模块、设置和约定。

上下文窗口保护

大于30000个字符的差异将自动截断。截断通知告诉Claude使用 get_pr_diff 如果需要完整的差异,可以直接使用工具。元数据和文件列表始终保留。