Skip to main content
Glama
barissozudogru

gha-intel-mcp

GitHub Actions 워크플로 타이밍 분석, 구성 감사, 결제 인사이트를 위한 MCP 서버입니다.

도구

도구

설명

list_workflow_performance

최근 워크플로 실행의 평균, 최소, 최대, p95 기간 통계를 계산합니다.

analyze_workflow_config

캐싱, 병렬 처리, 동시성, 아티팩트, 체크아웃 깊이, 시간 제한, 러너 고정, Docker 캐싱, 트리거에 대해 워크플로 YAML을 평가합니다.

get_billing_usage

러너 유형별 Actions 청구 시간과 예상 비용, 리포지토리별 캐시 사용률을 반환합니다.

Related MCP server: copilot-usage-mcp

요구 사항

  • Node.js >= 18 (기본 fetch 사용)

  • repo 및 read:org 범위의 GitHub 개인 액세스 토큰

설정

세 가지 전송 모드를 사용할 수 있습니다. 배포 환경에 맞는 것을 선택하세요:


옵션 A: stdio (로컬, 데스크톱 클라이언트 권장)

서버는 stdin/stdout을 통해 MCP 클라이언트의 하위 프로세스로 실행됩니다. 네트워크 포트가 필요 없습니다.

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 (작업 영역) 또는 사용자 설정

{
  "servers": {
    "gha-intel": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@barissozudogru/gha-intel-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token"
      }
    }
  }
}

Cline

Cline 설정을 열고 MCP 서버로 이동한 후 추가하세요:

{
  "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 등)

설정 > 도구 > AI 어시스턴트 > MCP로 이동하여 추가하세요:

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

옵션 B: HTTP (원격 또는 클라우드 클라이언트)

HTTP 모드로 서버를 시작하고 클라이언트가 엔드포인트를 가리키게 하세요:

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

또는 플래그 대신 환경 변수로 설정하세요:

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

옵션 C: Docker

docker build -t gha-intel-mcp .
docker run -p 3000:3000 -e GITHUB_TOKEN=ghp_your_token gha-intel-mcp

컨테이너는 기본적으로 HTTP 모드로 시작합니다. 클라이언트가 http://localhost:3000/mcp를 가리키게 하세요.


도구 참조

list_workflow_performance

실제 실행 타이밍 데이터를 가져와 작업 수준 통계를 계산합니다.

매개변수

유형

필수

설명

owner

string

예

GitHub 소유자(사용자 또는 조직)

repo

string

예

리포지토리 이름

workflow_id

string

예

워크플로 파일 이름(예: ci.yml) 또는 숫자 ID

count

number

아니요

분석할 최근 실행 수(기본값: 10, 최대: 100)

출력: 작업별 및 단계별 타이밍 통계(평균, 최소, 최대, p95), 전체 실행 타이밍, 최근 실행 결론 목록.


analyze_workflow_config

최적화 기회를 위해 워크플로 YAML을 구문 분석하고 감사합니다.

매개변수

유형

필수

설명

workflow_content

string

예

워크플로 파일의 전체 YAML 콘텐츠

출력: 심각도(치명적 / 경고 / 정보 / 양호)별로 그룹화된 결과가 9개 범주에 걸쳐 제공되며, 각각 구체적인 권장 사항이 포함됩니다.

분석 범주: 종속성 캐싱, 매트릭스 전략 및 빠른 실패, 동시성 그룹 및 진행 중 취소, 아티팩트 업로드, git 체크아웃 깊이, 작업 시간 제한(분), 러너 버전 고정, Docker 레이어 캐싱, 트리거 경로 필터.


get_billing_usage

청구 및 캐시 소비 데이터를 검색합니다.

매개변수

유형

필수

설명

owner

string

예

GitHub 사용자 이름 또는 조직

repo

string

아니요

리포지토리 범위 캐시 및 실행 통계용 리포지토리 이름

출력: 사용된 총 시간, 플랜 사용률, 러너 유형(Ubuntu / macOS / Windows / 대형 러너)별 예상 비용, 리포지토리별 캐시 크기 및 사용률 백분율.


환경 변수

변수

필수

설명

GITHUB_TOKEN

예

GitHub 개인 액세스 토큰. 비공개 리포지토리에는 repo 범위, 조직 청구에는 read:org 범위가 필요합니다.

TRANSPORT

아니요

HTTP 모드를 활성화하려면 http로 설정하세요(기본값: stdio).

PORT

아니요

HTTP 모드에서 실행할 때의 HTTP 포트(기본값: 3000).

라이선스

MIT

Available Tools

3 tools
analyze_workflow_configAnalyze Workflow ConfigA

Parse a GitHub Actions workflow YAML (provided as a string) and identify optimization opportunities: missing caches, matrix strategy, concurrency controls, slow dependency installs, artifact handling, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_contentYesFull YAML content of the GitHub Actions workflow file

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosure. It says the tool 'parses' and 'identifies' optimization opportunities, implying read-only analysis. However, it doesn't state whether it modifies anything, whether it requires valid YAML, or what happens on invalid input. The description doesn't contradict annotations, but it adds minimal behavioral detail beyond the action itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that packs substantial information: the input format (YAML string), the action (parse and identify optimization opportunities), and specific examples of what it looks for. Every element earns its place, and it's front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given it's a single-parameter tool with a descriptive schema, no output schema, and no annotations, the description covers the essential aspects: input format, purpose, and analysis areas. It's quite complete for its simplicity. The only gap is specifying expected output format, but since no output schema exists, the description should ideally mention what the analysis returns, though it's not critical for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'workflow_content' has a clear schema description 'Full YAML content of the GitHub Actions workflow file', and schema coverage is 100%. The description adds the context of what the tool does with it (parse and analyze) but doesn't add format expectations beyond what the schema says. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool parses a GitHub Actions workflow YAML string and identifies optimization opportunities, listing specific areas (caches, matrix strategy, concurrency, dependency installs, artifacts). This is a specific verb 'analyze' with a clear resource 'workflow config' and distinct purpose from siblings like list_workflow_performance and get_billing_usage, which focus on performance listing and billing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use: when you have a workflow YAML string to analyze for optimization. It does not explicitly contrast with siblings or mention when not to use. While the purpose is clear, there is no explicit guidance on alternatives or exclusions, so it's adequate but lacks depth.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_billing_usageGet Billing UsageA

Retrieve GitHub Actions billing and cache usage statistics for an owner (user or org), optionally scoped to a specific repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoOptional repository name to scope usage. When provided, returns repo-level cache stats and recent run timing.
ownerYesGitHub username or organisation name

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full weight. It discloses that it retrieves statistics, but does not clarify whether this is a read-only operation (likely safe), what data is returned (cache stats, recent run timing), or any potential side effects. It doesn't mention rate limits, authorization needs, or whether it only works for paid plans. This is a basic functional description with no behavioral depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that is front-loaded with the verb and resource. It is concise and avoids redundancy, but it could potentially be split into two sentences for clarity (e.g., separating the scoping condition). Still, it is efficient with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with only 2 params and no output schema. The description covers the main purpose and scoping, which is adequate for a read-only retrieval tool. However, given no annotations and no output schema, it would benefit from mentioning whether the returned data is summarized or detailed, or noting that repo-scoped usage may not include owner-level billing aggregates. Completeness is acceptable but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters having descriptions. The description adds that 'repo' returns 'repo-level cache stats and recent run timing,' which supplements the schema by specifying the effect of providing the optional repo. However, it doesn't detail the exact format of 'owner' (e.g., case sensitivity) or the structure of returned data, but it adds meaningful scoping context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the specific resource 'GitHub Actions billing and cache usage statistics', and it distinguishes scope options (owner vs. repo). It differentiates from siblings like 'list_workflow_performance' and 'analyze_workflow_config' by targeting billing/cache, while siblings focus on performance/config.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying optional scoping to a repository, but it does not explicitly state when to use this vs. siblings, nor provide exclusions. There is no mention of prerequisites (e.g., required permissions) or when owner-only vs. repo-scoped is appropriate. Context like billing queries is implied but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workflow_performanceList Workflow PerformanceA

Fetch the last N workflow runs and compute job-level timing statistics (avg, min, max, p95) across those runs. Useful for identifying slow jobs and trends.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesGitHub repository name
countNoNumber of recent runs to analyse (default: 10, max: 100)
ownerYesGitHub repository owner (user or org)
workflow_idYesWorkflow file name (e.g. ci.yml) or numeric workflow ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that it fetches runs and computes statistics, but does not mention API rate limits, authentication needs, or what happens with insufficient data. The description adds some behavioral context (computing stats) but omits other factors like data retention or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the function, the second states the use case. No waste, fully front-loaded, concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given it's a computation tool with no output schema and no annotations, the description effectively conveys purpose and usage. Missing details like output format or edge cases (e.g., no runs found) are not critical given the tool's simplicity. It covers essential aspects for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds no additional parameter-level details beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches the last N workflow runs and computes job-level timing statistics, which is a specific verb+resource combination. It also distinguishes itself from siblings like analyze_workflow_config and get_billing_usage by focusing on performance statistics derived from runs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for performance analysis ('Useful for identifying slow jobs and trends') but does not explicitly say when not to use it or mention alternatives. It provides clear context for when this tool is appropriate, but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.4.3
    • First observedanalyze_workflow_config
    • First observedget_billing_usage
    • First observedlist_workflow_performance

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool addresses a clearly distinct aspect: runtime performance metrics, static configuration analysis, and billing/cost usage. There is no overlap in purpose or data source, so an agent can reliably select the right tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: list_workflow_performance, analyze_workflow_config, get_billing_usage. The verbs (list, analyze, get) and nouns clearly indicate the action and subject, maintaining uniformity across the set.

Tool Count4/5

With only 3 tools, the server is minimally scoped but each tool serves a distinct, valuable function within the GitHub Actions intel domain. The count is within the typical 3-15 range, though one could argue it's slightly on the lower end for comprehensive coverage.

Completeness3/5

The tools cover performance metrics, config analysis, and billing, but there's a notable gap: no tool to fetch the workflow YAML directly, forcing an external step for configuration analysis. Additionally, lifecycle operations like listing workflows or runs are missing, though performance stats partially address that.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that retrieves GitHub Copilot usage metrics and seat assignment data across Enterprise, Organization, and Team levels. It allows users to monitor code completions, chat activity, and active user counts through integrated tools.
    5
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A production-ready MCP server that provides AI assistants with comprehensive GitHub developer tooling including PR analysis, code review, changelog generation, dependency auditing, commit summarization, and refactoring suggestions.
    8 npm
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI agents to perform comprehensive GitHub security audits across org settings, repositories, Actions workflows, secrets, supply chain, and access control using 39 tools and 45 checks.
    39
    162 npm
    15
    MIT