Hadolint-grade Dockerfile audit β 19 checks: secrets, privileges, supply chain, hygiene.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Hadolint-grade Dockerfile audit as an MCP server. 18+ checks across 5 categories, every finding ships with severity, line number, remediation text, and a copy-paste Dockerfile snippet.
Built by Unbearable Labs. Pay-per-event pricing β only billed when a tool is actually called.
Newsletter: Unbearable TechTips Weekly Β· All Actors: github.com/UnbearableDev
Point any MCP-capable client (Claude Desktop, Cursor, n8n, Make, Zapier, custom agents) at this server, hand it a Dockerfile, get back a structured report:
| Tool | Purpose |
|---|---|
audit_dockerfile(dockerfile_content? | dockerfile_url?, min_severity='low') | Run all checks |
check_base_image(...) | FROM/tag/digest/registry checks only |
check_instructions(...) | CMD form, ADD vs COPY, MAINTAINER, etc. |
check_security(...) | USER, sudo, chmod 777, curl|bash, hardcoded secrets, HEALTHCHECK |
check_efficiency(...) | apt cache hygiene, pip caching |
check_secrets(...) | ARG with secret-pattern names |
list_checks(category?) | Browse the full check catalog |
Provide exactly one of dockerfile_content (paste the file) or dockerfile_url (HTTPS URL β e.g. GitHub raw).
| ID | Category | Severity | Title |
|---|---|---|---|
| DFA-001 | base_image | medium | Image uses :latest tag or no tag |
| DFA-002 | base_image | info | No SHA256 digest pin on FROM |
| DFA-003 | base_image | medium | Untrusted registry |
| DFA-010 | instructions | low | CMD in shell form |
| DFA-011 | instructions | low | ENTRYPOINT in shell form |
| DFA-012 | instructions | info | MAINTAINER instruction is deprecated |
| DFA-013 | instructions | medium | ADD used where COPY would suffice |
| DFA-020 | security | medium | No USER directive (runs as root) |
| DFA-021 | security | high | USER root set explicitly |
| DFA-022 | security | high | sudo invoked in RUN |
| DFA-023 | security | high | chmod 777 in RUN |
| DFA-024 | security | medium | curl|bash pattern in RUN |
| DFA-025 | security | high | Hardcoded secret in ENV |
| DFA-027 | security | low | No HEALTHCHECK |
| DFA-030 | efficiency | low | apt-get update without install |
| DFA-031 | efficiency | low | apt-get install without --no-install-recommends |
| DFA-032 | efficiency | low | pip install without --no-cache-dir |
| DFA-040 | secrets | medium | ARG with secret-pattern name |
Use list_checks to get the canonical, up-to-date catalog.
| Event | USD |
|---|---|
| Any audit / check_* tool call | $0.02 |
list_checks discovery | $0.005 |
docker-compose-audit)docker-compose-audit β same pattern for docker-compose.ymlhu-postcode-validator β Hungarian postcode lookupIssues and ideas: unbearabledev@gmail.com or the GitHub org UnbearableDev.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/dockerfile-audit)<a href="https://allmcps.com/mcp/dockerfile-audit"><img src="https://allmcps.com/api/badge/dockerfile-audit?style=directory" alt="Dockerfile Audit on AllMCPs" /></a>