Workflow timing analysis, configuration audit and billing insight for GitHub Actions.
An MCP server for GitHub Actions workflow timing analysis, configuration auditing, and billing insights.
| 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. |
fetch)repo and read:org scopesThree transport modes are available. Choose whichever fits your deployment:
The server runs as a subprocess of the MCP client over stdin/stdout. No network port required.
~/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 mcp add gha-intel -e GITHUB_TOKEN=ghp_your_token -- npx -y @barissozudogru/gha-intel-mcp
~/.cursor/mcp.json
{
"mcpServers": {
"gha-intel": {
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"gha-intel": {
"command": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
.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"
}
}
}
}
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/config.yaml
mcpServers:
- name: gha-intel
command: npx
args:
- -y
- "@barissozudogru/gha-intel-mcp"
env:
GITHUB_TOKEN: ghp_your_token
~/.config/zed/settings.json
{
"context_servers": {
"gha-intel": {
"command": {
"path": "npx",
"args": ["-y", "@barissozudogru/gha-intel-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
}
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"
}
}
}
}
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/mcp.json
{
"mcpServers": {
"gha-intel": {
"url": "http://localhost:3000/mcp"
}
}
}
.vscode/mcp.json
{
"servers": {
"gha-intel": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"gha-intel": {
"serverUrl": "http://localhost:3000/mcp"
}
}
}
~/.continue/config.yaml
mcpServers:
- name: gha-intel
url: http://localhost:3000/mcp
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.
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.
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.
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.
| 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). |
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @barissozudogru/gha-intel-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-barissozudogru-gha-intel": {
"command": "npx",
"args": [
"-y",
"@barissozudogru/gha-intel-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@barissozudogru/gha-intel-mcpnpmio.github.barissozudogru/gha-intel works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.