MCP RHHI CrunchTools
A read-only MCP server for discovering and inspecting Hummingbird / Red Hat Hardened Images catalog content.
Search and list images, categories, and image metadata; optionally include image READMEs.
List current or superseded tags with pull URLs, digests, canonical tags, sizes, and stream/variant filters.
Inspect tag container config and provenance per architecture, including user, entrypoint, cmd, env, ports, Containerfile, source commit, and SLSA level.
Query SBOM package counts and filter package lists by architecture, category, and package name.
Check tag CVEs, catalog-wide CVE statistics, and find which current images/tags an advisory affects.
Browse release history and inspect historical releases by digest for config, SBOM, and vulnerabilities.
Image-request browsing is documented in the README but is not present in the provided tool schema.
All exposed tools are GET-only, read-only, and require no credentials.
Provides read-only access to the Red Hat Hardened Images (Hummingbird) catalog API, letting agents browse minimal/distroless images and their streams and variants, inspect tag details (user, entrypoint, cmd, env, ports, Containerfile, SLSA level), pull SBOM package inventories, scan tags or the whole catalog for CVEs and advisories by severity, look up which images a given CVE/GHSA/GO advisory affects, and review release history and per-digest details for past releases.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP RHHI CrunchTools does the python 3.14 image ship openssl, and which version?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP RHHI CrunchTools
A secure, read-only MCP (Model Context Protocol) server for the Hummingbird / Red Hat Hardened Images catalog. It wraps the public catalog API at https://api-hummingbird.hummingbird-project.io so an agent can find minimal, distroless images, pick the right tag, and check its container config, SBOM and CVEs without scraping anything.
Overview
Read-only - every tool is a GET against the catalog and publishes
readOnlyHint: trueNo credentials - the catalog API is public; there is nothing to leak
Trimmed responses - the catalog-wide CVE feed is ~500 KB and an SBOM ~100 KB; tools filter and cap server-side so an agent gets the answer, not the dump
Containerized -
quay.io/crunchtools/mcp-rhhi, built on the Hummingbird Python image it describes
Related MCP server: Docker Hub MCP Server
Naming Convention
Component | Name |
GitHub repo | |
Container |
|
Python package (PyPI) |
|
CLI command |
|
Module import |
|
Key Concepts
Image name - short identifier used in every call (
python,nodejs,aspnet-runtime)Stream - version family within an image (
3.14,24,latest)Variant -
default(distroless, production),builder(adds bash, dnf, shadow-utils),fips, and image-specific onesCanonical tag - version-pinned tag used by the detail, SBOM and CVE tools (
3.14.8,3.14.8-builder)Superseded - a tag replaced by a newer one in its stream+variant; hidden unless asked for
Tools (14)
Images
list_images- all images with streams, variants and pull URL; filter by text or categoryget_image- one image's metadata, optionally its README as plain text
Tags
list_tags- current tags withpull_url,digest,canonical, sizes; filter by stream and variantget_tag_details- user, entrypoint, cmd, env, ports, Containerfile, source commit, SLSA level, per archget_sbom- package counts per arch and a filterable package list
Vulnerabilities
get_tag_vulnerabilities- CVE scan for one tag, filterable by minimum severityget_catalog_vulnerabilities- catalog-wide stats over every current tag, with per-image countsfind_cve- which current images and tags a CVE, GHSA or GO advisory affects
Release history
get_release_history- past releases of a stream+variant (digest, date, source commit)get_release_details,get_release_sbom,get_release_vulnerabilities- the same views for a historical digest
Image requests
list_image_requests- requests for new images on images.redhat.com/image-requests; filter by status or a title/key substringget_image_request- one request by HUM key or image title; returns status, status note and the publicdeep_link
Each request includes its HUM key, title, friendly status (Submitted / In progress / Delivered / Declined) and a deep_link of the form https://images.redhat.com/image-requests?request=REQ-NNNN that opens it on the site. (The site resolves the public REQ- alias; the API's underlying Jira key keeps the HUM- prefix with the same number.)
Installation
# uvx
claude mcp add mcp-rhhi-crunchtools -- uvx mcp-rhhi-crunchtools
# pip
pip install mcp-rhhi-crunchtools
# Container
claude mcp add mcp-rhhi-crunchtools -- podman run -i --rm quay.io/crunchtools/mcp-rhhi
# HTTP (streamable-http)
podman run -d -p 127.0.0.1:8030:8030 quay.io/crunchtools/mcp-rhhi \
--transport streamable-http --host 0.0.0.0 --port 8030Environment Variables
Variable | Required | Default | Description |
| No |
| Catalog API base URL; HTTPS required except for localhost |
| No | request gateway behind images.redhat.com | Image-request API base URL (a separate gateway from the catalog); HTTPS required except for localhost |
| No |
| Public site base URL used to build image-request deep links |
| No |
| Request timeout in seconds (max 300) |
Example Usage
Which Hummingbird image should I use for a Go service, and what are the builder and runtime pull URLs?
Does the python 3.14 image ship openssl, and which version?
Which images are affected by CVE-2025-12781?
Show critical and high CVEs across the catalog
What user and entrypoint does nodejs 24 run with?Security
See SECURITY.md. In short: every parameter is validated against a published pattern before it reaches a URL, path segments are URL-encoded, TLS is verified, requests time out, and responses are capped at 20 MB.
Development
uv sync --all-extras
uv run ruff check src tests
uv run mypy src
uv run pytest -v
podman run --rm -v .:/src:Z -w /src quay.io/crunchtools/gourmand:latest check --fullLicense
AGPL-3.0-or-later
Links
Available Tools
14 toolsfind_cve_toolFind Cve ToolBRead-only
Find which current catalog images and tags a CVE affects.
Inputs: cve_id (required). Returns: object
get_catalog_vulnerabilities_toolGet Catalog Vulnerabilities ToolARead-only
Get catalog-wide CVE stats across every current tag, with per-image counts.
catalog_summary is the unfiltered catalog total; images, matched and cves reflect the image and min_severity filters.
Inputs: image, limit, min_severity. Returns: object
get_image_request_toolGet Image Request ToolARead-only
Get one image request by HUM key or image title.
Returns the HUM key, title, friendly status, submitted/updated dates, the public status note, and the deep_link that opens it on images.redhat.com.
Inputs: request (required). Returns: object
get_image_toolGet Image ToolCRead-only
Get an image's metadata: summary, streams, variants, licenses, architectures.
Inputs: name (required), include_readme, readme_max_chars. Returns: object
get_release_details_toolGet Release Details ToolARead-only
Get the container config and provenance of a historical release by digest.
Inputs: name (required), digest (required), arch. Returns: object
get_release_history_toolGet Release History ToolBRead-only
List past releases (digest, date, source commit) of a stream and variant.
Inputs: name (required), stream (required), limit, variant. Returns: object
get_release_sbom_toolGet Release Sbom ToolBRead-only
Get the SBOM of a historical release by digest.
Inputs: name (required), digest (required), arch, limit, +2 more. Returns: object
get_release_vulnerabilities_toolGet Release Vulnerabilities ToolBRead-only
Get the CVE scan of a historical release by digest.
Inputs: name (required), digest (required), limit, min_severity. Returns: object
get_sbom_toolGet Sbom ToolBRead-only
Get a tag's SBOM: package counts per arch and a filterable package list.
Inputs: name (required), canonical (required), arch, limit, +2 more. Returns: object
get_tag_details_toolGet Tag Details ToolARead-only
Get a tag's container config and provenance per architecture.
User, entrypoint, cmd, env, exposed ports, working dir, labels, the Containerfile, source repo/commit, SLSA level and build system.
Inputs: name (required), canonical (required), arch. Returns: object
get_tag_vulnerabilities_toolGet Tag Vulnerabilities ToolBRead-only
Get the CVE scan for a tag: summary counts and each CVE with components.
Inputs: name (required), canonical (required), limit, min_severity. Returns: object
list_image_requests_toolList Image Requests ToolARead-only
List image requests from images.redhat.com/image-requests.
Each request carries its HUM key, title, friendly status (Submitted/In progress/Delivered/Declined) and the public deep_link that opens it on the site. Filter by status or a title/key substring.
Inputs: search, status. Returns: object
list_images_toolList Images ToolARead-only
List images in the Hummingbird catalog with streams, variants and pull URL.
The response also lists every category, for use as category.
Inputs: query, category. Returns: object
list_tags_toolList Tags ToolARead-only
List an image's tags with pull_url, digest, canonical tag and sizes.
Only current (non-superseded) tags unless include_superseded is set.
Inputs: name (required), stream, variant, include_superseded. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Most tools target distinct resources and actions, but the set has several closely related vulnerability and SBOM tools that differ mainly by scope (catalog, tag, release, or CVE). Descriptions clarify the boundaries, though an agent must still choose carefully among them.
All 14 tools consistently use snake_case verb_noun_tool naming (find/list/get + resource + _tool). There are no mixed conventions or ambiguous verb styles.
With 14 tools, the set is well scoped for a read-only catalog/release/security inspection server. Each tool maps to a meaningful operation and the count stays comfortably within a manageable range.
The surface covers the apparent read-only domain thoroughly: images, tags, tag details, image requests, CVE lookups across catalog/tag/release scopes, SBOMs for tags and releases, and release history/details. There are no obvious dead ends for catalog inspection, vulnerability review, or historical release examination.
Maintenance
Related MCP Connectors
Read-only CVE intelligence, remediation playbooks, and agent setup guides. Not a scanner.
Read-only public CVE records, capability metadata, and agent instructions from Hacker Bob.
Read-only AgentiScript concept search, catalog, authenticity, license, and approved asset discovery.
Search and inspect source-pinned agent skills, plugins and tools through a free public MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables users to interact with container registries through the ORAS CLI, providing information about container images, platforms, and signatures via natural language queries.7Apache 2.0

Docker Hub MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables LLMs to search Docker Hub repositories, discover container images, and manage Docker Hub repositories and tags through natural language queries. Supports both public content access and authenticated operations with Docker Personal Access Tokens.171Apache 2.0
componecatofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to access an organization's software component catalog, including entities, relationships, interfaces, documentation, and team ownership, for grounded context and impact analysis.1MIT- AlicenseBqualityCmaintenanceEnables read-only access to a local-first catalog of portable agent skills, exposing tools to discover ranked matches, inspect stored artifacts, traverse declared relationships, and view configuration.5MIT