Dockerfile linter API for security and image size
Check a Dockerfile (up to 8,000 characters) for common security and image-size problems: unpinned or :latest base images, running as root, piping downloads into a shell, sensitive values baked into ENV or ARG, ADD from URLs, apt and pip cache left in layers, sudo, chmod 777 and an exposed SSH port. Returns each finding with its line, a severity and a fix, plus a score. Use before building or shipping an image.
When to use it
- Check a Dockerfile for risky instructions before a build
- Find size problems such as unpinned bases and missing cleanup
- Add a lint step to a coding agent
Inputs
| Name | Type | Description |
|---|---|---|
dockerfile (required) | string | Dockerfile contents (up to 8,000 characters) |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/dockerfile/lint?dockerfile=FROM%20node%3Alatest%0ACOPY%20.%20%2Fapp%0ACMD%20node%20%2Fapp%2Fserver.js"
Or one of your 25 free calls, no key:
curl "https://tools.funwords.eu/dockerfile/lint?dockerfile=FROM%20node%3Alatest%0ACOPY%20.%20%2Fapp%0ACMD%20node%20%2Fapp%2Fserver.js&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"score": 72,
"findings": [
{
"line": 1,
"rule": "latest-tag",
"severity": "medium",
"message": "base image node:latest uses :latest; pin a version"
}
],
"counts": {
"high": 0,
"medium": 2,
"low": 1
}
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is dockerfile_lint, and the first 25 successful calls are free:
https://tools.funwords.eu/mcp
Questions
What does it return?
Each finding with its line, severity and a suggested fix.
How do I pay?
Each successful call costs $0.01; failed calls are not charged. The first 25 calls are free. Then pay with card credits (from $1; the key goes in an Authorization header or, for clients that can only fetch a URL, as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.