A Model Context Protocol (MCP) server that provides access to Red Hat's ecosystem catalog using the REST search API. This server enables AI assistants to search for certified software, container repositories, business partners, hardware, and cloud solutions through a standardized interface.
This MCP server connects to Red Hat's ecosystem catalog search API and provides six main tools for searching different types of Red Hat ecosystem content:
search_certified_software
- Search for certified software and applicationssearch_container_repositories
- Search for container repositories and product listingssearch_business_partners
- Search for Red Hat business partners and consulting firmssearch_certified_hardware
- Search for certified hardware systems and componentssearch_cloud_solutions
- Search for cloud solutions and cloud provider partnershipsgeneral_catalog_search
- General search across all catalog types with faceting
The server connects to Red Hat's ecosystem catalog search API at:
https://access.redhat.com/hydra/rest/search/kcs
Search for certified software and applications in the Red Hat ecosystem:
- Filters for certified software and ecosystem solutions
- Excludes traditional applications unless vendor validated
- Excludes vulnerability scanners
- Returns software titles, descriptions, platforms, and certification details
Search for container repositories and product listings:
- Filters for container repositories and product listings
- Excludes deprecated releases
- Returns repository information, tags, architecture, and push dates
- Includes container-specific metadata
Search for Red Hat business partners and consulting firms:
- Filters for business partner documents
- Returns partner information, industries, specializations, and accreditations
- Includes partner-specific metadata like practice accelerator specializations
Search for certified hardware systems and components:
- Filters for certified hardware documents
- Excludes cloud instance types (handled separately)
- Returns hardware titles, descriptions, platforms, and certification details
Search for cloud solutions and cloud provider partnerships:
- Filters for cloud instance types and cloud images
- Returns cloud solution information and provider partnerships
- Includes cloud-specific metadata
General search across all Red Hat catalog types with faceting:
- Searches across all document types
- Provides faceted search results with counts by document type and partner
- Optional filtering by specific document kinds
- Returns comprehensive search results with metadata
All search tools support the following parameters:
query
- Search query string (required)start
- Starting index for results (default: 0)rows
- Maximum number of results to return (default: 10, max: 50)
The general_catalog_search
tool additionally supports:
document_kinds
- Optional list of document kinds to filter by
The server includes optional Prometheus metrics support for monitoring:
- Tool usage tracking - Track calls to each MCP tool with success/error rates and duration
- Search API monitoring - Monitor Red Hat API request performance and success rates
- Connection tracking - Track active MCP connections
- HTTP endpoints -
/metrics
for Prometheus scraping and/health
for health checks
- Python 3.10+
- UV (Python package manager)
- Podman or Docker (for containerized deployment)
- Internet access to reach Red Hat's search API
The codebase is organized into modular components in the src/
directory:
src/mcp_server.py
- Main server entry point and MCP initializationsrc/config.py
- Configuration management and environment variable handlingsrc/database.py
- HTTP client handling for Red Hat search API requestssrc/tools.py
- MCP tool implementations and business logicsrc/metrics.py
- Optional Prometheus metrics collection and HTTP server
The following environment variables are used to configure the server:
MCP_TRANSPORT
- Transport protocol for MCP communication- Default:
sse
- Default:
ENABLE_METRICS
- Enable Prometheus metrics collection- Default:
false
- Default:
METRICS_PORT
- Port for metrics HTTP server- Default:
8000
- Default:
- Clone the repository:
git clone <repository-url>
cd ecosystem-catalog-search-mcp
- Create and activate a virtual environment:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies:
uv sync
- Run the server:
uv run python src/mcp_server.py
- Clone the repository:
git clone <repository-url>
cd ecosystem-catalog-search-mcp
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run the server:
python src/mcp_server.py
The server supports multiple transport methods:
Default transport for CLI usage:
python src/mcp_server.py --transport stdio
For web browser compatibility:
python src/mcp_server.py --transport sse
Enable Prometheus metrics:
ENABLE_METRICS=true METRICS_PORT=8000 python src/mcp_server.py
Access metrics:
- Metrics:
http://localhost:8000/metrics
- Health check:
http://localhost:8000/health
Build and run with Podman:
podman build -t redhat-search-mcp .
podman run -p 8000:8000 -e ENABLE_METRICS=true redhat-search-mcp
# Search for Ansible certified software
result = await search_certified_software("Ansible", rows=20)
# Search for RHEL containers
result = await search_container_repositories("RHEL", rows=15)
# Search for consulting partners
result = await search_business_partners("consulting", rows=10)
# Search across all catalog types
result = await general_catalog_search("OpenShift", rows=25)
All search tools return formatted strings with the following structure:
Found X <result_type>
1. <Title>
Type: <Document Kind>
Partner: <Partner Name>
Category: <Category>
Description: <Description>
Platforms: <Supported Platforms>
Categories: <Certification Categories>
Last Modified: <Date>
URL: <View URL>
The general_catalog_search
tool includes additional facet information:
π Search Facets:
Document Types:
- BusinessPartner: 15
- CertifiedSoftware: 42
Top Partners:
- Red Hat: 25
- IBM: 18
The server includes comprehensive error handling:
- Network errors are caught and logged
- Invalid search parameters are handled gracefully
- All tools return error messages instead of exceptions
- Metrics track success/failure rates
- Uses proper SSL/TLS certificate verification
- No authentication required (public API)
- Input sanitization for search queries
- Rate limiting through HTTP client configuration
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.