gha-intel-mcp
MCP server that analyzes GitHub Actions workflow performance, audits configuration for optimization, and provides billing and cache usage insights.
README
<img src="./assets/banner-gha-intel.svg" alt="gha-intel-mcp" width="888" />
An MCP server for GitHub Actions workflow timing analysis, configuration auditing, and billing insights.
Tools
| Tool | Description |
|---|---|
list_workflow_performance |
Computes average, min, max, and p95 duration statistics for recent workflow runs. |
analyze_workflow_config |
Evaluates workflow YAML for caching, parallelism, concurrency, artifacts, checkout depth, timeouts, runner pinning, Docker caching, and triggers. |
get_billing_usage |
Returns Actions billing minutes and estimated cost by runner type, plus per-repo cache utilisation. |
Requirements
- Node.js >= 18 (uses native
fetch) - A GitHub personal access token with
repoandread:orgscopes
Setup
Three transport modes are available. Choose whichever fits your deployment:
Option A: stdio (local, recommended for desktop clients)
The server runs as a subprocess of the MCP client over stdin/stdout. No network port required.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
%APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"gha-intel": {
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
Claude Code
claude mcp add gha-intel -e GITHUB_TOKEN=ghp_your_token -- npx -y @barissozudogru/gha-intel-mcp
Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"gha-intel": {
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"gha-intel": {
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
VS Code + Copilot
.vscode/mcp.json (workspace) or user settings
{
"servers": {
"gha-intel": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
Cline
Open Cline settings, navigate to MCP Servers, and add:
{
"mcpServers": {
"gha-intel": {
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
Continue.dev
~/.continue/config.yaml
mcpServers:
- name: gha-intel
command: npx
args:
- -y
- "@barissozudogru/gha-intel-mcp"
env:
GITHUB_TOKEN: ghp_your_token
Zed
~/.config/zed/settings.json
{
"context_servers": {
"gha-intel": {
"command": {
"path": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
}
JetBrains (IntelliJ, PyCharm, WebStorm, etc.)
Go to Settings > Tools > AI Assistant > MCP and add:
{
"mcpServers": {
"gha-intel": {
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
Option B: HTTP (remote or cloud clients)
Start the server in HTTP mode and point clients at the endpoint:
GITHUB_TOKEN=ghp_your_token npx @barissozudogru/gha-intel-mcp --http
# Server listens on http://0.0.0.0:3000/mcp
# Health check: http://localhost:3000/health
Or set via environment variable instead of the flag:
TRANSPORT=http PORT=3000 GITHUB_TOKEN=ghp_your_token npx @barissozudogru/gha-intel-mcp
Cursor (HTTP)
~/.cursor/mcp.json
{
"mcpServers": {
"gha-intel": {
"url": "http://localhost:3000/mcp"
}
}
}
VS Code + Copilot (HTTP)
.vscode/mcp.json
{
"servers": {
"gha-intel": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}
Windsurf (HTTP)
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"gha-intel": {
"serverUrl": "http://localhost:3000/mcp"
}
}
}
Continue.dev (HTTP)
~/.continue/config.yaml
mcpServers:
- name: gha-intel
url: http://localhost:3000/mcp
Option C: Docker
docker build -t gha-intel-mcp .
docker run -p 3000:3000 -e GITHUB_TOKEN=ghp_your_token gha-intel-mcp
The container starts in HTTP mode by default. Point your client at http://localhost:3000/mcp.
Tool Reference
list_workflow_performance
Fetch real run timing data and compute job-level statistics.
| Parameter | Type | Required | Description |
|---|---|---|---|
owner |
string | yes | GitHub owner (user or org) |
repo |
string | yes | Repository name |
workflow_id |
string | yes | Workflow file name (e.g. ci.yml) or numeric ID |
count |
number | no | Number of recent runs to analyse (default: 10, max: 100) |
Output: Per-job and per-step timing stats (avg, min, max, p95), overall run timing, and a list of recent run conclusions.
analyze_workflow_config
Parse and audit a workflow YAML for optimisation opportunities.
| Parameter | Type | Required | Description |
|---|---|---|---|
workflow_content |
string | yes | Full YAML content of the workflow file |
Output: Findings grouped by severity (critical / warning / info / good) across nine categories, each with a concrete recommendation.
Categories analysed: Dependency caching, matrix strategy and fail-fast, concurrency groups and cancel-in-progress, artifact uploads, git checkout depth, job timeout-minutes, runner version pinning, Docker layer caching, and trigger path filters.
get_billing_usage
Retrieve billing and cache consumption data.
| Parameter | Type | Required | Description |
|---|---|---|---|
owner |
string | yes | GitHub username or organisation |
repo |
string | no | Repository name for repo-scoped cache and run stats |
Output: Total minutes used, plan utilisation, estimated cost broken down by runner type (Ubuntu / macOS / Windows / large runners), plus per-repo cache size and utilisation percentage.
Environment Variables
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN |
yes | GitHub personal access token. Requires repo scope for private repos, read:org for org billing. |
TRANSPORT |
no | Set to http to enable HTTP mode (default: stdio). |
PORT |
no | HTTP port when running in HTTP mode (default: 3000). |
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。