VIGÍA HACCP MCP Server
VIGÍA HACCP MCP Server
Servidor MCP que genera análisis HACCP completos, enriquecidos con datos reales de retiros de mercado de la FDA (openFDA).
Compatible con: SurfSense, Claude Desktop, cualquier cliente MCP estándar (SSE).
Estructura del proyecto
vigia-haccp-mcp/
├── server.py # Punto de entrada — FastMCP + 3 herramientas
├── models.py # Modelos Pydantic compartidos
├── services/
│ ├── openfda.py # Cliente openFDA con manejo de errores
│ └── haccp_generator.py # Lógica HACCP (PCCs, peligros, límites…)
├── exporters/
│ └── excel_exporter.py # Exportación Excel con formato profesional
├── requirements.txt
├── .env.example
└── README.mdHerramientas MCP expuestas
Herramienta | Cuándo usarla |
| Primero — obtén el schema para construir los pasos |
| Diagnóstico de peligros reales en FDA |
| Análisis completo → JSON + Excel |
Instalación local
# 1. Clonar y entrar al directorio
cd vigia-haccp-mcp
# 2. Crear entorno virtual
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 3. Instalar dependencias
pip install -r requirements.txt
# 4. Configurar variables de entorno
cp .env.example .env
# Editar .env si es necesario
# 5. Iniciar el servidor
python server.py
# → Escuchando en http://0.0.0.0:8000/sseConectar a SurfSense
Inicia el servidor:
python server.pyEn SurfSense → Settings → MCP Servers → Add Server
Configura:
Name: VIGÍA HACCP URL: http://localhost:8000/sse Transport: SSEGuarda y verifica que aparezcan las 3 herramientas en el panel de tools.
En producción (Railway / VPS)
URL: https://tu-dominio.railway.app/sseSurfSense puede conectarse a servidores remotos siempre que el endpoint /sse
sea accesible públicamente.
Flujo de uso en SurfSense
Usuario: "Genera el análisis HACCP para jamón cocido rebanado"
↓
SurfSense LLM consulta la knowledge base del cliente
↓
LLM llama: get_process_step_schema() ← conoce el formato
↓
LLM extrae pasos del proceso de la KB
↓
LLM llama: generate_haccp_analysis(
product_name="Jamón cocido rebanado",
process_steps_json="[...]",
focus_areas="Listeria, Salmonella",
fda_product_keyword="cooked ham"
)
↓
Servidor consulta openFDA → detecta peligros
↓
Genera tabla HACCP + guarda Excel
↓
Retorna JSON con análisis completo al usuarioDeploy en Railway
# railway.toml (crear en la raíz)
[build]
builder = "NIXPACKS"
[deploy]
startCommand = "python server.py"
healthcheckPath = "/"Variables de entorno en Railway:
PORT = (Railway lo asigna automáticamente)
HOST = 0.0.0.0
OUTPUT_DIR = /tmp/vigia_outputs
LOG_LEVEL = INFONotas técnicas
Transporte: SSE (Server-Sent Events) — estándar MCP para servidores remotos.
openFDA: Se consultan los últimos 5 años de retiros alimentarios. No requiere API key.
Excel: Se guarda en
OUTPUT_DIR. En Railway, es volátil (/tmp); considera montar un volumen persistente o subir a S3/R2 si necesitas conservar los archivos.PCCs determinados por: temperatura de proceso, nombre de etapa, y peligros confirmados en retiros FDA.
Normativas de referencia: NOM-251-SSA1-2009, NOM-213-SSA1-2018, Codex CAC/RCP 1-1969 Rev.4.