Gha Intel

io.github.barissozudogruPublished by GitHub account barissozudogruv0.4.3Updated Oct 25, 2026

Workflow timing analysis, configuration audit and billing insight for GitHub Actions.

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Local MCP server that lets an assistant inspect GitHub Actions run timing, audit workflow YAML for optimizations, and read repository cache usage.

What you can do
Compute average, min, max and p95 duration statistics for recent workflow runs, per job and per step, with recent run conclusions and configurable run count up to 100. Audit a workflow YAML for optimization opportunities across caching, matrix strategy, concurrency, artifacts, checkout depth, timeouts, runner pinning, Docker caching and trigger filters, with findings by severity and recommendations. Read repository cache consumption and recent run timing estimates for an owner and optional repository.
When to use it
Useful when you want an assistant to explain why CI is slow, compare workflow run durations, or review a GitHub Actions workflow file for caching, concurrency and timeout improvements before merging changes.
Requirements
Runs locally as a Node.js process (Node.js 18 or later) via the npm package, typically launched with npx over stdio; HTTP and Docker modes are also documented. Requires a GITHUB_TOKEN environment variable with read access to the repositories and endpoints you want to inspect. Network access to the GitHub API is needed.
Before you install
Requires a GitHub token stored in configuration; keep it out of version control and grant only the repository and endpoint access needed. HTTP mode listens on all interfaces without client authentication and uses the configured token for requests, so keep it on a trusted network or behind an authenticated gateway. Account billing endpoints are retired and cost estimates use historical rates, so figures should not be used for budget decisions.

Installation

In SourceWeft

  1. Open Gha Intel in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[gha-intel-mcp]

gha-intel-mcp

[npm version] [License: MIT]

npm · Source · Issues

Inspect GitHub Actions run timing and review workflow configuration through MCP.

Tools

ToolDescription
list_workflow_performanceComputes average, min, max, and p95 duration statistics for recent workflow runs.
analyze_workflow_configEvaluates workflow YAML for caching, parallelism, concurrency, artifacts, checkout depth, timeouts, runner pinning, Docker caching, and triggers.
get_billing_usageReads repository cache usage and recent run timing. Account billing uses retired endpoints; see limitations below.

Requirements

  • Node.js >= 18 (uses native fetch)
  • A GitHub token with access to the repositories you want to inspect. See your token type and endpoint permissions before granting access.

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)

json
{  "mcpServers": {    "gha-intel": {      "command": "npx",      "args": ["-y", "@barissozudogru/gha-intel-mcp"],      "env": {        "GITHUB_TOKEN": "ghp_your_token"      }    }  }}
Claude Code
bash
claude mcp add gha-intel -e GITHUB_TOKEN=ghp_your_token -- npx -y @barissozudogru/gha-intel-mcp
Cursor

~/.cursor/mcp.json

json
{  "mcpServers": {    "gha-intel": {      "command": "npx",      "args": ["-y", "@barissozudogru/gha-intel-mcp"],      "env": {        "GITHUB_TOKEN": "ghp_your_token"      }    }  }}
Windsurf

~/.codeium/windsurf/mcp_config.json

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

json
{  "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:

json
{  "mcpServers": {    "gha-intel": {      "command": "npx",      "args": ["-y", "@barissozudogru/gha-intel-mcp"],      "env": {        "GITHUB_TOKEN": "ghp_your_token"      }    }  }}
Continue.dev

~/.continue/config.yaml

yaml
mcpServers:  - name: gha-intel    command: npx    args:      - -y      - "@barissozudogru/gha-intel-mcp"    env:      GITHUB_TOKEN: ghp_your_token
Zed

~/.config/zed/settings.json

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:

json
{  "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:

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:

bash
TRANSPORT=http PORT=3000 GITHUB_TOKEN=ghp_your_token npx @barissozudogru/gha-intel-mcp
Cursor (HTTP)

~/.cursor/mcp.json

json
{  "mcpServers": {    "gha-intel": {      "url": "http://localhost:3000/mcp"    }  }}
VS Code + Copilot (HTTP)

.vscode/mcp.json

json
{  "servers": {    "gha-intel": {      "type": "http",      "url": "http://localhost:3000/mcp"    }  }}
Windsurf (HTTP)

~/.codeium/windsurf/mcp_config.json

json
{  "mcpServers": {    "gha-intel": {      "serverUrl": "http://localhost:3000/mcp"    }  }}
Continue.dev (HTTP)

~/.continue/config.yaml

yaml
mcpServers:  - name: gha-intel    url: http://localhost:3000/mcp

Option C: Docker

bash
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.

ParameterTypeRequiredDescription
ownerstringyesGitHub owner (user or org)
repostringyesRepository name
workflow_idstringyesWorkflow file name (e.g. ci.yml) or numeric ID
countnumbernoNumber 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.

ParameterTypeRequiredDescription
workflow_contentstringyesFull 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.

ParameterTypeRequiredDescription
ownerstringyesGitHub username or organisation
repostringnoRepository 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

VariableRequiredDescription
GITHUB_TOKENyesGitHub personal access token. Access must match the requested repository and endpoint. Keep the token outside version control.
TRANSPORTnoSet to http to enable HTTP mode (default: stdio).
PORTnoHTTP 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.

Development and support

Report problems through GitHub issues. See CONTRIBUTING.md for the contribution workflow.

To build and test a source checkout with Node.js 22:

bash
npm cinpm testnpm run build

The default branch can contain changes that have not yet been published to npm.

License

MIT

Source: README.md at commit 6ca9015

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.4.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts