docker-facts

Does that Docker tag actually exist? Real tags, sizes and platforms, live from Docker Hub.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,186Tokens (tool definitions)
~3.5 KBTypical response size
Moderate attention impact (0.93% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "docker-facts": {
      "url": "https://api.kaiv.ai/api/bridge/mcp/docker-facts-adc41b39"
    }
  }
}

Remote endpoints

https://api.kaiv.ai/api/bridge/mcp/docker-facts-adc41b39streamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_image_tag(tag, name)

Does this image:tag exist, how big is it, and which platforms does it cover? Use this before writing a FROM line or a compose file. On a hit it returns size, platforms, arm64/amd64 support and the digest. On a miss it says whether the IMAGE exists but the tag is wrong, and lists real tags newest first so the caller can correct itself. Defaults to tag "latest" when none is given.

Input Schema

{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "x-in": "query",
      "default": "latest",
      "description": "Tag to check, e.g. \"20-alpine\". Defaults to \"latest\"."
    },
    "name": {
      "type": "string",
      "x-in": "query",
      "description": "Docker image name as you would write it in a FROM line: \"node\", \"postgres\", \"grafana/grafana\". Official images may omit the \"library/\" prefix."
    }
  },
  "required": [
    "name"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string"
    },
    "image": {
      "type": "string"
    },
    "digest": {
      "type": "string",
      "nullable": true,
      "description": "Content digest, for pinning."
    },
    "exists": {
      "type": "boolean",
      "description": "Whether this exact image:tag exists on Docker Hub."
    },
    "status": {
      "type": "string",
      "nullable": true,
      "description": "Docker Hub tag status, e.g. \"active\"."
    },
    "meaning": {
      "type": "string",
      "description": "One sentence, safe to show a user verbatim."
    },
    "size_mb": {
      "type": "number",
      "nullable": true,
      "description": "Compressed size in MB."
    },
    "platforms": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "os/arch strings this tag was built for, e.g. \"linux/arm64\"."
    },
    "reference": {
      "type": "string",
      "description": "The full reference, safe to paste into a FROM line."
    },
    "suggestion": {
      "type": "string",
      "nullable": true,
      "description": "Present only on a miss: the most recently updated real tag."
    },
    "image_exists": {
      "type": "boolean",
      "description": "Present only on a miss. Distinguishes a wrong tag from a wrong image name."
    },
    "last_updated": {
      "type": "string",
      "nullable": true,
      "description": "When the tag was last pushed (ISO 8601). A tag untouched for years is usually the wrong choice."
    },
    "available_tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Present only on a miss: real tags, newest first, so the caller can correct itself."
    },
    "supports_amd64": {
      "type": "boolean"
    },
    "supports_arm64": {
      "type": "boolean",
      "description": "Answers the Apple Silicon and Graviton question directly."
    }
  },
  "required": [
    "image",
    "tag",
    "exists",
    "meaning"
  ]
}
🟢get_image_info(name)

Repository facts: official status, pulls, stars, whether it is archived. Use to judge whether an image is the canonical one and still maintained. Archived images still pull but receive no security patches.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-in": "query",
      "description": "Docker image name as you would write it in a FROM line: \"node\", \"postgres\", \"grafana/grafana\". Official images may omit the \"library/\" prefix."
    }
  },
  "required": [
    "name"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "image": {
      "type": "string"
    },
    "pulls": {
      "type": "integer",
      "nullable": true
    },
    "stars": {
      "type": "integer",
      "nullable": true
    },
    "exists": {
      "type": "boolean"
    },
    "hub_url": {
      "type": "string",
      "description": "Page a human can open."
    },
    "official": {
      "type": "boolean",
      "description": "True for Docker Official Images (the \"library\" namespace)."
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "is_archived": {
      "type": "boolean",
      "description": "Archived images still pull but receive no further updates, including security patches."
    },
    "last_updated": {
      "type": "string",
      "nullable": true
    }
  }
}
🟢list_image_tags(name, limit)

Real tags for an image, most recently updated first. Use when choosing a tag rather than verifying one. Each entry carries size and platform list, so a choice can be made without a second call.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-in": "query",
      "description": "Docker image name as you would write it in a FROM line: \"node\", \"postgres\", \"grafana/grafana\". Official images may omit the \"library/\" prefix."
    },
    "limit": {
      "type": "integer",
      "x-in": "query",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "How many tags to return, 1 to 100. Defaults to 25."
    }
  },
  "required": [
    "name"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "string"
          },
          "size_mb": {
            "type": "number",
            "nullable": true
          },
          "platforms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "last_updated": {
            "type": "string",
            "nullable": true
          }
        }
      }
    },
    "count": {
      "type": "integer"
    },
    "image": {
      "type": "string"
    },
    "exists": {
      "type": "boolean"
    },
    "newest_first": {
      "type": "boolean",
      "description": "Tags are ordered by last update, most recent first."
    }
  }
}

Recommended Prompts

retrieve_data
Get details about [item] from docker-facts
Expected tools: get_image_info
fetch_info
Fetch [information type] using docker-facts
Expected tools: get_image_info
list_items
List all [items] available in docker-facts
Expected tools: list_image_tags
browse_collection
Show me the [collection] from docker-facts
Expected tools: list_image_tags
explore_workflow
List available [items], then get details for each one using docker-facts
Expected tools: list_image_tagsget_image_info

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools