Interactive Curriculum MCP Server
Click on "Install 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., "@Interactive Curriculum MCP ServerWhat is Ana Catalina's professional experience and key skills?"
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.
Official Model Context Protocol (MCP) Server with Server-Sent Events (SSE) transport over FastAPI, exposing an interactive CV and portfolio for AI assistants and LLM clients. Includes a local
stdiobridge for Claude Desktop and a production-ready container for Google Cloud Run.
🇪🇸 Descripción del Proyecto (Spanish)
Este proyecto implementa un servidor oficial de Model Context Protocol (MCP) en Python que permite a evaluadores técnicos, reclutadores y modelos LLM (como Claude o GPT) explorar de forma interactiva y estructurada la trayectoria profesional, habilidades técnicas, proyectos insignia y compatibilidad con vacantes de Ana Catalina (Data Scientist & Learning Engineer en SimpliRoute, ex-Fracttal).
Características Principales
Transporte SSE Remoto: Integrado con FastAPI y
SseServerTransportpara despliegue Serverless en Google Cloud Run. ¡El servidor ya se encuentra en producción!8 Herramientas MCP Especializadas: Consulta granular de experiencia laboral, stack tecnológico con niveles de dominio, proyectos insignia, evaluación automática de vacantes, búsqueda global por palabras clave, educación y contacto.
Script Puente Local (
conecta_cata.py): Permite conectar clientes locales basados enstdio(como Claude Desktop) con el servidor remoto alojado en Cloud Run a través de HTTP/SSE.Desacoplamiento y Rendimiento: Datos estructurados en
data/cv_data.jsonvalidados en memoria con Pydantic v2 al iniciar el contenedor (<2ms por consulta).
Related MCP server: Portfolio MCP Server
🇬🇧 Project Overview (English)
This project provides an official Model Context Protocol (MCP) server built in Python that enables AI assistants, hiring managers, and evaluators to interactively query the professional experience, technical skill matrix, featured projects, and job compatibility of Ana Catalina (Data Scientist & Learning Engineer at SimpliRoute, former Fracttal).
Key Features
Remote SSE Transport: Implemented via FastAPI and
SseServerTransport, optimized for Serverless hosting on Google Cloud Run. Live and deployed!8 Dedicated MCP Tools: Granular exploration of work history, skill taxonomy by category/level, highlighted projects, automated job fit scoring, full-text curriculum search, education, and contact details.
Local Stdio Bridge (
conecta_cata.py): Bi-directional async adapter connectingstdio-based clients (such as Claude Desktop) to remote SSE endpoints.Zero-Latency In-Memory Architecture: Clean data validation using Pydantic v2 loaded into memory on container startup (<2ms response time).
📐 Arquitectura del Sistema / System Architecture
flowchart TD
subgraph ClientLayer["Cliente MCP / Client Layer"]
A["Claude Desktop / IDE Client<br/>(stdio: stdin / stdout)"]
end
subgraph BridgeLayer["Puente Local / Local Bridge"]
B["conecta_cata.py<br/>(stdio_server ⇄ sse_client)"]
end
subgraph CloudLayer["Google Cloud Run / Serverless Host"]
C["FastAPI App (:8080)<br/>/sse & /messages/"]
D["FastMCP Server Core<br/>(8 MCP Tools)"]
E["CV Service & Pydantic Engine<br/>(models/cv.py)"]
F[("data/cv_data.json<br/>(In-Memory Dataset)")]
end
A <-->|"JSON-RPC (stdio)"| B
B <-->|"SSE Stream & HTTP POST"| C
C <--> D
D <--> E
E <--> F🧰 Catálogo de Herramientas MCP / MCP Tools Catalog
El servidor expone 8 herramientas oficiales registradas a través del protocolo MCP:
Herramienta / Tool | Parámetros / Parameters | Tipo Retorno / Return Type | Descripción / Description |
|
|
| Historial laboral detallado, roles, responsabilidades y tecnologías empleadas. Permite filtrar por empresa. |
|
|
| Tecnologías, lenguajes (Python, SQL), Cloud/GCP (BigQuery, Vertex AI) y Docker organizados por categoría y nivel (Avanzado, Intermedio). |
|
|
| Proyectos insignia (laborales y personales), arquitectura, stack tecnológico y enlaces a repositorios/demos. |
|
|
| Analiza los requerimientos de una vacante laboral y calcula el porcentaje de compatibilidad, fortalezas coincidentes y propuesta de valor. |
|
|
| Búsqueda transversal por palabra clave en todo el currículum (experiencia, habilidades, proyectos y educación). |
| Ninguno |
| Formación académica formal, grado obtenido, institución y especialización. |
| Ninguno |
| Canales directos de contacto profesional (Email y perfil de LinkedIn). |
|
|
| Síntesis ejecutiva del perfil profesional enfocada en Data Science, ML, GCP y arquitecturas MCP en español ( |
💡 Aprendizajes Clave & Decisiones de Diseño
Dualidad de Transporte en MCP (
stdiovsSSE):Los clientes locales de escritorio como Claude Desktop operan mediante subprocesos y canales
stdin/stdout.Los entornos de producción serverless (Google Cloud Run) requieren streaming HTTP mediante Server-Sent Events (
/ssey/messages/).El script
conecta_cata.pyactúa como un puente asíncrono bidireccional construido sobreanyio, traduciendo eventos entre ambos mundos con latencia nula.
Higiene Estricta de Streams en
stdio:Cualquier mensaje o log emitido a
stdoutcorrompe el flujo JSON-RPC del protocolo MCP.Toda la telemetría, logs informativos y errores en
conecta_cata.pyse canalizan explícitamente haciastderr.
Desacoplamiento y Validación de Datos:
La separación entre la capa de datos (
data/cv_data.json), los contratos de interfaz (models/cv.py) y la lógica de negocio (services/cv_service.py) permite actualizar el contenido del currículum sin modificar el servidor MCP ni arriesgar la compatibilidad de tipos.
Compatibilidad y Cambios de API en
mcp 2.x:Recientemente, la versión
2.0.0del SDK oficial de MCP introdujo cambios que renombraronFastMCP. Para mantener la estabilidad del despliegue en Cloud Run y garantizar que nuestro códigoFastMCPv1 continúe funcionando correctamente sin refactorización inmediata, fijamos la dependencia enrequirements.txtamcp>=1.3.0,<2.
🚀 Instalación y Uso Local / Local Setup
1. Clonar el Repositorio y Configurar Entorno
# Clonar repositorio
git clone https://github.com/AnaCataVC/anacatalina-mcp.git
cd anacatalina-mcp
# Crear y activar entorno virtual
python -m venv .venv
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
# Linux / macOS
source .venv/bin/activate
# Instalar dependencias
pip install -r requirements.txt2. Ejecutar la Suite de Pruebas
pytest tests/ -v3. Iniciar el Servidor MCP Local
uvicorn server:app --host 0.0.0.0 --port 8080 --reloadEndpoints disponibles:
Health Check:
http://localhost:8080/healthSSE Stream:
http://localhost:8080/sseMensajes POST:
http://localhost:8080/messages/
🔌 Configuración en Claude Desktop
Para conectar Claude Desktop con el servidor remoto desplegado en Cloud Run usando el puente local, puedes basarte en el archivo claude_desktop_config.example.json incluido en este repositorio. Añade o reemplaza la configuración en tu archivo claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Asegúrate de ajustar el argumento command o las rutas según tu sistema operativo. Usa rutas relativas de entorno o tu ruta local al script puente conecta_cata.py, pero nunca compartas rutas absolutas locales en repositorios públicos.
{
"mcpServers": {
"anacatalina-cv": {
"command": "python",
"args": [
"conecta_cata.py"
],
"env": {
"MCP_SERVER_SSE_URL": "https://anacatalina-mcp-165536131179.us-central1.run.app/sse"
}
}
}
}Pruebas en desarrollo local: Para conectar Claude Desktop con tu servidor local, cambia el valor de "MCP_SERVER_SSE_URL" a "http://localhost:8080/sse".
☁️ Despliegue en Google Cloud Run / Cloud Run Deployment
1. Construir y Probar Contenedor Localmente
docker build -t anacatalina-mcp .
docker run -p 8080:8080 -e PORT=8080 anacatalina-mcp2. Desplegar a Google Cloud Run con Google Cloud SDK (gcloud)
# Autenticarse en Google Cloud
gcloud auth login
gcloud config set project TU_PROJECT_ID
# Desplegar directamente desde el código fuente
gcloud run deploy anacatalina-mcp \
--source . \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--timeout 3600 \
--session-affinityLas opciones--timeout 3600 y --session-affinity son fundamentales para mantener conexiones SSE persistentes y estables en Cloud Run.
📂 Estructura del Proyecto / Repository Structure
anacatalina-mcp/
├── data/
│ └── cv_data.json # Dataset estructurado del currículum profesional
├── models/
│ ├── __init__.py
│ └── cv.py # Modelos de datos y validación con Pydantic v2
├── services/
│ ├── __init__.py
│ └── cv_service.py # Lógica de filtrado, búsqueda y evaluación de fit
├── tests/
│ └── test_server.py # Pruebas de integración del servidor MCP
├── .gitignore # Exclusiones de Git
├── .dockerignore # Exclusiones de Docker build
├── Dockerfile # Definición de contenedor lista para Cloud Run
├── README.md # Documentación principal del repositorio
├── claude_desktop_config.example.json # Plantilla de configuración para Claude Desktop
├── conecta_cata.py # Script puente asíncrono stdio <-> SSE
├── icon.png # Icono / Banner oficial del proyecto
├── requirements.txt # Dependencias del proyecto
└── server.py # Servidor principal FastMCP con transporte SSE y FastAPI📄 Licencia / License
Este proyecto se distribuye bajo la licencia MIT. Desarrollado por Ana Catalina.
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 Connectors
Query professional profiles, search candidates, and get AI-powered summaries and job fit analysis.
Akshay Shetty's engineering portfolio and resume, queryable by AI. OAuth-secured.
An interactive portfolio built for AI conversations. Browse work, services, and book calls.
Search people open to work and fetch their machine-readable cv.json, from any AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes a public, read-only professional profile with tools to search resume evidence, fetch curated links, and generate career briefs for LLM agents.MIT
- AlicenseAqualityCmaintenanceEnables searching and retrieving portfolio data including experience, skills, and contact information through natural language queries.5MIT
- FlicenseAqualityCmaintenanceExposes a personal portfolio's resume, projects, skills, certifications, and live GitHub repositories as tools for AI assistants to query via natural language.61
- AlicenseNot gradedqualityCmaintenanceExposes a structured professional resume as a set of AI-queryable tools, enabling AI clients like Claude Desktop to query summary, experience, skills, projects, and tailor resumes to job descriptions.1MIT
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/AnaCataVC/anacatalina-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server