FAIM Time-Series forecasting
Pronóstico de series temporales con cero ejemplos utilizando modelos fundacionales de series temporales
Documentación
Servidor MCP de FAIM
Un servidor de Protocolo de Contexto de Modelo (MCP) que integra el SDK de pronóstico de series temporales de FAIM con cualquier asistente de IA compatible con MCP, habilitando capacidades de pronóstico impulsadas por IA.
Paquete npm: @faim-group/mcp
Descripción general
Este servidor MCP actualmente expone dos modelos de series temporales fundamentales de la API de FAIM para pronóstico de cero disparos:
- Chronos2
- TiRex
Características clave
✅ Dos herramientas MCP:
list_models: Devuelve los modelos de pronóstico disponibles y sus capacidadesforecast: Realiza pronósticos de series temporales puntuales y probabilísticos
✅ Formatos de entrada flexibles:
- Arreglos 1D: Serie temporal univariada única
- Arreglos 3D: Formato lote/secuencia/característica
✅ Pronóstico probabilístico:
- Pronósticos puntuales (predicciones de valor único)
- Pronósticos de cuantiles (intervalos de confianza)
- Pronósticos de muestras (muestras de distribución)
- Niveles de cuantiles personalizados para evaluación de riesgos
Instalación
Requisitos previos
- Node.js 20+
- npm 10+
- Clave de API de FAIM: Regístrese en https://faim.it.com/ para obtener su
FAIM_API_KEY
Servidor MCP remoto — Útil para herramientas de automatización de flujos de trabajo como n8n
El servidor MCP está desplegado de forma remota.
Para usar el servidor MCP remoto, envíe solicitudes al siguiente endpoint:
Proporcione su clave de API de FAIM utilizando autenticación Bearer.
Servidor MCP local
Opción 1: Instalar desde npm (Recomendado)
Configure su cliente para usarlo directamente con npx:
{
"mcpServers": {
"faim": {
"command": "npx",
"args": ["-y", "@faim-group/mcp"],
"env": {
"FAIM_API_KEY": "your-api-key-here"
}
}
}
}
No se requiere instalación: npx descargará y ejecutará automáticamente la versión más reciente.
Alternativamente, si prefiere instalar globalmente primero:
npm install -g @faim-group/mcp
Luego en la configuración:
{
"mcpServers": {
"faim": {
"command": "faim-mcp",
"env": {
"FAIM_API_KEY": "your-api-key-here"
}
}
}
}
Opción 2: Clonar y compilar localmente
# Clone the repository
git clone <repository-url>
cd faim-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Run type checker
npm run lint
Luego use la ruta local:
{
"mcpServers": {
"faim": {
"command": "node",
"args": ["/path/to/faim-mcp/dist/index.js"],
"env": {
"FAIM_API_KEY": "your-api-key-here"
}
}
}
}
Ejemplos
Flujo de trabajo n8n — Pronóstico de demanda
Un flujo de trabajo de ejemplo para n8n de pronóstico de demanda está disponible en examples/n8n/demand_forecasting.json. Este flujo de trabajo demuestra cómo integrar el servidor MCP de FAIM con n8n para tareas automatizadas de pronóstico de demanda.
Para usar este ejemplo:
- Abra n8n
- Importe el flujo de trabajo desde
n8n_examples/demand_forecasting.json - Configure su clave de API de FAIM en la configuración de conexión MCP
- Ejecute el flujo de trabajo con sus datos de series temporales
Configuración
Variables de entorno
# Required: Your FAIM API key
export FAIM_API_KEY="your-api-key-here"
# Optional: Set to non-production for verbose logging
export NODE_ENV=development
Compatibilidad con MCP
Este servidor implementa el Protocolo de Contexto de Modelo (MCP), un protocolo abierto para conectar asistentes de IA a herramientas externas y fuentes de datos. Funciona con cualquier LLM y aplicación que implemente un cliente MCP.
Uso con cualquier LLM o sistema
Este servidor implementa el protocolo MCP estándar y funciona con cualquier aplicación que implemente un cliente MCP:
- Implementación directa de cliente MCP
- Adaptadores de frameworks de IA que soporten MCP
- Extensiones de IDE que expongan herramientas MCP a cualquier LLM
- Middleware personalizado que traduzca entre MCP y el formato de llamada de herramientas de su LLM
Uso
Iniciar el servidor
# Build and start the server
npm run build
node dist/index.js
El servidor:
- Leerá la clave de API del entorno
- Inicializará el cliente de FAIM
- Escuchará en stdin las solicitudes JSON-RPC
- Enviará respuestas a stdout
Herramienta 1: Listar modelos
Devuelve los modelos de pronóstico disponibles y sus capacidades.
Solicitud:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}
Respuesta:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "list_models",
"description": "...",
"inputSchema": { ... }
},
{
"name": "forecast",
"description": "...",
"inputSchema": { ... }
}
]
}
}
Herramienta 2: Pronóstico
Realiza pronósticos de series temporales utilizando los modelos de FAIM.
Solicitud (Pronóstico puntual):
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "forecast",
"arguments": {
"model": "chronos2",
"x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"horizon": 10,
"output_type": "point"
}
}
}
Solicitud (Pronóstico de cuantiles con intervalos de confianza):
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "forecast",
"arguments": {
"model": "chronos2",
"x": [[[100, 50], [102, 51], [105, 52]]],
"horizon": 5,
"output_type": "quantiles",
"quantiles": [0.1, 0.5, 0.9]
}
}
}
Respuesta:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"success": true,
"data": {
"model_name": "chronos2",
"model_version": "1.0",
"output_type": "point",
"forecast": {
"point": [[[11], [12], [13], ...]]
},
"metadata": {
"token_count": 150,
"duration_ms": 245
},
"shape_info": {
"input_shape": [1, 10, 1],
"output_shape": [1, 10, 1]
}
}
}
}
Estructura del proyecto
faim-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── types.ts # TypeScript interfaces
│ ├── tools/
│ │ ├── list-models.ts # List models tool
│ │ └── forecast.ts # Forecasting tool
│ └── utils/
│ ├── client.ts # FAIM client singleton
│ ├── validation.ts # Input validation
│ └── errors.ts # Error transformation
├── tests/
│ ├── tools/
│ │ ├── list-models.test.ts
│ │ └── forecast.test.ts
│ └── utils/
│ ├── validation.test.ts
│ └── errors.test.ts
├── dist/ # Built output
│ ├── index.js # ESM bundle
│ ├── index.cjs # CommonJS bundle
│ ├── index.d.ts # Type declarations
│ └── *.map # Source maps
└── package.json, tsconfig.json, tsup.config.ts, vitest.config.ts
Pruebas
El proyecto incluye pruebas integrales para:
- Validación de entrada: Entradas válidas/inválidas, casos límite, valores frontera
- Manejo de errores: Errores del SDK, errores de JavaScript, clasificación de errores
- Funcionalidad de herramientas: Estructura de respuesta, disponibilidad de modelos
- Seguridad de tipos: Compilación de TypeScript, guardas de tipos
Ejecutar pruebas:
npm test # Run all tests
npm run test:coverage # Run with coverage report
npm run test:ui # Run with UI dashboard
Depuración
Habilite el registro detallado:
NODE_ENV=development node dist/index.js
La salida va a stderr (sin interferir con el JSON-RPC de stdout).
Compilación y despliegue
Compilar para producción
npm run build
Salidas:
dist/index.js- Módulo ESMdist/index.cjs- Módulo CommonJSdist/index.d.ts- Declaraciones de tipos- Mapas de origen para depuración
Lista de verificación de despliegue
- Establezca la variable de entorno
FAIM_API_KEY - Ejecute
npm run build - Ejecute
npm testpara verificar - Despliegue el directorio
dist/ - Ejecute
node dist/index.jscomo proceso del servidor
Solución de problemas
"FAIM_API_KEY no establecida"
export FAIM_API_KEY="your-key-here"
node dist/index.js
Errores de "Módulo no encontrado"
npm install
npm run build
El servidor no responde
- Verifique que stdout/stderr estén correctamente conectados
- Verifique el formato JSON-RPC de las solicitudes
- Revise los registros para ver mensajes de error
- Asegúrese de que la API de FAIM sea accesible
Licencia
MIT