Interactive Curriculum 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., "@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.
Ana-Catalina MCP Server
Official Model Context Protocol (MCP) Server with Streamable HTTP transport over FastMCP, exposing an interactive CV and portfolio for AI assistants (Google Antigravity, Claude.ai, Cursor, Windsurf, Gemini) and LLM clients. Includes a self-contained web showcase and a production-ready container for Google Cloud Run.
Project Description
This project provides an official Model Context Protocol (MCP) server built in Python that enables AI assistants, hiring managers, and technical evaluators to interactively query the professional experience, technical skill matrix, featured projects, and job compatibility of Ana-Catalina Villalobos Contardo (Data Scientist & Machine Learning Engineer).
Key Features
Interactive Web Showcase & Playground: Served at
/demo(browsers hitting/are redirected to the product page) using the Pastel-Tech Design System. Allows human visitors and evaluators to test job fit and query the curriculum directly in the browser with deterministic accuracy and instant in-memory responses.Transparent HTTP Content Negotiation: Serves the interactive web interface to browsers (
Accept: text/html) while preserving the structured JSON discovery payload for programmatic agents and curl.Modern Streamable HTTP Transport (
/mcp): Native transport standard for direct cloud connections from Google Antigravity (mcp_config.json), Claude.ai (custom connectors), Gemini (gemini.com Connected Apps) and Cursor / Windsurf (mcp.json).9 Dedicated MCP Tools: Granular exploration of work history, skill taxonomy by category/level, highlighted projects, automated job fit scoring, full-text curriculum search, education, contact details, and general profile.
Zero-Latency In-Memory Architecture: Clean data validation using Pydantic v2 loaded into memory on container startup (<2ms response time).
Related MCP server: Bijon Portfolio MCP Server
Architecture
flowchart TD
subgraph ClientLayer["AI Clients & Consumers"]
AG["Google Antigravity (mcp_config.json)<br/>Streamable HTTP (POST /mcp)"]
A["Claude.ai (Custom Connector)<br/>Streamable HTTP (POST /mcp)"]
B["Cursor / Windsurf (mcp.json)<br/>Streamable HTTP (POST /mcp)"]
G["Gemini (gemini.com Connected Apps)<br/>Streamable HTTP (POST /mcp)"]
end
subgraph CloudLayer["Google Cloud Run / Serverless Host"]
C["FastMCP App (:8080)<br/>/mcp & Custom Routes"]
D["9 Registered MCP Tools"]
E["CV Service & Pydantic Engine<br/>(models/cv.py)"]
F[("data/cv_data.json<br/>(In-Memory Dataset)")]
end
AG <-->|"JSON-RPC Streamable HTTP"| C
A <-->|"JSON-RPC Streamable HTTP"| C
B <-->|"JSON-RPC Streamable HTTP"| C
G <-->|"JSON-RPC Streamable HTTP"| C
C <--> D
D <--> E
E <--> FMCP Tools Catalog
The server exposes 9 official tools registered via the Model Context Protocol:
Tool | Parameters | Return Type | Description |
|
|
| Detailed employment history, roles, responsibilities, and technologies used. Filterable by company. |
|
|
| Technologies, languages (Python, SQL), Cloud/GCP (BigQuery, Vertex AI) and Docker by category and level. |
|
|
| Highlighted portfolio projects, architecture, stack, and live demos/repo links. |
|
|
| Evaluates job requirements and calculates compatibility score, matching strengths, and value proposition. |
|
|
| Cross-cutting keyword search across experience, skills, projects, and education. |
| None |
| Formal university degrees, institutions, and specializations. |
| None |
| Direct professional contact channels (Email, LinkedIn). |
| None |
| General profile: name, title, location, and portfolio links. |
|
|
| Executive career summary focused on Data Science, ML, GCP, and MCP architecture in English or Spanish. |
Key Learnings
MCP Transport Evolution (Migration to Streamable HTTP):
Traditional remote MCP servers relied on complex multi-endpoint SSE combinations (
/sseand/messages/).The modern MCP specification introduced Streamable HTTP (
/mcp) via a single unified HTTP POST endpoint supporting both JSON responses and streaming events (Accept: application/json, text/event-stream).This eliminates local
stdiobridge overhead for remote clients and enables direct cloud connections from Claude.ai, Cursor, and Windsurf.
Decoupled Architecture & Schema Validation:
Separating raw data (
data/cv_data.json), interface contracts (models/cv.py), and domain services (services/cv_service.py) ensures that CV content updates never compromise server stability or type safety.
Pinned Stability Across MCP SDK Versions:
Version 2.0 of the official MCP SDK introduced breaking renames to
FastMCP. Pinningmcp>=1.3.0,<2preserves Cloud Run production stability without forced premature rewrites.
Automated Upstream Drift Detection:
Built a GitHub Actions workflow (
upstream-drift.yml) using semantic content comparison to detect discrepancies and missing keys betweendata/cv_data.jsonand sibling repositories (anacatalina-cv,projects-hub).
Local Setup & Development
1. Clone Repository & Setup Virtual Environment
git clone https://github.com/AnaCataVC/anacatalina-mcp.git
cd anacatalina-mcp
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows PowerShell: .venv\Scripts\Activate.ps1
# Install dependencies
pip install -r requirements.txt
pip install -r requirements-dev.txt2. Run Test Suite
pytest tests/ -v3. Start Local MCP Server
uvicorn server:app --host 0.0.0.0 --port 8080 --reloadConnecting AI Assistants
Google Antigravity / Gemini CLI (
~/.gemini/config/mcp_config.json):{ "mcpServers": { "anacatalina-cv": { "url": "https://mcp.ana-catalina.com/mcp" } } }Claude.ai: Settings → Connectors → Add custom connector → URL:
https://mcp.ana-catalina.com/mcpCursor / Windsurf (
mcp.json):{ "mcpServers": { "anacatalina-cv": { "url": "https://mcp.ana-catalina.com/mcp" } } }
License
This project is licensed under the MIT License. See LICENSE for details.
This server cannot be deployed
Maintenance
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.
Resume and CV parsing, candidate matching and ranking for recruiting and ATS AI agents.
Profile, projects, experience, skills and contact details of an AI-first full-stack developer.
61
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables searching and retrieving portfolio data including experience, skills, and contact information through natural language queries.5MIT
- FlicenseAqualityDmaintenanceExposes a personal portfolio's resume, projects, skills, certifications, and live GitHub repositories as tools for AI assistants to query via natural language.6-
- AlicenseNot gradedqualityDmaintenanceExposes 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
- AlicenseAqualityBmaintenanceServes CV content in Markdown, PDF, LaTeX, HTML, and Typst formats, with semantic querying and tailored CV rendering capabilities.16MIT