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 Hubbatch_image_stats(images)— concurrent lookup for up to 100 imagesget_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
| Tool | Description | Key Params |
|---|---|---|
get_image_stats |
Pull count, star count, last updated, description, official/verified status | image (required) — "nginx" or "grafana/grafana" |
search_images |
Keyword search, ranked results | query (required), limit (default 50) |
batch_image_stats |
Concurrent lookup of up to 100 images | images (required, list) |
get_publisher_images |
All images in a namespace | publisher (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:
| Project | Language | Tools | Auth | Tests | Install |
|---|---|---|---|---|---|
| docker/hub-mcp (official) | TypeScript | 13 | PAT (optional) | Yes | npm install |
| lucadruda/docker-hub-mcp-server | TypeScript | 49 (dynamic) | PAT | None | npm install |
| RSVINEETHA/DockerHub-MCP-Server | TypeScript | 8 | PAT (required) | None | npm install |
| This one (ours) | Python | 4 | None | 46 tests | uvx / 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
piporuvx, no Node.js needed - Batch operations —
batch_image_statsis 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
Metadata
Release files for docker-hub-mcp 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| docker_hub_mcp-0.2.2.tar.gz | 14.4 kB | Without provenance | Details for docker_hub_mcp-0.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| docker_hub_mcp-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for docker_hub_mcp-0.2.2-py3-none-any.whl |
Total release size: 24.4 kB
Release files / docker_hub_mcp-0.2.2.tar.gz
| Download URL | docker_hub_mcp-0.2.2.tar.gz |
|---|---|
| Size | 14.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
664850eedd0345d09db15889df52d23e61542007f0caf615ed74d5a72d820c87
|
|
BLAKE2b-256 checksum How to use checksums |
64888986e400107f1e62963b7c9c3b1e1bf70ef5655bc9268854dcebc260b6a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / docker_hub_mcp-0.2.2-py3-none-any.whl
| Download URL | docker_hub_mcp-0.2.2-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2bb3a5d7724e516ea7304223ce98615c48979e538433c8eca2ef7bf79f925919
|
|
BLAKE2b-256 checksum How to use checksums |
fd39aef31c0aaa11a5408e06355d1ea3550ed55dbbe4eb746f7611328524ad29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for docker-hub-mcp 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.