MCP GitHub操作
## ⚠️ 此存储库已移动 开发已转移到 Tripletex/mcp依赖版本. 此存储库是 已存档且不再维护。请更新您的 对新位置的引用、问题和拉取请求。所有未来 发布、修复和文档将在那里发布。
______________________________________________________________________
基于Deno的MCP(模型上下文协议)服务,可帮助您安全地 通过提供以下内容参考GitHub操作:
- 任何GitHub操作的最新版本查找
- 提交特定版本标签的SHA检索
- 发布的不可变性状态检查
- 随时可用的SHA固定引用
- 工作流分析 具有更新级别检测(主要/次要/补丁)
- 安全更新建议 避免破坏更改
- 文献检索 针对特定版本的操作
- 版本比较 识别之间的更改和中断更新
发布
为什么使用这个?
标签引用的GitHub操作(例如。, actions/checkout@v4)可能很脆弱 如果标签被移动到指向恶意代码,则可以防止供应链攻击。此MCP 服务帮助您:
- 查找提交SHA 对于任何操作版本
- 检查版本是否不可变 (防止修改)
- 获取安全引用 以...格式
owner/repo@sha # version
安装
先决条件
- 迪诺 2.x或更高版本
使用Claude Desktop进行设置
添加到您的Claude Desktop配置(claude_desktop_config.json):
{
"mcpServers": {
"github-actions": {
"command": "deno",
"args": [
"run",
"--allow-net",
"--allow-env",
"--allow-run=gh",
"/path/to/mcp-github-actions/main.ts"
],
"env": {
"GITHUB_TOKEN": "your-github-token-optional"
}
}
}
}使用Claude Code CLI进行设置
claude mcp add github-actions -- deno run --allow-net --allow-env --allow-run=gh /path/to/mcp-github-actions/main.ts使用Docker进行设置
该服务可以使用stdio传输作为Docker映像提供。
拉取图像:
docker pull ghcr.io/tripletex/mcp-github-action:latest直接运行:
docker run --rm -i -e GITHUB_TOKEN ghcr.io/tripletex/mcp-github-action:latestClaude桌面配置:
{
"mcpServers": {
"github-actions": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"GITHUB_TOKEN",
"ghcr.io/tripletex/mcp-github-action:latest"
],
"env": {
"GITHUB_TOKEN": "your-github-token-optional"
}
}
}
}用法
配置后,让Claude查找GitHub操作:
示例提示:
- “查找操作/签出的最新版本”
- “获取操作的安全参考/setup-node@v4"
- “检查是否采取行动/cache@v4.2.0不可变”
- “列出操作/上传工件的所有版本”
- “分析我的工作流文件以查找过时的操作”
- “为我的CI工作流建议安全更新”
- “actions/checkout的最新v4.x版本是什么?”
- “显示操作文档/checkout@v4"
- “比较操作之间的变化/setup-node@v4.0.0v6.0.0“
工具: lookup_action
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | Yes | 动作引用(例如。, actions/checkout 或 actions/checkout@v4) |
include_all_versions | boolean | 否 | 列出所有可用版本(默认值:false) |
输出示例
Action: actions/checkout
Latest Version: v6.0.1
Commit SHA: 8e8c483db84b4bee98b60c0593521ed34d9990e8
Immutable: No
Published: 2025-12-02T16:38:59Z
Recommended Usage (SHA-pinned):
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
Security Notes:
- WARNING: This release is NOT immutable. The tag could potentially be moved to a different commit.
- Using the SHA-pinned reference provides protection against tag tampering.
- SHA-pinned references prevent supply chain attacks by ensuring you always use the exact same code.工具: analyze_workflow
分析GitHub Actions工作流文件,并显示所有操作的版本状态。 报告当前版本与最新版本、更新级别(主要/次要/补丁)和风险 评估。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
workflow_content | string | 是 | 要分析的工作流YAML内容 |
only_updates | boolean | 否 | 仅显示需要更新的操作(默认值:false) |
输出示例
## Summary
Total actions: 6
Up to date: 1
Major updates available: 2 ⚠️
Minor updates available: 2
Patch updates available: 1
## Actions
| Action | Current | Latest | Update | Risk |
|--------|---------|--------|--------|------|
| actions/checkout | v4.2.2 | v6.0.1 | ⚠️ Major | 🔴 High |
| actions/setup-node | v4.1.0 | v6.2.0 | ⚠️ Major | 🔴 High |
| docker/login-action | v3.3.0 | v3.6.0 | 📦 Minor | 🟡 Medium |
| docker/build-push-action | v6.9.0 | v6.18.0 | 📦 Minor | 🟡 Medium |
| appleboy/ssh-action | v1.2.0 | v1.2.4 | 🔧 Patch | 🟢 Low |
## Safe Updates (Minor/Patch)
...
## Major Updates (Review Required)
...工具: suggest_updates
在工作流中为GitHub Actions建议安全更新。仅返回安全更新 (次要/补丁)以及在主要版本中保持最新的建议。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
workflow_content | string | 是 | 要分析的工作流YAML内容 |
risk_tolerance | string | 否 | "patch" =仅补丁, "minor" =补丁+次要(默认), "all" =全部 |
输出示例
## Summary
Total actions analyzed: 6
Already up to date: 1
Safe updates available: 3
Actions with major updates: 2 (staying on current major)
## Safe Updates
These updates are safe to apply:
### 📦 docker/login-action: v3.3.0 → v3.6.0
Minor version update - new features, backwards compatible
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.6.0
### 🔧 appleboy/ssh-action: v1.2.0 → v1.2.4
Patch version update - bug fixes only
uses: appleboy/ssh-action@2ead5e36573714d0d3cfcbac3646c3e0f09ec849 # v1.2.4
## Updates Within Current Major
These actions have major updates available, but you can safely update within your current major version:
### actions/checkout: v4.2.2 → v4.2.2
Safe update within v4.x (latest overall is v6.0.1)
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2工具: get_latest_in_major
在同一主版本中获取GitHub Action的最新版本。有用的 以确保安全更新,避免破坏更改。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | Yes | 带版本的动作引用(例如。, actions/checkout@v4 或 @v4.1.0) |
输出示例
Action: actions/checkout
Current Version: v4
Major Version: v4
Latest in v4.x: v4.2.2
Commit SHA: 11bd71901bbe5b1630ceea73d27597364c9af683
Immutable: Yes
Note: Latest overall is v6.0.1
Recommended Usage (SHA-pinned):
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2工具: get_action_documentation
获取特定版本GitHub Action的README文档。有用 了解如何在特定版本中使用操作。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | Yes | 动作引用(例如。, actions/checkout 或 actions/checkout@v4) |
ref | string | 否 | 可选的引用覆盖(标记/分支/提交)。默认为版本或主分支 |
输出示例
# actions/checkout Documentation
Ref: v4.2.0
---
[Full README markdown content for the action at the specified version]工具: compare_action_versions
比较GitHub Action的两个版本之间的更改。显示发行说明和 标识版本更新级别,以帮助做出升级决策。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | Yes | 当前版本的操作(例如。, actions/checkout@v4.0.2) |
target_version | string | 否 | 目标版本(默认为最新版本) |
输出示例
# Version Comparison: actions/checkout
From: v4.0.0
To: v4.2.0
## Summary
- Total releases: 3
- Major updates: 0
- Minor updates: 2
- Patch updates: 1
## Release History (chronological)
### v4.1.0 (2025-02-15) - Minor Update
Added support for sparse checkouts and improved performance.
### v4.1.1 (2025-02-20) - Patch Update
Fixed bug with submodule handling on Windows.
### v4.2.0 (2025-03-01) - Minor Update
Added new input parameter for custom checkout paths.
---
Note: Major version updates (marked with ⚠️) may contain breaking changes.
Review the release notes above to understand the impact of each update.认证
该服务支持多种身份验证方法,请在下面进行检查 订单:
- 组织特定令牌 (
GITHUB_TOKEN_)-适用于多组织场景 - 环境变量 (
GITHUB_TOKEN)-显式令牌配置 - GitHub命令行界面 (
gh auth token)-登录后自动生成令牌gh命令行界面 - 未认证 -仅具有速率限制的公共存储库
无令牌(未经身份验证)
- 仅适用于公共存储库
- 速率限制:60个请求/小时
- 无需设置
使用GitHub CLI(建议用于开发)
如果你有 安装和 已验证:
gh auth login该服务将自动使用您的 gh 没有显式令牌时的CLI令牌 已配置。这便于当地发展,不需要 管理单独的令牌。
权限说明: 服务需求 --allow-run=gh 执行许可 这 gh 命令。
使用环境令牌
设置 GITHUB_TOKEN 环境变量:
- 适用于 私有存储库
- 速率限制:5000个请求/小时
- 组织私人行动所需
- 建议用于生产部署
多组织支持
要跨多个组织访问私有存储库,请配置 组织特定令牌:
# Org-specific tokens (format: GITHUB_TOKEN_)
# Hyphens in org names become underscores, all uppercase
GITHUB_TOKEN_MY_ORG=ghp_xxx... # For My-Org
GITHUB_TOKEN_OTHER_ORG=ghp_yyy... # For Other-Org
GITHUB_TOKEN=ghp_zzz... # Fallback for public repos令牌解析顺序:
- 组织特定令牌(
GITHUB_TOKEN_) - 回退令牌(
GITHUB_TOKEN) - GitHub CLI令牌(
gh auth token) - 未经身份验证(仅限公共存储库)
支持的令牌类型和所需权限:
| 令牌类型 | 所需权限 | 备注 |
|---|---|---|
| 细粒PAT | Contents: Read + Metadata: Read | 推荐-适用于特定的repos/org |
| 经典PAT | repo 范围 | 更广泛的访问-仅在细粒度不合适时使用 |
| GitHub应用程序 | Contents: Read | 推荐给组织 |
注: 对于私有存储库,令牌必须具有读取权限 存储库内容。如果没有适当的权限,您将收到404错误 在查找私人行为时。
多组织的Claude桌面配置示例:
{
"mcpServers": {
"github-actions": {
"command": "deno",
"args": [
"run",
"--allow-net",
"--allow-env",
"--allow-run=gh",
"/path/to/mcp-github-actions/main.ts"
],
"env": {
"GITHUB_TOKEN_MY_ORG": "ghs_xxx...",
"GITHUB_TOKEN_OTHER_ORG": "ghs_yyy...",
"GITHUB_TOKEN": "ghp_zzz..."
}
}
}
}配置
最低释放年龄
避免使用太新的版本(可能包含未发现的错误或 成为供应链攻击的一部分),您可以配置最低年龄要求:
# Skip releases published within the last 5 days
MIN_RELEASE_AGE_DAYS=5设置后,服务将:
- 如果绝对最新版本比阈值新,则跳过该版本
- 返回符合年龄要求的最新版本
- 在输出中显示发布时间
- 当筛选处于活动状态时,在安全注释中添加注释
最低年龄示例:
Action: actions/checkout
Latest Version: v6.0.1
Commit SHA: 8e8c483db84b4bee98b60c0593521ed34d9990e8
Immutable: No
Published: 2025-12-02T16:38:59Z (52 days ago)
Security Notes:
- Minimum release age filter active: only considering releases at least 5 days old.如果没有符合年龄要求的版本,将返回一个错误,指示 最新版本的年龄。
最低年龄的Claude桌面配置:
{
"mcpServers": {
"github-actions": {
"command": "deno",
"args": [
"run",
"--allow-net",
"--allow-env",
"--allow-run=gh",
"/path/to/mcp-github-actions/main.ts"
],
"env": {
"GITHUB_TOKEN": "ghp_xxx...",
"MIN_RELEASE_AGE_DAYS": "5"
}
}
}
}发展
# Run the server
deno task start
# Run with watch mode (auto-reload)
deno task dev
# Type check
deno task check
# Lint
deno task lint
# Format
deno task fmt
# Compile to binary
deno task compile安全最佳实践
- 始终使用SHA固定引用 生产工作流程中
- 检查不变性状态 -不可变版本不能修改
- 添加版本注释 为了可维护性:
@sha # v4.2.0 - 使用Dependabot/Renovate 保持SHA参考的更新
参考文献
许可证
麻省理工学院
