MCP GitHub Dashboard

MCP GitHub Dashboard

A comprehensive GitHub project dashboard for MCP that monitors multiple repositories, pull requests, issues, deployments, and health status through AI assistants.

Category
访问服务器

README

📊 MCP GitHub Dashboard

npm version License: MIT MCP

A comprehensive GitHub project dashboard for the Model Context Protocol (MCP). Monitor multiple repositories, pull requests, issues, deployments, and health status through AI assistants like Claude.

✨ Features

  • 📋 Multi-Project Management - Monitor multiple repositories from one place
  • 🔍 Repository Status - View commits, PRs, issues, and workflow status
  • 🚀 Deployment Tracking - Monitor GitHub Actions and Heroku deployments
  • 🏥 Health Monitoring - Check URL health for production/staging environments
  • 📊 Comprehensive Dashboard - Get complete project overviews at a glance
  • 🔒 Secure - Uses your GitHub tokens with proper scoping

📋 Prerequisites

  • GitHub Personal Access Token - Generate here
  • Node.js 16+ for running the MCP server
  • Repository Access - Token must have access to repos you want to monitor

GitHub Token Scopes Required

  • repo - Access to repository data
  • workflow - Access to GitHub Actions (optional, for deployment monitoring)

🚀 Quick Start

Using with npx (recommended)

GITHUB_TOKEN=your-token GITHUB_PROJECTS='[{"id":"test","name":"Test","github":{"owner":"user","repo":"repo"}}]' npx @artik0din/mcp-github-dashboard

Install globally

npm install -g @artik0din/mcp-github-dashboard
export GITHUB_TOKEN=your-token
export GITHUB_PROJECTS='[...]'
mcp-github-dashboard

🔧 Configuration

Environment Variables

Required

  • GITHUB_TOKEN - Your GitHub personal access token
  • GITHUB_PROJECTS - JSON array of project configurations

Optional

  • HEROKU_API_KEY - For Heroku deployment monitoring

Project Configuration

The GITHUB_PROJECTS environment variable should contain a JSON array of project configurations:

[
  {
    "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"]
  }
]

Configuration Options

  • id (required) - Unique project identifier
  • name (required) - Human-readable project name
  • description (optional) - Project description
  • github (optional) - GitHub repository information
    • owner - GitHub username or organization
    • repo - Repository name
  • heroku (optional) - Heroku app information
    • appName - Heroku app name
  • urls (optional) - Environment URLs for health checking
    • production - Production URL
    • staging - Staging URL
  • tags (optional) - Array of tags for filtering

🔧 MCP Client Setup

Add this server to your MCP client configuration:

Claude Desktop Configuration

{
  "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"
      }
    }
  }
}

Using .env file

  1. Copy .env.example to .env
  2. Fill in your configuration
  3. Use without env in MCP config:
{
  "mcpServers": {
    "github-dashboard": {
      "command": "npx",
      "args": ["@artik0din/mcp-github-dashboard"]
    }
  }
}

📚 Available Tools

Project Management

  • list_projects - List all configured projects
    • tag (string, optional) - Filter by tag

Repository Status

  • get_project_status - Get comprehensive project status

    • project_id (string, required) - Project ID
    • Returns: commits, PR/issue counts, workflow status, health checks
  • list_prs - List pull requests for a project

    • project_id (string, required) - Project ID
    • state (string) - PR state: open, closed, all (default: open)
    • limit (number) - Max PRs to return (default: 20)
  • list_issues - List issues for a project

    • project_id (string, required) - Project ID
    • state (string) - Issue state: open, closed, all (default: open)
    • labels (array) - Filter by label names
    • limit (number) - Max issues to return (default: 20)

Deployment Monitoring

  • get_deployments - Get recent deployments
    • project_id (string, required) - Project ID
    • limit (number) - Max deployments to return (default: 10)
    • Returns: GitHub Actions runs, Heroku releases

💡 Usage Examples

Monitor Project Health

// Use get_project_status tool with:
// project_id: "my-app"
// Returns overview of commits, PRs, issues, workflows, URL health

Check Pull Requests

// Use list_prs tool with:
// project_id: "my-app"
// state: "open"
// limit: 10

View Recent Deployments

// Use get_deployments tool with:
// project_id: "my-app"
// limit: 5
// Returns GitHub Actions and Heroku deployment status

Filter Projects by Tag

// Use list_projects tool with:
// tag: "production"
// Returns only projects tagged with "production"

🏥 Health Monitoring

The dashboard automatically monitors URL health for configured environments:

  • Production/Staging URLs - HTTP HEAD requests to check availability
  • Response Codes - Tracks HTTP status and response time
  • Status Summary - Quick overview of all environment health

📈 GitHub Integration

Monitors the following GitHub data:

  • Recent Commits - Last 5 commits with author and message
  • Pull Requests - Open/closed PRs with reviewers and labels
  • Issues - Repository issues (excluding PRs) with assignees
  • GitHub Actions - Workflow runs and deployment status
  • Repository Health - Overall activity and status

🚀 Heroku Integration

When Heroku app names are configured and HEROKU_API_KEY is provided:

  • Release History - Recent deployments and releases
  • Deployment Status - Success/failure of deployments
  • User Attribution - Who deployed what and when

🔒 Security

  • Uses personal GitHub tokens with minimal required scopes
  • No credential storage - reads from environment only
  • HTTPS-only API communication
  • Respects GitHub API rate limits

🛠️ Development

# 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

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

Contributions welcome! Please feel free to submit a Pull Request.

🔗 Related

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选