Docker Hub MCP Server

MCP server for Docker Hub image statistics. No API key required.

Documentation

Docker Hub MCP Server

A Model Context Protocol (MCP) server for querying Docker Hub image statistics. Provides pull counts, star counts, descriptions, official/verified status, and publisher catalogs through the public Docker Hub API — no API key required.

Features

  • get_image_stats(image) — single image metadata (pulls, stars, last_updated, description, is_official, is_verified)
  • search_images(query, limit) — keyword search across Docker Hub
  • batch_image_stats(images) — concurrent lookup for up to 100 images
  • get_publisher_images(publisher, limit) — catalog all images from a namespace (e.g. library, bitnami, grafana)

Installation

uv (recommended)

uvx docker-hub-mcp

pip

pip install docker-hub-mcp
docker-hub-mcp

Configuration

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "docker-hub-mcp": {
      "command": "uvx",
      "args": ["docker-hub-mcp"]
    }
  }
}

Cursor / VS Code

Add to your MCP configuration:

{
  "mcpServers": {
    "docker-hub-mcp": {
      "command": "uvx",
      "args": ["docker-hub-mcp"]
    }
  }
}

Hermes Agent (MCP Gateway)

Add to ~/.hermes/gateway.yaml:

docker-hub-mcp:
  command: uvx docker-hub-mcp
  lazy_spawn: true
  timeout: 30s
  env: {}

Tools

ToolDescriptionKey Params
get_image_statsPull count, star count, last updated, description, official/verified statusimage (required) — "nginx" or "grafana/grafana"
search_imagesKeyword search, ranked resultsquery (required), limit (default 50)
batch_image_statsConcurrent lookup of up to 100 imagesimages (required, list)
get_publisher_imagesAll images in a namespacepublisher (required), limit (default 100)

Examples

# Get stats for nginx
get_image_stats({"image": "nginx"})
# → pull_count: 13.2B, star_count: 21K, is_official: true

# Search for postgres
search_images({"query": "postgres", "limit": 5})
# → ranked results with pulls, stars, official flags

# Batch compare web servers
batch_image_stats({"images": ["nginx", "httpd", "caddy", "traefik"]})

# Catalog a publisher
get_publisher_images({"publisher": "bitnami", "limit": 25})

Data Source

Uses the Docker Hub API (/v2/repositories and /v2/search).

  • Auth: None required for public data
  • Rate limit: ~4,400 requests per 6 hours (unauthenticated)

Development

git clone https://github.com/GeniusTechnoMystic/docker-hub-mcp.git
cd docker-hub-mcp
uv sync
uv run docker-hub-mcp

Run tests:

uv run pytest tests/

Related Projects

Other Docker Hub MCP servers in the ecosystem:

ProjectLanguageToolsAuthTestsInstall
docker/hub-mcp (official)TypeScript13PAT (optional)Yesnpm install
lucadruda/docker-hub-mcp-serverTypeScript49 (dynamic)PATNonenpm install
RSVINEETHA/DockerHub-MCP-ServerTypeScript8PAT (required)Nonenpm install
This one (ours)Python4None46 testsuvx / pip install

Our differentiators

  • Zero auth — no API key, no PAT, no Docker account needed. Just uvx docker-hub-mcp
  • Python ecosystem — only Python implementation. Install via pip or uvx, no Node.js needed
  • Batch operationsbatch_image_stats is unique — no competitor offers concurrent multi-image lookup
  • Test coverage — 46 tests with mocked HTTP (pytest-httpx), the most thorough test suite of any Docker Hub MCP server
  • MIT license — permissive, easy to embed

When to use the alternatives

  • docker/hub-mcp — if you need repository management (create, update, delete), tag listing, or Docker Hardened Images. Requires PAT for write operations.
  • lucadruda/docker-hub-mcp-server — if you need full Docker Hub API coverage (collaborators, webhooks, stars, namespaces). Requires PAT.
  • RSVINEETHA/DockerHub-MCP-Server — minimal alternative, requires PAT.

License

MIT