Skip to main content
Glama

Jeevesus — DugganUSA threat-intel MCP

Check a GitHub Actions workflow for script injection

check-workflow
Read-onlyIdempotent

Checks the text of one GitHub Actions workflow file for script injection: places where text an outside user controls (an issue or pull request title or body, a comment, a branch name, a commit message) is pasted into a shell script or a github-script body, a privileged trigger that checks out a pull request's code, event text re-evaluated through eval, an externally triggerable workflow with open token permissions, and an AI agent action on such a trigger. Built from Radware's 2026-10-29 report of 83 hidden-command attacks on 61 public repositories.

Static and local: nothing is fetched, run or stored. Pass the workflow's YAML as text (max 28000 characters; use the DugganUSA Checks GitHub Action for whole repositories). Returns {verdict:"block"|"review"|"advisory"|"no-findings"|"unknown", findings:[{rule, severity, verdict, line, expression, message, fix}], coverage, note}. "no-findings" means none of the listed patterns were seen; it does NOT mean the workflow is safe. "unknown" means nothing was analyzed.

One tool call, no auth.

Input Schema

NameRequiredDescriptionDefault
workflowYesThe workflow file text (the YAML of a file under .github/workflows).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, non-destructive and closed-world, and the description adds genuinely new behavior: nothing is fetched, run or stored; the 28000-character input cap; and, most importantly, the interpretation of the verdict values, including that 'no-findings' does not mean the workflow is safe and that 'unknown' means nothing was analyzed. That caveat is exactly the kind of context an agent needs to avoid over-reporting a clean result.

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?

Front-loaded with the purpose and the detection classes, then limits, then return semantics — a sensible order with no filler sentences. The provenance sentence about the Radware report and the named third-party Action are slightly promotional and only marginally aid invocation, keeping it out of the top score.

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

Completeness5/5

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

There is no output schema, yet the description fully specifies the return shape: verdict enum with five values, the fields of each finding, plus coverage and note. Combined with the input cap and the stated analysis scope, an agent has everything needed to call this once and interpret the result 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 coverage is 100% for the single parameter and the maxLength of 28000 is already declared in the schema, so the description's restatement adds no new constraint. It does clarify that the value is the file's YAML text for a file under .github/workflows, but that is close to what the schema property description already says — baseline 3.

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?

States a specific verb and resource (checks one GitHub Actions workflow file) and then enumerates the exact classes of defect it detects — user-controlled text pasted into shell/github-script, privileged PR-checkout triggers, eval re-evaluation, open token permissions on externally triggerable workflows, and AI agent actions. An agent can distinguish this from check-repo or check-package purely from the description.

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?

Gives clear usage context: pass a single workflow's YAML as text, and use a different mechanism (the DugganUSA Checks GitHub Action) when the target is a whole repository. That is an explicit scope boundary, though it does not name any of the sibling MCP tools as an alternative, so an agent must infer the contrast with check-repo.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources