使用说明
项目简介
本项目 'ghas-mcp-server' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM 应用提供访问 GitHub 高级安全 (GHAS) 数据的能力。通过此 MCP 服务器,LLM 可以调用工具来获取指定 GitHub 仓库的代码扫描、Secret 扫描以及 Dependabot 告警信息,从而实现更智能的安全分析和自动化工作流程。
主要功能点
- 提供 GHAS 数据访问工具: 内置了三个核心工具,用于检索不同类型的 GitHub 高级安全告警:
- 'list_code_scanning_alerts': 列出代码扫描告警。
- 'list_secret_scanning_alerts': 列出 Secret 扫描告警。
- 'list_dependabot_alerts': 列出 Dependabot 告警。
- 基于 MCP 协议: 遵循 MCP 协议标准,易于与任何兼容 MCP 协议的 LLM 客户端集成。
- 使用 JSON-RPC 通信: 通过标准的 JSON-RPC 协议与客户端进行通信。
- 支持 Stdio 传输: 使用 Stdio 作为默认的传输协议,方便本地部署和集成。
- 可配置的 GitHub 认证: 通过环境变量 'GITHUB_PERSONAL_ACCESS_TOKEN' 配置 GitHub 个人访问令牌 (PAT) 进行身份验证。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node 包管理器)。
- 克隆仓库: 将 'ghas-mcp-server' 仓库克隆到本地:
git clone https://github.com/rajbos/ghas-mcp-server.git cd ghas-mcp-server - 安装依赖: 在仓库目录下运行以下命令安装项目依赖:
npm install - 构建项目: 运行以下命令编译 TypeScript 代码:
npm run build
服务器配置
为了使 MCP 客户端能够连接并使用 'ghas-mcp-server',你需要在客户端中配置服务器的启动命令和参数。以下是推荐的 JSON 格式配置,你需要将其添加到你的 MCP 客户端配置中(例如 VS Code 的 settings.json):
{ "ghas-mcp-server": { // 服务器名称,用于在客户端中标识和引用 "command": "npx", // 启动服务器的命令,这里使用 npx 来运行 npm 包 "args": [ // 命令参数 "-y", // npx 参数,自动确认安装包 "@rajbos/ghas-mcp-server" // 要运行的 npm 包名称,即本 MCP 服务器 ], "env": { // 环境变量配置 "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PERSONAL_ACCESS_TOKEN" // GitHub 个人访问令牌,**请替换为你的 PAT** } } }
配置参数说明:
- '"ghas-mcp-server"': 服务器的唯一名称,客户端使用此名称来识别和管理该服务器连接。
- '"command": "npx"': 指定用于启动服务器的命令。'npx' 允许你运行安装在 npm 仓库中的包,而无需全局安装。
- '"args": ["-y", "@rajbos/ghas-mcp-server"]': 传递给 'npx' 命令的参数。
- '"-y"': 'npx' 的参数,表示如果 '@rajbos/ghas-mcp-server' 包未安装,则自动安装,无需用户确认。
- '"@rajbos/ghas-mcp-server"': 指定要运行的 npm 包名称,这是 'ghas-mcp-server' 的包名。
- '"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PERSONAL_ACCESS_TOKEN" }': 配置环境变量。
- '"GITHUB_PERSONAL_ACCESS_TOKEN"': 关键配置! 用于 GitHub API 身份验证的个人访问令牌。务必替换 '"YOUR_GITHUB_PERSONAL_ACCESS_TOKEN"' 为你自己的 GitHub PAT。
- 重要: 你的 GitHub PAT 需要拥有以下只读权限 (scopes) 才能正常工作:
- 'repo' (或 'public_repo' 对于公开仓库)
- 'security_events'
- 'dependabot_alerts'
- 重要: 你的 GitHub PAT 需要拥有以下只读权限 (scopes) 才能正常工作:
- '"GITHUB_PERSONAL_ACCESS_TOKEN"': 关键配置! 用于 GitHub API 身份验证的个人访问令牌。务必替换 '"YOUR_GITHUB_PERSONAL_ACCESS_TOKEN"' 为你自己的 GitHub PAT。
基本使用方法
- 启动 MCP 客户端: 启动你配置了 'ghas-mcp-server' 的 MCP 客户端(例如,配置了此服务器的 VS Code 插件)。
- 客户端连接服务器: 客户端将根据配置自动启动 'ghas-mcp-server' 并建立连接。
- 调用工具: 在 MCP 客户端中,你可以通过客户端提供的界面或命令来调用 'ghas-mcp-server' 提供的工具。例如,调用 'list_code_scanning_alerts' 工具,并提供 'owner' (仓库所有者) 和 'repo' (仓库名称) 作为参数。
- 获取结果: 服务器将执行相应的 GitHub API 调用,并将告警信息以 JSON 格式返回给客户端。客户端可以解析并展示这些信息。
示例 (假设在 MCP 客户端中调用 'list_code_scanning_alerts' 工具):
客户端发送类似如下的 MCP 请求 (JSON-RPC 格式):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "name": "list_code_scanning_alerts", "arguments": { "owner": "your-github-org", // 替换为你的 GitHub 组织或用户名 "repo": "your-repo-name" // 替换为你的仓库名 } }, "id": 1 }
服务器会返回包含代码扫描告警信息的 JSON-RPC 响应。
信息
分类
开发者工具