Workflow timing analysis, configuration audit and billing insight for GitHub Actions.
io.github.barissozudogru/gha-intel — Model Context Protocol (MCP) Server
An MCP server for GitHub Actions that provides workflow timing analysis, configuration auditing, and billing insight. It targets GitHub Actions performance and operational checks, and exposes multiple tools for computing duration statistics, inspecting workflow YAML, and retrieving usage metrics.
🛠️ Key Features
Workflow timing analysis with average, min, max, and p95 duration statistics for recent runs (list_workflow_performance).
Configuration auditing of workflow YAML for caching, parallelism, concurrency, artifacts, checkout depth, timeouts, runner pinning, Docker caching, and triggers (analyze_workflow_config).
Billing usage reporting via Actions billing minutes (get_billing_usage).
🚀 Use Cases
Identify slow GitHub Actions workflow durations using p95 and other summary statistics.
Review workflow configuration for caching, concurrency, and runner pinning practices.
Monitor billing minutes to understand Actions cost usage.
⚡ Developer Benefits
Structured tool outputs for performance, configuration evaluation, and billing minutes.
Automated checks across common CI/CD workflow dimensions listed in the README excerpt.
⚠️ Limitations
The provided excerpt does not describe tool inputs, authentication requirements, output schemas, or supported time ranges.
Start the server in HTTP mode and point clients at the endpoint:
bash
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:
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 repository cache consumption and recent run estimates. Account billing is currently limited by a retired API integration.
Parameter
Type
Required
Description
owner
string
yes
GitHub username or organisation
repo
string
no
Repository name for repo-scoped cache and run stats
Output: With repo supplied, cache usage and recent run timing where accessible. Account billing requests use retired GitHub endpoints and can fail. Existing cost estimates use a historical rate table and should not be treated as current charges.
Environment Variables
Variable
Required
Description
GITHUB_TOKEN
yes
GitHub personal access token. Access must match the requested repository and endpoint. Keep the token outside version control.
TRANSPORT
no
Set to http to enable HTTP mode (default: stdio).
PORT
no
HTTP port when running in HTTP mode (default: 3000).
Limitations and deployment
Account billing uses /settings/billing/actions, which GitHub
retired in September 2025.
Granting broader token scopes does not restore those endpoints. Repository cache
and run timing requests use separate endpoints.
Current cost estimates use historical rates, and cache utilisation assumes a
fixed 10 GB limit. Review account configuration before using either for capacity
or budget decisions.
HTTP mode listens on all interfaces and does not implement client authentication.
Keep it on a trusted network or place an authenticated gateway in front of it.
The server uses its configured GitHub token for client requests.
Timing statistics describe the fetched runs, rather than predicting a future run.