mcpField
M
MCP Server for GitHub Tools

MCP Server for GitHub Tools

本地服务
github.com/RickardHF版本控制078 周前更新

关于 MCP Server for GitHub Tools

这是一个用 TypeScript 和 MCP SDK 构建的 GitHub 工具 MCP 服务,面向需要通过 Agent 管理仓库的用户。它涵盖安全状态与问题处理,也支持分支和拉取请求操作。

主要功能

  1. 01查询 GitHub 用户信息
  2. 02创建和列出安全问题
  3. 03查看 Dependabot、代码和密钥扫描警报
  4. 04列出并创建分支
  5. 05创建和查看拉取请求及差异

适用场景

  1. 01检查仓库的安全警报
  2. 02为漏洞创建安全问题
  3. 03查看分支保护和最新提交
  4. 04创建拉取请求并检查差异

MCP 相关

该 MCP 服务向 MCP 客户端提供 GitHub 用户、仓库安全、分支和拉取请求工具。使用 GitHub CLI 的认证令牌访问 GitHub。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"GitHub-Security-MCP-Server": {
"command": "npx",
"args": [
"-y",
"@rickardhf/github-security-mcp-server"
]
}
}
}
启动命令npx -y @rickardhf/github-security-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@rickardhf/github-security-mcp-server

工具

10

收录的工具列表 · 更新于 2 周前

参数类型必填说明
usernamestring是

详细介绍

GitHub 工具 MCP 服务

概述

此仓库包含一个模型上下文协议(MCP)服务实现,提供用于与 GitHub 交互的工具。该服务使用 TypeScript 和 MCP SDK 构建,可与 Visual Studio Code 中的 GitHub Copilot 等 MCP 客户端集成。

功能

该服务目前提供以下工具:

  • GitHub 用户信息:通过用户名获取 GitHub 用户的详细信息
  • 创建安全问题:在 GitHub 仓库中创建格式规范且带有适当标签的安全问题
  • 列出安全问题:列出 GitHub 仓库中所有与安全相关的问题
  • 安全状态报告:获取全面的安全警报,包括 Dependabot、代码扫描和机密扫描
  • 分支管理:列出 GitHub 仓库中的分支并创建新分支
  • 拉取请求管理:
    • 在分支之间创建拉取请求
    • 列出指定仓库的拉取请求,并包含 PR 编号、标题和说明等基本信息。
    • 获取指定拉取请求的详细信息,包括差异和评论

前提条件

  • Node.js
  • npm(随 Node.js 一起安装)
  • 已安装并完成身份验证的 GitHub CLI (gh)

身份验证

此 MCP 服务使用 GitHub CLI 获取当前已通过身份验证的用户的令牌,并将其用于身份验证。

本地运行

启动服务
npm start

如需在文件更改时自动重新构建以进行开发:

npm run dev

如需调试和检查服务:

npm run inspect
VS Code 集成
运行最新发布版本

如需使用最新发布版本,可以选择添加新工具,选择 Command (stdio),并使用命令 npx @rickardhf/github-security-mcp-server。

如果只想修改 mcp.json 配置文件,可以使用以下配置

{
    "servers": {
        "my-local-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "@rickardhf/github-security-mcp-server"
            ]
        }
    },
    ...
}
运行本地版本

如需在编辑器中使用本地版本的 MCP 服务,可以按照下方示例的方式运行项目构建后的文件。只需将此服务配置添加到 mcp.json 文件中,可以是全局配置,也可以仅针对特定工作区配置。

{
    "servers": {
        "my-local-mcp-server": {
            "type": "stdio",
            "command": "node",
            "args": [
                "c:\\repos\\private\\mcptest\\dist\\index.js"
            ]
        }
    }
}

如果先运行命令 npm run local-install,就会在本地计算机上全局安装该服务。之后可以使用以下配置运行

{
    "servers": {
        "my-local-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "github-security-mcp-server"
            ]
        }
    }
}

用法

可用工具
获取 GitHub 用户

获取 GitHub 用户的信息。

示例:

Get information about the GitHub user "octocat"
创建安全问题

在 GitHub 仓库中创建格式规范且带有安全相关标签的安全问题。

示例:

Create a security issue for XSS vulnerability in the login form
列出安全问题

列出 GitHub 仓库中同时带有 "bug" 和 "security" 标签的所有安全问题。

示例:

List security issues in the repository "owner/repo-name"
获取安全状态

获取 GitHub 仓库的安全状态,包括:

  • Dependabot 警报
  • 代码扫描警报
  • 机密扫描警报

示例:

Get security status for the repository "owner/repo-name"
列出分支

列出 GitHub 仓库中的所有分支,并提供最新提交、保护状态以及是否为默认分支等信息。

示例:

List branches in the repository "owner/repo-name"
创建新分支

基于现有分支在 GitHub 仓库中创建新分支。

示例:

Create a new branch called "feature-branch" based on "main" in "owner/repo-name"
创建拉取请求

在 GitHub 仓库的两个分支之间创建新的拉取请求。

示例:

Create a pull request from "feature-branch" to "main" in "owner/repo-name" titled "New Feature Implementation"
获取拉取请求

获取指定拉取请求的详细信息,包括差异和评论。

示例:

Get pull request #42 from the repository "owner/repo-name"
AI Agent 未能识别工具

有时我们会遇到 AI Agent 未能识别工具的情况,如下例所示。指定应使用工具似乎会奏效。

图片

项目结构

  • src/index.ts:主入口和服务配置
  • src/common/:共享实用工具和类型定义
    • utils.ts:共享实用函数(获取 GitHub 令牌)
    • types.ts:TypeScript 类型定义
  • src/operations/:工具实现
    • process.ts:工具注册和映射
    • security.ts:安全状态报告功能
    • api/:GitHub API 操作
      • branch.ts:分支管理操作
      • issues.ts:安全问题操作
      • pull-requests.ts:拉取请求操作
      • repo.ts:仓库操作

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。