Skip to main content
Glama
UnbearableDev

github-actions-audit

GitHub Actions Security Audit

MCP server that audits .github/workflows/*.yml files for supply-chain risks. Catches script injection, leaked tokens, unpinned actions, broad permissions, and pull_request_target foot-guns — the patterns behind several 2024–2025 supply-chain incidents.

Built by Unbearable Labs. Pay-per-event — only billed when a tool is actually called.


Available on

  • Apify Actor Store — primary, metered usage (PPE)

  • MCPize — pending submission

  • MCP.so — pending submission

  • PulseMCP — pending submission

  • Smithery — pending submission

  • Glama — pending submission

Newsletter: Unbearable TechTips Weekly · All Actors: github.com/UnbearableDev

Related MCP server: ci-sentinel

What it does

Point any MCP-capable client (Claude Desktop, Cursor, n8n, Make, Zapier, custom agents) at this server, hand it a workflow YAML, and get back structured findings with:

  • Severity — critical / high / medium / low / info

  • Affected job and step — exact location of the problem

  • Description — why it matters, with the actual attack vector

  • Remediation — what to do about it

  • Fix snippet — YAML you can paste directly

Tools

Tool

Purpose

audit_workflow(workflow_yaml? | workflow_url?, min_severity='low')

Run all checks

check_secrets(...)

Secret-leakage paths only

check_permissions(...)

GITHUB_TOKEN scope issues only

check_action_pinning(...)

Action version-pinning only

check_runner_security(...)

Self-hosted runner + script injection

check_workflow_config(...)

Timeout / config hygiene

check_supply_chain_advanced(...)

TeamPCP-class supply-chain patterns (GHA-201..208)

list_checks(category?)

Browse the catalog

Provide exactly one of workflow_yaml (paste the content) or workflow_url (HTTPS URL — typically a GitHub raw URL to a specific workflow file).

Check catalog (v2: 21 checks)

ID

Category

Severity

Title

GHA-001

secrets

high

Secret interpolated directly into run: script

GHA-002

secrets

high

Secret printed via echo / set-output

GHA-003

secrets

medium

Secret used in if: condition

GHA-004

secrets

high

Hardcoded credential pattern in env:

GHA-010

permissions

high

permissions: write-all granted

GHA-011

permissions

medium

No top-level permissions: (inherits broad default)

GHA-013

permissions

high

pull_request_target + checkout PR head = PWNing pattern

GHA-020

action_pinning

high

Third-party action pinned to mutable tag

GHA-021

action_pinning

high

Third-party action pinned to mutable branch

GHA-022

action_pinning

medium

First-party action not SHA-pinned

GHA-030

runner_security

medium

Self-hosted runner used on pull_request from forks

GHA-032

runner_security

high

Script injection via untrusted github.event.* interpolation

GHA-040

workflow_config

low

No timeout-minutes on job

GHA-201

supply_chain_advanced

high

Action pinned to unpinned branch ref (TeamPCP-class: @main/@master)

GHA-202

supply_chain_advanced

high

Action pinned to mutable tag — SHA pin recommended

GHA-203

supply_chain_advanced

critical

pull_request_target + checkout of PR head SHA/ref (codecov/tj-actions exploitation path)

GHA-204

supply_chain_advanced

high

Script injection via github.event.* user-controlled field in run:

GHA-205

supply_chain_advanced

medium

Action from non-allowlisted owner (untrusted 3rd-party)

GHA-206

supply_chain_advanced

high

Top-level permissions: write-all or contents: write without per-job scoping

GHA-207

supply_chain_advanced

medium

Secret logged via echo / cat in run: block

GHA-208

supply_chain_advanced

low

Action uses a known-retired tag

Pricing

Event

USD

Any audit / check_* tool call

$0.02

list_checks discovery

$0.005

Connecting from Claude Desktop

{
  "mcpServers": {
    "gha-audit": {
      "transport": "streamable-http",
      "url": "https://YOUR-ACTOR-URL.apify.actor/mcp"
    }
  }
}

Sibling MCPs from Unbearable Labs

What's NOT covered (yet)

  • Reusable workflow auditing (multi-file resolution)

  • CodeQL-grade dataflow tracking

  • Marketplace-listed action reputation scoring

Source / contact

Source: github.com/UnbearableDev/github-actions-audit. Issues + ideas: unbearabledev@gmail.com.


📬 Built by Noel @ Unbearable Labs. More MCP servers + audit tips in the newsletter: https://unbearabletechtips.beehiiv.com

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/UnbearableDev/github-actions-audit'

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