Docker Compose Audit

io.github.UnbearableDev由 GitHub 帳號 UnbearableDev 發布v1.0.0更新於 Oct 24, 2026

Security audit for docker-compose.yml — 25 checks: secrets, privileges, network, volumes, images.

發布方自己的服務:audit.domains - Domain Valuation

已驗證Streamable HTTP可網頁執行雲端與基礎設施開發者工具安全與監控

概覽

AI 產生的概覽

一個遠端 MCP 伺服器,用來稽核 docker-compose.yml 的安全設定錯誤,回傳含嚴重等級、修復說明與 YAML 修正片段的報告。

可以做什麼
對 compose 檔案執行完整安全稽核,回傳結構化報告,包含嚴重等級、受影響服務、問題描述、修復建議與可直接貼上的 YAML 修正片段;輸入可為貼上的 YAML 或公開 HTTPS 網址。依類別個別檢查:權限與能力、網路暴露、磁碟區掛載與檔案系統、密鑰衛生、資源限制、映像固定、健康檢查與重啟策略、日誌、Compose 規格衛生。瀏覽檢查項目錄,可依類別篩選。
適用情境
適合在部署前請助理審查 docker-compose.yml、排查權限、網路、密鑰或磁碟區相關風險,或為正在編輯的 compose 檔案產生具體修正建議。
執行需求
遠端 streamable HTTP 端點;需要 Apify API 權杖,透過 Authorization bearer 標頭傳送。稽核接受不超過 1 MB 的貼上 YAML 或公開 HTTPS 網址(抓取逾時 5 秒,最多 3 次重新導向)。工作階段閒置 5 分鐘後逾時。
安裝前請注意
依事件計費:每次稽核或分類檢查呼叫 0.02 美元,目錄查詢 0.005 美元,重複呼叫會產生費用。Apify 權杖屬於憑證,應妥善保密。compose 內容或你提供的網址會傳送到遠端服務。僅做靜態分析,不掃描映像,也不檢查執行中的容器。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Docker Compose Audit,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.UnbearableDev%2Fdocker-compose-audit/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "docker-compose-audit": {
      "type": "http",
      "url": "https://unbearable-dev--docker-compose-audit.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

Docker Compose Security Audit

MCP server that audits docker-compose.yml files for security misconfigurations. Trivy-grade check catalog, designed for AI agents — every finding ships with a severity rating, full remediation text, and a YAML fix snippet you can paste.

Built by Unbearable Labs. Pay-per-event pricing — you only pay when an audit runs.


Available on

  • Apify Actor Store — primary, metered usage (PPE)
  • MCPize — pending submission
  • MCP.so — pending submission
  • PulseMCP — pending submission
  • Smithery — pending submission
  • Glama — pending submission

Newsletter: Unbearable TechTips Weekly · All Actors: github.com/UnbearableDev

What it does

Point any MCP-capable client (Claude Desktop, Cursor, n8n, Make, Zapier, custom agents) at this server, hand it the contents of a docker-compose.yml, and get back a structured report with:

  • Severity — high / medium / low / info
  • Service — which compose service the finding affects
  • Description — what's wrong and why it matters
  • Remediation — what to do about it
  • Fix snippet — YAML you can paste directly into the file

Tools

ToolPurpose
audit_compose(compose_yaml? | compose_url?, min_severity='low')Run all checks, return full report
check_privilege(...)Container privilege & capability issues only
check_network(...)Network exposure issues only
check_filesystem(...)Volume mount & filesystem issues only
check_secrets(...)Secret hygiene issues only
check_resources(...)Resource limit issues only
check_image_hygiene(...)Image tag / registry / pinning issues only
check_runtime_lifecycle(...)Healthcheck / restart / init issues only
check_logging(...)Logging driver / rotation issues only
check_compose_hygiene(...)Deprecated fields / Compose-spec hygiene only
list_checks(category?)Browse the full check catalog

All audit-running tools accept the same input:

  • compose_yaml (string) — paste the YAML content directly, OR
  • compose_url (string) — public HTTPS URL to fetch (e.g. GitHub raw URL)

Provide exactly one. min_severity defaults to low (drops info findings); set to medium or high to filter further.

Example response (truncated)

json
{  "summary": {    "total_findings": 14,    "by_severity": {"high": 3, "medium": 6, "low": 5, "info": 0},    "by_category": {"privilege": 4, "network": 3, "secrets": 2, "...": 5}  },  "findings": [    {      "id": "DCS-002",      "category": "privilege",      "severity": "high",      "service": "web",      "title": "Privileged mode enabled",      "description": "Service 'web' has `privileged: true`...",      "remediation": "Remove `privileged: true`. If you need specific capabilities...",      "fix_yaml_snippet": "    # remove `privileged: true`; if needed, use cap_add or devices selectively",      "references": ["CIS-Docker-5.4", "NIST-800-190"]    },    ...  ]}

Pricing

EventUSD
Any audit / check_* tool call$0.02
list_checks discovery call$0.005

You pay only when a tool is invoked. No subscription, no monthly minimums.

Check catalog (25 live in v1, growing toward 54)

CategoryLive checks
PrivilegeRoot user (DCS-001), privileged mode (DCS-002), dangerous capabilities (DCS-003), cap_add: ALL (DCS-004), cap_drop: ALL missing (DCS-005), no-new-privileges missing (DCS-006)
Networknetwork_mode: host (DCS-010), port bound to 0.0.0.0 (DCS-011), SSH port exposed (DCS-013), DB port exposed (DCS-014)
Filesystem/var/run/docker.sock mount (DCS-018), host root mount (DCS-019), sensitive host paths (DCS-020)
SecretsHardcoded secret in env (DCS-026), secret-pattern env without Docker secrets (DCS-027)
ResourcesNo memory limit (DCS-032), no CPU limit (DCS-033), no PID limit (DCS-034)
Image hygieneUnpinned / :latest image (DCS-037)
Runtime lifecycleNo healthcheck (DCS-043), no restart policy (DCS-044)
LoggingNo log driver (DCS-048), no log rotation (DCS-049)
Compose hygieneDeprecated version: field (DCS-051), depends_on without healthcheck condition (DCS-052)

Use list_checks to get the canonical, up-to-date catalog with IDs, severities, and titles.

Connecting from Claude Desktop

Add to your MCP config:

json
{  "mcpServers": {    "compose-audit": {      "transport": "streamable-http",      "url": "https://YOUR-ACTOR-URL.apify.actor/mcp"    }  }}

(Replace YOUR-ACTOR-URL with the Standby URL shown on the Apify Store page after you start the Actor.)

Limits

  • YAML size: 1 MB cap per audit call
  • URL fetch: 5-second timeout, max 3 redirects, HTTPS only
  • Session timeout: 5 minutes of inactivity

What's NOT covered (yet)

Pure static analysis of the compose file only. Out of scope for this version:

  • Image vulnerability scanning (use Trivy / Grype for that)
  • Live container inspection
  • Kubernetes / Helm manifests (different surface)
  • Dockerfile-specific lint (use Hadolint)

The next 29 checks on the v1.x → v2 roadmap include build-context security, additional capability checks, secret-pattern detection in build args, and registry trust verification.

Source / contact

Issues, ideas, or false-positive reports: open an issue on the GitHub repo or email [email protected].

get the weekly newsletter(https://unbearabletechtips.beehiiv.com).

來源:README.md,提交 5bd2e2b

工具

0
該伺服器需要 API 金鑰等憑證,因此 SourceWeft 無法在沒有憑證的情況下讀取其工具,也未收錄。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Audit 整合