churn-mcp-server
churn-mcp-server
Expone la API de predicción de churn de ml-production-template como una herramienta MCP, de modo que un cliente compatible con MCP (Claude Desktop, Claude Code, o cualquier cliente MCP) pueda llamar a predict_churn directamente.
Diseño
Es un adaptador ligero, no una reescritura del servidor de modelos. No carga el modelo por sí mismo: llama al endpoint /predict del servicio churn-api ya desplegado, a través de HTTP. Eso significa que:
La capa MCP se puede redesplegar o escalar de forma independiente del modelo.
Si
churn-apise reinicia, esta capa no necesita hacerlo.El sistema ML "real" (FastAPI + MLflow) no se toca; MCP es una interfaz aditiva encima de él, lo que coincides con cómo integrarías MCP en un servicio de producción existente en lugar de incrustarlo en el servidor de modelos.
Se exponen dos herramientas:
predict_churn: el esquema del cliente de 19 campos de la API real, que devuelve churn_probability / churn_prediction / threshold_used.check_model_health: funciona como proxy del endpoint/healthde la API.
Related MCP server: MCP from API
Nota sobre la versión
El SDK oficial de Python mcp publicó recientemente una v2.0 que renombró FastMCP como MCPServer y movió las rutas de importación. Este proyecto fija la dependencia en mcp<2.0.0 y usa from mcp.server.fastmcp import FastMCP, ya que esa sigue siendo la versión estable y ampliamente documentada en el momento de escribir esto. Si estás leyendo esto más adelante y pip install mcp instala la v2 por defecto, tendrás que migrar la importación (mcp.server.fastmcp.FastMCP → mcp.server.MCPServer); consulta la guía de migración del SDK antes de asumir que el código siguiente sigue siendo válido tal cual.
Prueba local (stdio, sin Docker)
pip install -r requirements.txt
$env:MCP_TRANSPORT="stdio"
$env:CHURN_API_URL="http://localhost:8000" # your local churn-api
python server.pyApunta el claude_desktop_config.json de Claude Desktop al servidor:
{
"mcpServers": {
"churn-predictor": {
"command": "python",
"args": ["C:\\path\\to\\churn-mcp-server\\server.py"],
"env": { "CHURN_API_URL": "http://localhost:8000" }
}
}
}Despliegue en el clúster kind existente
Esto asume que el Deployment y el Service de churn-api del proyecto de Kubernetes ya se están ejecutando en tu clúster kind.
docker build -t churn-mcp-server:local .
kind load docker-image churn-mcp-server:local --name <your-cluster-name>
kubectl apply -f k8s/deployment.yaml
kubectl get pods -l app=churn-mcp-serverVerifica:
kubectl port-forward svc/churn-mcp-server 8080:80
curl http://localhost:8080/healthzUn detalle real que conviene conocer de cara a entrevistas
Un GET /mcp sin más devuelve 406 Not Acceptable: el transporte streamable-http de MCP requiere Accept: text/event-stream, y una sonda httpGet simple de Kubernetes no envía ese encabezado. Eso rompe una sonda de preparación ingenua que apunte directamente a /mcp. La solución aquí: FastMCP.streamable_http_app() devuelve la aplicación Starlette subyacente, que puedes montar junto con una ruta /healthz escrita a mano que devuelve un simple 200; consulta el final de server.py. Esta es una historia legítima de "me encontré con un problema real de integración y entendí el porqué", algo que ofrece una respuesta de entrevista más sólida que un proyecto en el que no salió nada mal.
Lo que esto demuestra (frase precisa para el currículum)
"Construí un servidor MCP que expone un endpoint de FastAPI para servir modelos como una herramienta invocable, desplegado en Kubernetes junto al servicio existente."
No es exacto: incluir "MCP" como una mera etiqueta de habilidad sin de poder explicar qué es MCP en realidad (un protocolo para exponer herramientas a clientes LLM, no un mecanismo de despliegue ni de alojamiento).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA unified HTTP/HTTPS service that exposes Model Context Protocol (MCP) functionality over HTTP endpoints, allowing clients to list available tools and call them through a standardized API.11
- FlicenseNot gradedqualityDmaintenanceEnables users to expose arbitrary HTTP APIs as configurable MCP tools by defining tool specifications in a JSON configuration file.2,6793
- AlicenseNot gradedqualityDmaintenanceProvides a standardized MCP interface for interacting with HTTP tools and services, enabling unified API access and management.MIT
- AlicenseAqualityDmaintenanceSelf-healing proxy for MCP servers that wraps tool calls with automatic retry, circuit breaker protection, and observability.535MIT
Related MCP Connectors
34 production API tools over one hosted MCP endpoint.
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Eklavya20/churn-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server