Skip to main content
Glama

audit_security

Scans every package in a Magento project's composer.lock against known security advisories with composer audit, reporting scanned=false and a reason if the check cannot run.

Instructions

Checks every installed package in the given Magento project's composer.lock — core Magento, third-party vendor/ extensions, dev dependencies, not just custom app/code — against known security advisories via composer audit. Returns scanned=false with a reason (e.g. no composer.lock, composer not found) rather than silently reporting zero advisories when the check never ran.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesFilesystem path to the Magento project root (holds composer.json).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full disclosure burden and does it well: it names the underlying mechanism (`composer audit`), the failure modes (no composer.lock, composer not found), and, critically, that it returns scanned=false with a reason rather than reporting a false zero. That failure-semantics detail is exactly the kind of behavior an agent cannot infer from the schema.

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?

Two sentences, both load-bearing: the first establishes scope, the second establishes failure semantics. It is slightly dense with an em-dash appositive list, but nothing is redundant and the scope statement leads.

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?

An output schema exists, so return-value explanation is not required, yet the description still adds the one return contract that matters (scanned=false on a skipped check). With one simple required parameter and the mechanism, scope, and failure behavior all stated, nothing an agent needs to invoke this correctly is missing.

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% on a single parameter, so the schema already documents that `path` is the project root holding composer.json. The description only restates the same relationship ('the given Magento project') without adding format or edge-case detail beyond the schema. Baseline 3 applies.

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?

Specific verb (checks against known security advisories) and precise resource scope (every installed package in composer.lock: core, vendor, dev dependencies). The explicit contrast 'not just custom app/code' distinguishes it from narrower siblings like scan_module_risk without naming them.

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?

The stated scope makes the intended context clear — you run this to audit dependency advisories rather than custom code — which implicitly separates it from scan_module_risk and check_outdated_packages. However, no alternative tool is named and there is no explicit when-not guidance.

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