Skip to main content
Glama

Run Agent Dockerfile Lint

apex_run_agent_dockerfile_lint
Read-only

Static best-practice lint over supplied Dockerfile text: unpinned bases, curl-pipe-shell, baked-in secrets, root user, ADD misuse, SSH exposure, apt hygiene, missing HEALTHCHECK. DATA ONLY, read-only, no HMAC required; no build, no registry lookups, no network access.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dockerfileYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses 'DATA ONLY, read-only, no HMAC required; no build, no registry lookups, no network access,' adding concrete operational constraints not present in the annotations. It also lists the specific lint checks, giving insight into the tool's behavior. It does not describe output format, but the annotations already cover safety, so the added context is valuable and consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a tight two-sentence structure: the first declares the action and lists checks, the second summarizes operational constraints. Every phrase contributes, with no redundancy or filler. The information is front-loaded: the main purpose appears immediately.

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

Completeness4/5

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

With one parameter and no output schema, the description covers purpose, scope of checks, and operational constraints (read-only, no network access). It does not explicitly describe the return value, but the listed lint categories imply the nature of findings. Given the tool's simplicity and the presence of annotations, the description is sufficiently complete for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only the parameter name 'dockerfile' with no description (0% coverage), so the description must clarify semantics. It does so by referring to 'supplied Dockerfile text,' indicating the parameter is the raw content as a string, not a file path. This meaningfully supplements the schema, though it could be more explicit about expected formatting (e.g., plain text vs. base64).

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?

The description clearly states the tool performs 'static best-practice lint over supplied Dockerfile text' and enumerates specific check categories (e.g., unpinned bases, curl-pipe-shell), making the purpose unmistakable. It distinguishes the tool from sibling functions like secret scanner or data profile by focusing on Dockerfile-specific linting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for linting Dockerfile content, but does not explicitly state when to use it over alternatives or mention exclusions. For example, it checks 'baked-in secrets,' which overlaps with the sibling apex_run_agent_secret_scanner, yet no guidance is given on choosing between them. Usage is inferred rather than prescribed.

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.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, and descriptions provide sufficient boundaries. Some run_* analytics tools (e.g., deflated_sharpe vs empyrical_metrics) could be conceptually confused, but their specific inputs and outputs minimize ambiguity.

Naming Consistency4/5

All tools share the apex_ prefix, and the verb_noun pattern is consistent (get, query, run, submit). The 'agent_' subgroup within run tools introduces a minor irregularity, but it remains readily comprehensible.

Tool Count3/5

With 24 tools, the server is on the heavy side, falling into the 16-25 range. Many run_* tools are similar in nature (pure calculations), but each appears to serve a specific purpose, so the count is borderline rather than excessive.

Completeness2/5

The server name implies a card store, yet the tool surface only supports reading and querying cards, with no create, update, or delete operations. This is a significant gap that prevents full lifecycle management, though the analytics side is fairly comprehensive.

Resources