CloudChampion MCP Server
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., "@CloudChampion MCP Serverfind upcoming webinars on Azure AI"
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.
CloudChampion MCP Server
Servidor MCP (Model Context Protocol) para consultar el catálogo de formación de Cloud Champion (cloudchampion.es y variantes por país).
Expone herramientas que permiten a agentes de IA buscar, filtrar y obtener estadísticas sobre webinars, vídeos, learning paths, podcasts y otros recursos de Microsoft para partners.
Arquitectura
Agente IA ──► MCP Server (FastMCP) ──► API Cloud Champion
│ /wp-json/feed/content
│
└── Caché en memoria (TTL configurable)Feed API:
GET https://www.cloudchampion.es/wp-json/feed/content— catálogo global público (todos los países/idiomas)Caché: En memoria con TTL de 10 min (configurable) para evitar llamadas excesivas
Búsqueda: Fuzzy matching sin tildes/diacríticos para español y otros idiomas
Transporte: Streamable HTTP (default), SSE o stdio
Related MCP server: University Course Catalog MCP Server
Herramientas disponibles (Tools)
Tool | Descripción |
| Búsqueda textual + filtros combinables (país, idioma, tipo, audiencia, área, provider, fechas) |
| Formaciones futuras en una ventana de N días |
| Detalle completo de una formación por título parcial o ID |
| Valores únicos disponibles para cada filtro (tipos, áreas, idiomas, etc.) |
| Estadísticas del catálogo: totales por tipo, área, audiencia, provider, rango de fechas |
Desarrollo local
Requisitos
Python 3.11+
pip
Instalación
# Clonar el repositorio
git clone <repo-url>
cd cloudchampion-mcp
# Instalar dependencias
pip install -r requirements.txt
# (Opcional) Copiar y ajustar variables de entorno
cp .env.example .envModo desarrollo con inspector web
fastmcp dev src/mcp_cloudchampion/server.pyEsto abre el inspector web de FastMCP donde puedes probar las tools interactivamente.
Modo stdio (para uso local con clientes MCP)
MCP_TRANSPORT=stdio python -m mcp_cloudchampion.serverModo HTTP (para acceso remoto)
python -m mcp_cloudchampion.server
# Servidor en http://0.0.0.0:8000Docker
Build
docker build -t mcp-cloudchampion .Run
docker run -p 8000:8000 mcp-cloudchampionCon variables de entorno custom
docker run -p 8000:8000 \
-e CACHE_TTL_SECONDS=300 \
-e LOG_LEVEL=DEBUG \
mcp-cloudchampionDespliegue en Azure Container Apps
La infraestructura se define como IaC con Bicep en la carpeta infra/.
1. Crear infraestructura con Bicep
RESOURCE_GROUP="rg-cloudchampion-mcp"
LOCATION="westeurope"
# Crear Resource Group
az group create --name $RESOURCE_GROUP --location $LOCATION
# Desplegar infraestructura (ACR + Log Analytics + Container Apps Env + Container App)
az deployment group create \
--resource-group $RESOURCE_GROUP \
--template-file infra/main.bicep \
--parameters infra/main.parameters.json
# Ver outputs (FQDN, MCP endpoint, ACR login server)
az deployment group show \
--resource-group $RESOURCE_GROUP \
--name main \
--query 'properties.outputs' -o jsonRecursos creados:
Azure Container Registry (Basic SKU, admin habilitado)
Log Analytics Workspace (retención 30 días)
Container Apps Environment (con logging a Log Analytics)
Container App (scale to zero, 0.25 vCPU, 0.5 GiB RAM, ingress HTTP externo)
2. Build & Deploy de la imagen
ACR_NAME="acrcloudchampionmcp"
ACA_APP="mcp-cloudchampion"
# Build imagen en ACR
az acr build --registry $ACR_NAME --image mcp-cloudchampion:latest .
# Actualizar Container App con la nueva imagen
az containerapp update \
--name $ACA_APP \
--resource-group $RESOURCE_GROUP \
--image "$ACR_NAME.azurecr.io/mcp-cloudchampion:latest"3. Obtener URL
az containerapp show --name $ACA_APP --resource-group $RESOURCE_GROUP \
--query "properties.configuration.ingress.fqdn" -o tsvPersonalizar parámetros
Edita infra/main.parameters.json para cambiar el nombre del ACR, CPU, memoria, réplicas, etc. Parámetros disponibles:
Parámetro | Descripción | Default |
| Nombre del ACR (globalmente único) |
|
| Nombre del Container Apps Environment |
|
| Nombre de la Container App |
|
| Mín. réplicas (0 = scale to zero) |
|
| Máx. réplicas |
|
| CPU asignada |
|
| Memoria asignada |
|
| TTL de caché del feed |
|
| Nivel de logging |
|
CI/CD
El workflow de GitHub Actions (.github/workflows/deploy.yml) tiene dos jobs:
infra — Despliega Bicep (solo si cambian ficheros en
infra/o se lanza manualmente condeploy_infra: true)build-and-deploy — Build de imagen en ACR + deploy a Container App (en cada push a
main)
Requiere el secret AZURE_CREDENTIALS configurado en el repo.
Consumir el MCP
Desde VS Code / Claude Desktop
{
"mcpServers": {
"cloudchampion": {
"url": "https://<tu-aca-url>.azurecontainerapps.io/mcp"
}
}
}Desde un agente Python
from agents import Agent
from agents.mcp import MCPServerStreamableHttp
mcp = MCPServerStreamableHttp(url="https://<tu-aca-url>.azurecontainerapps.io/mcp")
agent = Agent(
name="CloudChampionAssistant",
instructions="Eres un asistente experto en formación de Cloud Champion...",
mcp_servers=[mcp],
)Variables de entorno
Variable | Descripción | Default |
| URL del feed de contenido |
|
| TTL de la caché en segundos |
|
| Transporte: |
|
| Host de escucha |
|
| Puerto de escucha |
|
| Nivel de logging |
|
Estructura del proyecto
├── src/
│ └── mcp_cloudchampion/
│ ├── __init__.py # Versión del paquete
│ ├── __main__.py # python -m entry point
│ ├── config.py # Settings + logging setup
│ ├── text_utils.py # Normalización de texto / fuzzy match
│ ├── feed_client.py # Cliente HTTP + caché con TTL
│ ├── filters.py # Motor de filtrado
│ └── server.py # FastMCP server + 5 tools
├── Dockerfile # Multi-stage build
├── .dockerignore
├── .env.example
├── pyproject.toml
├── requirements.txt
├── README.md
└── .github/workflows/
└── deploy.yml # CI/CD → Azure Container AppsLicencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Official Microsoft Learn MCP Server – real-time, trusted docs & code samples for AI and LLMs.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for discovering and exploring Azure Verified Modules (AVM) from the Bicep Public Registry, enabling AI agents to search, retrieve module details, and access documentation.242 PyPI6MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes a university course catalog to LLMs, enabling course search, prerequisite lookup, instructor details, and department directory through natural language.-
- FlicenseNot gradedqualityDmaintenanceMCP server deployed on Azure Functions that provides a LearnAgent tool to search and retrieve Microsoft Learn documentation.-
- AlicenseAqualityDmaintenanceMCP server for WirLernenOnline.de that enables searching and retrieving educational materials, collections, topic pages, and metadata through natural language, compatible with OpenAI and Claude.12Apache 2.0