github-actions-audit
Audits GitHub Actions workflow files for supply-chain risks, including script injection, leaked secrets, unpinned actions, broad permissions, and pull_request_target vulnerabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@github-actions-auditaudit the workflow file at https://raw.githubusercontent.com/owner/repo/branch/.github/workflows/build.yml"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GitHub Actions Security Audit
MCP server that audits
.github/workflows/*.ymlfiles for supply-chain risks. Catches script injection, leaked tokens, unpinned actions, broad permissions, andpull_request_targetfoot-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 |
| Run all checks |
| Secret-leakage paths only |
|
|
| Action version-pinning only |
| Self-hosted runner + script injection |
| Timeout / config hygiene |
| TeamPCP-class supply-chain patterns (GHA-201..208) |
| 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 |
GHA-002 | secrets | high | Secret printed via echo / set-output |
GHA-003 | secrets | medium | Secret used in |
GHA-004 | secrets | high | Hardcoded credential pattern in |
GHA-010 | permissions | high |
|
GHA-011 | permissions | medium | No top-level |
GHA-013 | permissions | high |
|
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 |
GHA-032 | runner_security | high | Script injection via untrusted |
GHA-040 | workflow_config | low | No |
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 |
|
GHA-204 | supply_chain_advanced | high | Script injection via |
GHA-205 | supply_chain_advanced | medium | Action from non-allowlisted owner (untrusted 3rd-party) |
GHA-206 | supply_chain_advanced | high | Top-level |
GHA-207 | supply_chain_advanced | medium | Secret logged via |
GHA-208 | supply_chain_advanced | low | Action uses a known-retired tag |
Pricing
Event | USD |
Any audit / check_* tool call | $0.02 |
| $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
docker-compose-audit—docker-compose.ymlsecurity auditdockerfile-audit— Dockerfile security & qualityhu-postcode-validator— Hungarian postcode lookup
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
This server cannot be deployed
Maintenance
Related MCP Connectors
Audit GitHub Actions workflows for script injection, unpinned actions and missing permissions.
Audit GitHub repos for malicious and supply-chain code before you depend on them.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Audit Dockerfiles for root users, baked-in secrets, curl-pipe-shell and unpinned base images.
Related MCP Servers
- AlicenseAqualityCmaintenanceLocal-only GitHub Actions and CI maintenance scanner for AI-built apps. Exposes scan, explanation, and fix-planning tools to MCP clients; modifies nothing and makes no outbound requests by default.335 npm2MIT
- AlicenseAqualityDmaintenanceSecurity auditor for CI ecosystems that detects supply-chain and injection flaws in CI/CD configuration files across seven CI platforms, providing taint analysis, remediation, and compliance scoring.2MIT
- AlicenseNot gradedqualityDmaintenanceStatically analyzes exported n8n automation workflows for security issues and returns structured findings.MIT
- AlicenseAqualityCmaintenanceScans GitHub Actions workflow files for dangerous triggers, template injection, unpinned actions, excessive permissions, and secrets in shell commands before they are committed, exposing the checks as MCP tools for agents.2MIT