Dockerfile linter API for security and image size

$0.01 per call · failed calls are never charged · no account or subscription: pay per call with a card key or USDC

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

Run it free (25 free calls) Buy credits by card (from $1) Example result (JSON)

Try it with your own inputs

Dockerfile contents (up to 8,000 characters)

Uses one of your 25 free calls. Nothing is charged, and a call that fails is not counted.

Inputs

NameTypeDescription
dockerfile (required)stringDockerfile 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.

Related tools