Skip to main content
Glama
ArkTechNWA

GitHub Actions MCP

by ArkTechNWA

github-actions-mcp

CI

A Model Context Protocol (MCP) server for GitHub Actions integration. Give your AI assistant eyes on your CI/CD pipelines.

Status: Beta (v0.2.0)

Author: Claude + MOD License: MIT

Organization: ArkTechNWA


Quick Start

# 1. Clone and build
git clone https://github.com/ArkTechNWA/github-actions-mcp.git
cd github-actions-mcp
npm install && npm run build

# 2. Add to Claude Code
claude mcp add --transport stdio github-actions -- \
  bash -c "GITHUB_TOKEN=\$(gh auth token) node $(pwd)/build/index.js"

# 3. Restart Claude Code and use
# gha_list_workflows, gha_list_runs, gha_diagnose_failure, etc.

Why?

Your AI assistant can write code, but it's blind to whether it passes CI. It can suggest fixes, but can't see the actual error logs from your failed workflow. It can't trigger a deployment or re-run a flaky test.

github-actions-mcp connects Claude to your GitHub Actions workflows — safely.


Philosophy

  1. Safety by default — Read-only access to workflows and runs

  2. User controls exposure — Whitelist repos, permission levels

  3. Never hang — GitHub API timeouts, circuit breakers

  4. Structured output — JSON for machines, summaries for AI

  5. Fallback AI — Haiku for log analysis and failure diagnosis


Features

Perception (Read)

  • List workflows in a repository

  • Get workflow run history and status

  • Stream/fetch run logs

  • Check job and step status

  • View workflow file definitions

Action (Write)

  • Trigger workflow_dispatch events

  • Re-run failed jobs

  • Cancel running workflows

  • Enable/disable workflows

Analysis (Optional AI Fallback)

  • "Why did this build fail?" synthesis

  • Log pattern analysis

  • Flaky test detection


Permission Model

Permission Levels

Level

Description

Default

read

List workflows, runs, logs

ON

trigger

Dispatch workflows, re-run jobs

OFF

cancel

Cancel running workflows

OFF

admin

Enable/disable workflows

OFF

Repository Filtering

{
  "permissions": {
    "read": true,
    "trigger": false,
    "cancel": false,
    "admin": false,

    "whitelist_repos": [
      "ArktechNWA/*",
      "myorg/myapp"
    ],

    "blacklist_repos": [
      "*/infrastructure",
      "*/secrets-*"
    ]
  }
}

Rules:

  • Blacklist always wins

  • Empty whitelist = all accessible repos allowed

  • Patterns support org/* and */repo wildcards

Bypass Mode

github-actions-mcp --bypass-permissions

Full access to all repos you can see. You own the consequences.


Authentication

GitHub Personal Access Token (classic or fine-grained):

# Environment variable
export GITHUB_TOKEN=ghp_xxxxxxxxxxxx

# Or in config
{
  "auth": {
    "token_env": "GITHUB_TOKEN"
  }
}

Required scopes:

  • repo (for private repos)

  • actions:read (minimum for read-only)

  • actions:write (for trigger/cancel)


Tools

Workflows

gha_list_workflows

List workflows in a repository.

gha_list_workflows({
  repo: string,           // "owner/repo"
  state?: "active" | "disabled" | "all"
})

gha_get_workflow

Get workflow definition and metadata.

gha_get_workflow({
  repo: string,
  workflow: string | number  // workflow file name or ID
})

Runs

gha_list_runs

List workflow runs with filtering.

gha_list_runs({
  repo: string,
  workflow?: string,        // filter by workflow
  branch?: string,          // filter by branch
  status?: "queued" | "in_progress" | "completed",
  conclusion?: "success" | "failure" | "cancelled" | "skipped",
  limit?: number            // default: 10
})

Returns:

{
  "runs": [
    {
      "id": 12345,
      "workflow": "CI",
      "status": "completed",
      "conclusion": "failure",
      "branch": "main",
      "commit": "abc1234",
      "commit_message": "Fix login bug",
      "triggered_by": "push",
      "started_at": "2025-12-29T10:00:00Z",
      "duration": "3m 42s",
      "status_icon": "✗"
    }
  ],
  "summary": "Last 10 runs: 7 passed, 2 failed, 1 cancelled"
}

gha_get_run

Get detailed run information including jobs.

gha_get_run({
  repo: string,
  run_id: number,
  include_jobs?: boolean    // default: true
})

gha_get_run_logs

Fetch logs for a workflow run.

gha_get_run_logs({
  repo: string,
  run_id: number,
  job?: string,             // specific job name
  step?: string,            // specific step name
  grep?: string,            // filter log lines
  tail?: number             // last N lines
})

Actions

gha_trigger_workflow

Trigger a workflow_dispatch event. Requires trigger permission.

gha_trigger_workflow({
  repo: string,
  workflow: string,         // workflow file name
  ref: string,              // branch or tag
  inputs?: Record<string, string>  // workflow inputs
})

gha_rerun_workflow

Re-run a workflow. Requires trigger permission.

gha_rerun_workflow({
  repo: string,
  run_id: number,
  failed_only?: boolean     // only re-run failed jobs
})

gha_cancel_run

Cancel a running workflow. Requires cancel permission.

gha_cancel_run({
  repo: string,
  run_id: number
})

gha_set_workflow_state

Enable or disable a workflow. Requires admin permission.

gha_set_workflow_state({
  repo: string,
  workflow: string,
  enabled: boolean
})

Analysis

gha_diagnose_failure

AI-powered failure diagnosis. Gathers logs and context.

gha_diagnose_failure({
  repo: string,
  run_id: number,
  use_ai?: boolean          // use Haiku for synthesis
})

Returns:

{
  "run_id": 12345,
  "workflow": "CI",
  "conclusion": "failure",
  "failed_jobs": ["test"],
  "failed_steps": ["Run pytest"],
  "error_context": "[... relevant log lines ...]",
  "synthesis": {
    "analysis": "Test failed due to missing fixture. The 'db' fixture was removed in commit abc123 but test_user.py still depends on it.",
    "suggested_fix": "Either restore the db fixture or update test_user.py to use the new database setup",
    "confidence": "high"
  }
}

NEVERHANG Architecture

GitHub API can be slow. Log downloads can hang. We guarantee responsiveness.

Timeouts

  • API calls: 30s default

  • Log downloads: 60s default

  • Configurable per-operation

Streaming

  • Large logs streamed in chunks

  • Progress updates for long downloads

  • Client can cancel anytime

Circuit Breaker

  • 3 failures in 60s → 5 minute cooldown

  • Respects GitHub rate limits (5000/hour)

  • Backs off on 403/429 responses

Rate Limit Awareness

{
  "rate_limit": {
    "remaining": 4892,
    "reset_at": "2025-12-29T11:00:00Z"
  }
}

Fallback AI

Optional Haiku integration for log analysis.

{
  "fallback": {
    "enabled": true,
    "model": "claude-haiku-4-5",
    "api_key_env": "GHA_MCP_FALLBACK_KEY",
    "max_log_lines": 500,
    "max_tokens": 500
  }
}

When used:

  • gha_diagnose_failure with use_ai: true

  • Complex multi-job failures

  • Pattern detection in flaky tests


Configuration

Config File

~/.config/github-actions-mcp/config.json:

{
  "auth": {
    "token_env": "GITHUB_TOKEN"
  },
  "permissions": {
    "read": true,
    "trigger": false,
    "cancel": false,
    "admin": false,
    "whitelist_repos": [],
    "blacklist_repos": []
  },
  "neverhang": {
    "api_timeout": 30000,
    "log_timeout": 60000
  },
  "fallback": {
    "enabled": false
  }
}

Claude Code Integration

{
  "mcpServers": {
    "github-actions": {
      "command": "github-actions-mcp",
      "env": {
        "GITHUB_TOKEN": "your-token-here"
      }
    }
  }
}

Installation

npm install -g @arktechnwa/github-actions-mcp

Requirements

  • Node.js 18+

  • GitHub Personal Access Token

  • Optional: Anthropic API key for fallback AI


Security Considerations

  1. Token scoping — Use fine-grained PATs with minimal permissions

  2. Repo filtering — Whitelist only repos you want AI to access

  3. No secrets exposure — Workflow secrets never exposed in logs

  4. Audit trail — All actions logged


Credits

Created by Claude in collaboration with Meldrey. Part of the ArktechNWA MCP Toolshed.

Available Tools

10 tools
gha_cancel_runC

Cancel a running workflow

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
run_idYesWorkflow run ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Cancel a running workflow' implies a destructive mutation, but it doesn't specify permissions required, whether cancellation is reversible, rate limits, error conditions, or what happens to the workflow after cancellation. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it immediately understandable without unnecessary elaboration.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks critical context like required permissions, side effects, error handling, and return values. Given the complexity of canceling workflows and the absence of structured behavioral data, more detail is needed.

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%, with both parameters ('repo' and 'run_id') clearly documented in the schema. The description adds no additional parameter information beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Cancel') and target ('a running workflow'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'gha_set_workflow_state' (which might also affect workflow state) or 'gha_rerun_workflow' (which might involve similar workflow manipulation).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the workflow must be running), exclusions (e.g., cannot cancel completed workflows), or when to choose siblings like 'gha_rerun_workflow' (for restarting) or 'gha_set_workflow_state' (for other state changes).

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

gha_diagnose_failureB

Analyze a failed workflow run (with optional AI diagnosis)

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
run_idYesWorkflow run ID

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'analyze' and 'diagnosis' suggest this is a read-only analysis tool, it doesn't clarify whether this performs any mutations, what permissions are required, what format the analysis returns, or whether it has rate limits. The optional AI diagnosis mention adds some context but lacks specifics about what this entails.

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 extremely concise at just 8 words, front-loading the core purpose ('Analyze a failed workflow run') with the optional feature ('with optional AI diagnosis') as a secondary note. Every word earns its place with zero redundancy or unnecessary elaboration.

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

Completeness2/5

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

For a diagnostic tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'analyze' actually produces - whether it's a summary, root cause analysis, suggested fixes, or just aggregated logs. The 'optional AI diagnosis' is mentioned but undefined. Given the complexity of workflow failure analysis and lack of structured output documentation, this leaves significant gaps.

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% with both parameters well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema (repo format, run_id type). This meets the baseline 3 score since the schema does the heavy lifting for parameter documentation.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Analyze a failed workflow run' with the specific action 'analyze' and resource 'failed workflow run'. It distinguishes itself from siblings like gha_get_run (which fetches run details) or gha_get_run_logs (which retrieves logs) by focusing on diagnosis/analysis rather than basic data retrieval. However, it doesn't explicitly mention GitHub Actions context or differentiate from all siblings.

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 context through 'failed workflow run' - suggesting this tool should be used specifically when a workflow has failed. However, it doesn't provide explicit guidance on when to use this versus alternatives like gha_get_run (for general run info) or gha_get_run_logs (for raw logs). No when-not-to-use guidance or prerequisites are mentioned.

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

gha_get_runC

Get detailed run information including jobs

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
run_idYesWorkflow run ID
include_jobsNoInclude job details (default: true)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed run information including jobs,' which implies a read-only operation, but doesn't clarify permissions, rate limits, error handling, or response format. For a tool with no annotations, this is insufficient to inform the agent adequately.

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, efficient sentence: 'Get detailed run information including jobs.' It is front-loaded with the core purpose and avoids unnecessary words, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's moderate complexity (fetching run details in a GitHub Actions context), no annotations, and no output schema, the description is incomplete. It lacks information on return values, error cases, or behavioral nuances, which are critical for an agent to use the tool effectively in a real-world scenario.

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 already documents all parameters (repo, run_id, include_jobs) with clear descriptions. The description adds no additional semantic context beyond implying that 'run information' includes jobs, which aligns with the include_jobs parameter. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed run information including jobs.' It specifies the verb ('Get') and resource ('run information'), and distinguishes it from siblings like gha_list_runs (which lists multiple runs) and gha_get_run_logs (which focuses on logs). However, it doesn't explicitly differentiate from gha_diagnose_failure or gha_get_workflow, which slightly limits clarity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like gha_list_runs for listing runs or gha_get_workflow for workflow-level details, nor does it specify prerequisites or contexts for usage. This leaves the agent without explicit direction.

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

gha_get_run_logsC

Fetch logs for a workflow run

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
run_idYesWorkflow run ID
jobNoFilter to specific job name
grepNoFilter log lines containing this string
tailNoReturn only last N lines

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states the tool fetches logs but doesn't describe what 'logs' include (e.g., console output, timestamps), whether it's a read-only operation, potential rate limits, authentication needs, or the format of the returned data. This leaves significant gaps for an agent to understand how the tool behaves beyond basic functionality.

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, efficient sentence ('Fetch logs for a workflow run') that front-loads the core purpose without unnecessary words. It avoids redundancy and wastes no space, making it easy for an agent to parse quickly. Every word earns its place by directly conveying the tool's function.

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

Completeness2/5

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

Given the complexity of a tool with 5 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address key contextual aspects like what the logs contain, how they are structured, whether the operation is safe (read-only), or any error conditions. For a tool that fetches potentially large data sets, more guidance on behavior and output is needed to help an agent use it effectively.

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 input schema has 100% description coverage, with all parameters clearly documented (e.g., 'repo' as 'Repository in owner/repo format', 'run_id' as 'Workflow run ID'). The description adds no additional meaning beyond the schema, such as explaining how parameters interact (e.g., 'grep' filters within fetched logs) or providing examples. Since schema coverage is high, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Fetch logs for a workflow run' clearly states the action ('fetch logs') and resource ('workflow run'), making the purpose immediately understandable. It distinguishes from siblings like gha_get_run (which retrieves run metadata) or gha_diagnose_failure (which analyzes failures), but doesn't explicitly mention this differentiation in the description itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid run_id), when to use it over gha_diagnose_failure for debugging, or any constraints like authentication requirements or rate limits. The agent must infer usage from the tool name and parameters alone.

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

gha_get_workflowC

Get workflow definition and metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
workflowYesWorkflow file name or ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get workflow definition and metadata', which implies a read-only operation, but doesn't specify whether it requires authentication, returns paginated results, includes error handling, or details the metadata structure. For a tool with no annotations, this is insufficient to inform the agent about key behavioral traits.

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 extremely concise with a single, direct sentence: 'Get workflow definition and metadata'. It is front-loaded and wastes no words, making it easy to parse quickly. Every word earns its place by conveying the core purpose without redundancy.

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

Completeness2/5

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

Given the complexity of GitHub Actions workflows and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'definition and metadata' includes, potential response formats, or error conditions. For a tool that likely returns structured data about workflows, more context is needed to help the agent understand the output and usage fully.

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 input schema has 100% description coverage, with clear documentation for both parameters ('repo' and 'workflow'). The description doesn't add any semantic details beyond what the schema provides, such as examples or constraints. Since the schema coverage is high, a baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description clearly states the action ('Get') and the target resource ('workflow definition and metadata'), making the purpose understandable. However, it doesn't differentiate this tool from its sibling 'gha_list_workflows' (which lists workflows) or 'gha_get_run' (which gets run details), missing an opportunity for precise distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Given siblings like 'gha_list_workflows' (for listing workflows) and 'gha_get_run' (for getting run details), there's no indication of the specific context or prerequisites for selecting this tool, leaving the agent to infer usage.

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

gha_list_runsC

List workflow runs with filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
workflowNoFilter by workflow file name
branchNoFilter by branch
statusNo
conclusionNo
limitNoMax results (default: 10)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'List' implies a read operation, it doesn't mention whether this requires authentication, rate limits, pagination behavior, or what the output format looks like. The description is too minimal to adequately inform the agent about how this tool behaves beyond the basic action.

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 extremely concise at just 5 words, front-loading the core purpose without any wasted words. Every element ('List', 'workflow runs', 'with filtering') earns its place by conveying essential information efficiently.

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

Completeness2/5

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

For a tool with 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what a 'workflow run' is in this context, what the output contains, or important behavioral aspects like authentication requirements or result ordering. The agent would need to guess too much about how to properly use this tool.

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 description mentions 'with filtering' which hints at the purpose of the parameters, but doesn't add meaningful semantic context beyond what the schema provides. With 67% schema description coverage (4 of 6 parameters have descriptions), the baseline is 3. The description doesn't compensate for the undocumented parameters (status and conclusion have no schema descriptions) or explain parameter interactions.

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

Purpose4/5

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

The description 'List workflow runs with filtering' clearly states the verb ('List') and resource ('workflow runs'), and specifies the filtering capability. However, it doesn't distinguish this tool from its sibling 'gha_list_workflows' which lists workflows rather than runs, leaving some ambiguity about the exact scope differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'gha_get_run' (for a single run) or 'gha_list_workflows' (for workflows rather than runs). It mentions filtering but doesn't specify when filtering is appropriate or what the default behavior might be without filters.

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

gha_list_workflowsB

List workflows in a repository

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
stateNoFilter by state

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a list operation, implying it's likely read-only and non-destructive, but doesn't confirm this or add any context about permissions, rate limits, pagination, or response format. For a tool with zero annotation coverage, this is a significant gap in describing how the tool behaves beyond its basic function.

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, efficient sentence with zero waste: 'List workflows in a repository'. It's front-loaded with the core action and resource, making it easy to parse. Every word earns its place, and there's no unnecessary elaboration or redundancy.

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?

Given the tool's low complexity (2 parameters, no nested objects) and 100% schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it lacks context on behavioral traits like safety, permissions, or return values. For a list operation, this is a moderate gap, but the simplicity of the tool keeps it from being severely incomplete.

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%, with both parameters (repo and state) fully documented in the schema. The description doesn't add any meaning beyond what the schema provides, such as explaining the format of 'owner/repo' or the implications of the state filter. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description 'List workflows in a repository' clearly states the action (list) and resource (workflows), with the scope (in a repository) specified. It distinguishes from siblings like gha_get_workflow (retrieve a single workflow) and gha_list_runs (list runs, not workflows), but doesn't explicitly contrast with gha_set_workflow_state or gha_trigger_workflow, which are different operations. The purpose is specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like gha_get_workflow for retrieving a specific workflow or gha_list_runs for listing runs instead of workflows. There's no context on prerequisites, such as needing repository access, or exclusions, leaving the agent to infer usage from the tool name alone.

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

gha_rerun_workflowC

Re-run a workflow

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
run_idYesWorkflow run ID
failed_onlyNoOnly re-run failed jobs

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden but offers minimal behavioral insight. It implies a mutation (re-running) but doesn't disclose permissions needed, rate limits, whether it's idempotent, or what happens to the original run. For a tool that likely modifies system state, this is inadequate transparency.

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 extremely concise with a single phrase ('Re-run a workflow'), front-loading the core action without unnecessary words. Every word earns its place, making it efficient for quick comprehension.

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

Completeness2/5

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

Given no annotations, no output schema, and a mutation tool with behavioral implications, the description is incomplete. It doesn't cover return values, error conditions, or critical context like authentication needs or side effects. For a tool that re-runs workflows, more detail is warranted.

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 parameters are well-documented in the schema. The description adds no additional meaning beyond implying 'workflow' relates to 'run_id' and 'repo'. Baseline 3 is appropriate as the schema handles parameter semantics effectively.

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

Purpose3/5

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

The description 'Re-run a workflow' states the basic action but lacks specificity. It mentions the verb ('Re-run') and resource ('workflow'), but doesn't distinguish it from siblings like 'gha_trigger_workflow' (which creates new runs) or 'gha_cancel_run' (which stops runs). The purpose is clear but generic.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing workflow run), exclusions, or comparisons to siblings like 'gha_diagnose_failure' (for analysis) or 'gha_trigger_workflow' (for new runs). Usage is implied but not articulated.

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

gha_set_workflow_stateC

Enable or disable a workflow

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
workflowYesWorkflow file name or ID
enabledYesEnable (true) or disable (false)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'enable or disable' implies a mutation operation, it doesn't specify permissions required, whether changes are reversible, rate limits, or what happens to in-progress runs when disabled. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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, efficient sentence with zero wasted words. It's front-loaded with the core functionality and appropriately sized for a tool with clear parameters documented elsewhere.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'enabling' or 'disabling' actually means in context (e.g., does it affect scheduled triggers? existing runs?), what permissions are needed, or what the response contains. This leaves critical gaps for an agent to use the tool correctly.

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%, with clear parameter documentation in the schema itself. The description adds no additional parameter information beyond what's already in the schema (repo format, workflow identifier, boolean enable/disable). This meets the baseline expectation when schema does the heavy lifting.

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

Purpose4/5

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

The description 'Enable or disable a workflow' clearly states the action (enable/disable) and resource (workflow), making the purpose immediately understandable. However, it doesn't distinguish this tool from its siblings like 'gha_trigger_workflow' or 'gha_cancel_run' which also affect workflow states, leaving room for confusion about when to use each.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'gha_trigger_workflow' (initiates execution) and 'gha_cancel_run' (stops execution), there's no indication that this tool is for toggling the active/inactive state of a workflow definition rather than controlling execution. This omission could lead to misuse.

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

gha_trigger_workflowC

Trigger a workflow_dispatch event

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository in owner/repo format
workflowYesWorkflow file name (e.g., 'ci.yml')
refYesBranch or tag to run on
inputsNoWorkflow inputs

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('trigger') but doesn't describe key behavioral traits such as authentication requirements, rate limits, whether the trigger is synchronous or asynchronous, what happens on success/failure, or any side effects. This is a significant gap for a mutation tool with zero annotation coverage.

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, efficient sentence ('Trigger a workflow_dispatch event') that is front-loaded and wastes no words. It directly conveys the core purpose without unnecessary elaboration, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity of triggering a workflow (a mutation operation with potential side effects), no annotations, no output schema, and the description's minimal content, it is incomplete. The agent lacks crucial information about behavior, return values, error handling, and usage context, which are essential for safe and effective tool 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 schema description coverage is 100%, so the schema already documents all four parameters (repo, workflow, ref, inputs) with clear descriptions. The description adds no additional meaning beyond what the schema provides, such as examples or constraints not in the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description 'Trigger a workflow_dispatch event' clearly states the action (trigger) and the resource (workflow_dispatch event), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'gha_rerun_workflow' or 'gha_set_workflow_state', which also involve workflow execution control, so it doesn't reach the highest score for sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., when a workflow_dispatch is appropriate vs. automated triggers), or exclusions, leaving the agent to infer usage from the tool name and schema alone.

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. Dates show when Glama detected each change.

  1. 10 tool updates
    • First observedgha_cancel_run
    • First observedgha_diagnose_failure
    • First observedgha_get_run
    • First observedgha_get_run_logs
    • First observedgha_get_workflow
    • First observedgha_list_runs
    • First observedgha_list_workflows
    • First observedgha_rerun_workflow
    • First observedgha_set_workflow_state
    • First observedgha_trigger_workflow

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific GitHub Actions operations. Tools like gha_cancel_run, gha_rerun_workflow, and gha_trigger_workflow handle different workflow lifecycle stages, while gha_get_run, gha_get_run_logs, and gha_diagnose_failure provide distinct types of run information. There is no functional overlap that would cause agent confusion.

Naming Consistency5/5

All tools follow a perfect gha_verb_noun naming pattern with consistent snake_case throughout. The prefix 'gha_' clearly identifies the domain, and verbs like 'cancel', 'get', 'list', 'rerun', 'set', and 'trigger' are consistently applied to appropriate nouns like 'run', 'workflow', and 'logs'.

Tool Count5/5

With 10 tools, this server is well-scoped for GitHub Actions management. The count covers core operations without bloat, including workflow listing/management, run monitoring/control, and diagnostic capabilities. Each tool earns its place in providing a complete surface for the domain.

Completeness5/5

The toolset provides complete lifecycle coverage for GitHub Actions workflows. It includes discovery (list_workflows, list_runs), inspection (get_workflow, get_run, get_run_logs), control (trigger_workflow, rerun_workflow, cancel_run, set_workflow_state), and diagnostics (diagnose_failure). No obvious gaps exist for the stated purpose.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArkTechNWA/github-actions-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server