📊 MCP GitHub仪表板
](https://badge.fury.io/js/@artik0din%2Fmcp-github-dashboard)  
一个全面的GitHub项目仪表板,用于模型上下文协议(MCP)。通过Claude等人工智能助手监控多个存储库,提取请求、问题、部署和健康状态。
✨ 特性
- 📋 多项目管理 -从一个地方监视多个存储库
- 🔍 存储库状态 -查看提交、PR、问题和工作流状态
- 🚀 部署跟踪 -监控GitHub操作和Heroku部署
- 🏥 健康监测 -检查生产/暂存环境的URL运行状况
- 📊 综合仪表板 -一目了然地获得完整的项目概述
- 🔒 安全 -使用具有适当范围的GitHub令牌
📋 先决条件
- GitHub个人访问令牌 - 在此处生成
- Node.js 16+用于运行MCP服务器
- 存储库访问 -令牌必须能够访问要监视的存储库
需要GitHub令牌范围
repo-访问存储库数据workflow-访问GitHub操作(可选,用于部署监控)
🚀 快速开始
与npx一起使用(推荐)
GITHUB_TOKEN=your-token GITHUB_PROJECTS='[{"id":"test","name":"Test","github":{"owner":"user","repo":"repo"}}]' npx @artik0din/mcp-github-dashboard全局安装
npm install -g @artik0din/mcp-github-dashboard
export GITHUB_TOKEN=your-token
export GITHUB_PROJECTS='[...]'
mcp-github-dashboard🔧 配置
环境变量
必需
- GITHUB令牌 -您的GitHub个人访问令牌
- GITHUB项目 -项目配置的JSON数组
可选的
- HEROKU_API关键字 -用于Heroku部署监控
项目配置
这 GITHUB_PROJECTS 环境变量应包含项目配置的JSON数组:
[
{
"id": "my-app",
"name": "My Application",
"description": "Main web application",
"github": {
"owner": "my-org",
"repo": "my-app"
},
"heroku": {
"appName": "my-app-production"
},
"urls": {
"production": "https://my-app.com",
"staging": "https://staging.my-app.com"
},
"tags": ["web", "production"]
},
{
"id": "my-api",
"name": "My API",
"description": "Backend API service",
"github": {
"owner": "my-org",
"repo": "my-api"
},
"tags": ["api", "backend"]
}
]配置选项
- ID (必需)-唯一项目标识符
- 名字 (必填)-人类可读的项目名称
- 描述 (可选)-项目描述
- GitHub (可选)-GitHub存储库信息
- 所有者 -GitHub用户名或组织 - 仓库 -存储库名称
- 希罗库 (可选)-Heroku应用程序信息
- 应用程序名称 -Heroku应用程序名称
- 网址 (可选)-用于健康检查的环境URL
- 生产 -生产URL - 暂存 -暂存URL
- 标签 (可选)-用于过滤的标签数组
🔧 MCP客户端设置
将此服务器添加到MCP客户端配置中:
Claude桌面配置
{
"mcpServers": {
"github-dashboard": {
"command": "npx",
"args": ["@artik0din/mcp-github-dashboard"],
"env": {
"GITHUB_TOKEN": "your-github-token",
"GITHUB_PROJECTS": "[{\"id\":\"my-project\",\"name\":\"My Project\",\"github\":{\"owner\":\"user\",\"repo\":\"repo\"}}]",
"HEROKU_API_KEY": "your-heroku-api-key"
}
}
}
}使用.env文件
- 复制
.env.example到.env - 填写您的配置
- 在MCP配置中不使用env:
{
"mcpServers": {
"github-dashboard": {
"command": "npx",
"args": ["@artik0din/mcp-github-dashboard"]
}
}
}📚 可用工具
项目管理
- list_项目 -列出所有已配置的项目
- tag (字符串,可选)-按标签筛选
存储库状态
- 获取项目状态 -获取全面的项目状态
- project_id (字符串,必填)-项目ID - 返回:提交、PR/问题计数、工作流状态、健康检查
- list_prs -列出项目的拉取请求
- project_id (字符串,必填)-项目ID - state (string)-PR状态:打开、关闭、全部(默认:打开) - limit (number)-要返回的最大PR(默认值:20)
- list_issues -列出项目的问题
- project_id (字符串,必填)-项目ID - state (string)-问题状态:打开、关闭、全部(默认:打开) - labels (数组)-按标签名称筛选 - limit (number)-要返回的最大问题数(默认值:20)
部署监控
- get_部署 -获取最近的部署
- project_id (字符串,必填)-项目ID - limit (number)-要返回的最大部署数(默认值:10) - 返回:GitHub操作运行,Heroku发布
💡 用法示例
监控项目运行状况
// Use get_project_status tool with:
// project_id: "my-app"
// Returns overview of commits, PRs, issues, workflows, URL health检查拉取请求
// Use list_prs tool with:
// project_id: "my-app"
// state: "open"
// limit: 10查看最近的部署
// Use get_deployments tool with:
// project_id: "my-app"
// limit: 5
// Returns GitHub Actions and Heroku deployment status按标签筛选项目
// Use list_projects tool with:
// tag: "production"
// Returns only projects tagged with "production"🏥 健康监测
仪表板会自动监控已配置环境的URL运行状况:
- 生产/暂存URL -HTTP HEAD请求检查可用性
- 响应代码 -跟踪HTTP状态和响应时间
- 状态摘要 -快速概述所有环境健康状况
📈 GitHub集成
监控以下GitHub数据:
- 最近提交 -最后5次提交,包含作者和消息
- 拉取请求 -带有审阅者和标签的开放/封闭PR
- 问题 -与受让人之间的存储库问题(不包括PR)
- GitHub操作 -工作流运行和部署状态
- 存储库运行状况 -总体活动和状态
🚀 Heroku集成
配置Heroku应用程序名称时 HEROKU_API_KEY 提供:
- 发布历史 -最近的部署和发布
- 部署状态 -部署成功/失败
- 用户归因 -谁部署了什么以及何时部署
🔒 安全
- 使用具有最小所需范围的个人GitHub令牌
- 无凭据存储-仅从环境中读取
- 仅限HTTPS的API通信
- 尊重GitHub API费率限制
🛠️ 发展
# Clone and setup
git clone https://github.com/artik0din/mcp-github-dashboard.git
cd mcp-github-dashboard
npm install
# Configure environment
cp .env.example .env
# Edit .env with your settings
# Build and run
npm run build
npm start
# Development mode
npm run dev📝 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🤝 贡献
欢迎投稿!请随时提交拉取请求。
