FAIM Time-Series forecasting
Previsão de séries temporais zero-shot com modelos fundamentais de séries temporais
Documentação
Servidor MCP FAIM
Um servidor Model Context Protocol (MCP) que integra o SDK de previsão de séries temporais FAIM com qualquer assistente de IA compatível com MCP, permitindo capacidades de previsão com IA.
Pacote npm: @faim-group/mcp
Visão Geral
Este servidor MCP atualmente expõe dois modelos de séries temporais de base da API FAIM para previsão zero-shot:
- Chronos2
- TiRex
Principais Recursos
✅ Duas Ferramentas MCP:
list_models: Retorna os modelos de previsão disponíveis e suas capacidadesforecast: Realiza previsões de séries temporais pontuais e probabilísticas
✅ Formatos de Entrada Flexíveis:
- Arrays 1D: Série temporal univariada única
- Arrays 3D: formato lote/sequência/recurso
✅ Previsão Probabilística:
- Previsões pontuais (predições de valor único)
- Previsões por quantis (intervalos de confiança)
- Previsões por amostras (amostras de distribuição)
- Níveis de quantis personalizados para avaliação de risco
Instalação
Pré-requisitos
- Node.js 20+
- npm 10+
- Chave da API FAIM: Registre-se em https://faim.it.com/ para obter sua
FAIM_API_KEY
Servidor MCP Remoto — Útil para Ferramentas de Automação de Fluxos de Trabalho como n8n
O servidor MCP é implantado remotamente.
Para usar o servidor MCP remoto, envie solicitações para o seguinte endpoint:
Forneça sua chave da API FAIM usando autenticação Bearer.
Servidor MCP Local
Opção 1: Instalar a partir do npm (Recomendado)
Configure seu cliente para usá-lo diretamente com npx:
{
"mcpServers": {
"faim": {
"command": "npx",
"args": ["-y", "@faim-group/mcp"],
"env": {
"FAIM_API_KEY": "your-api-key-here"
}
}
}
}
Nenhuma instalação necessária — npx baixará e executará automaticamente a versão mais recente.
Alternativamente, se preferir instalar globalmente primeiro:
npm install -g @faim-group/mcp
Depois, na configuração:
{
"mcpServers": {
"faim": {
"command": "faim-mcp",
"env": {
"FAIM_API_KEY": "your-api-key-here"
}
}
}
}
Opção 2: Clonar e 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
Depois, use o caminho local:
{
"mcpServers": {
"faim": {
"command": "node",
"args": ["/path/to/faim-mcp/dist/index.js"],
"env": {
"FAIM_API_KEY": "your-api-key-here"
}
}
}
}
Exemplos
Fluxo de Trabalho n8n — Previsão de Demanda
Um exemplo de fluxo de trabalho n8n para previsão de demanda está disponível em examples/n8n/demand_forecasting.json. Este fluxo de trabalho demonstra como integrar o servidor MCP FAIM com n8n para tarefas automatizadas de previsão de demanda.
Para usar este exemplo:
- Abra o n8n
- Importe o fluxo de trabalho de
n8n_examples/demand_forecasting.json - Configure sua chave da API FAIM nas configurações de conexão MCP
- Execute o fluxo de trabalho com seus dados de séries temporais
Configuração
Variáveis de Ambiente
# 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
Compatibilidade com MCP
Este servidor implementa o Model Context Protocol (MCP), um protocolo aberto para conectar assistentes de IA a ferramentas externas e fontes de dados. Ele funciona com qualquer LLM e aplicação que implemente um cliente MCP.
Uso com Qualquer LLM ou Sistema
Este servidor implementa o protocolo MCP padrão e funciona com qualquer aplicação que implemente um cliente MCP:
- Implementação direta de cliente MCP
- Adaptadores de frameworks de IA que suportam MCP
- Extensões de IDE que expõem ferramentas MCP a qualquer LLM
- Middleware personalizado que traduz entre MCP e o formato de chamada de ferramentas do seu LLM
Uso
Iniciando o Servidor
# Build and start the server
npm run build
node dist/index.js
O servidor irá:
- Ler a chave da API do ambiente
- Inicializar o cliente FAIM
- Ouvir em stdin para solicitações JSON-RPC
- Enviar respostas para stdout
Ferramenta 1: Listar Modelos
Retorna os modelos de previsão disponíveis e suas capacidades.
Solicitação:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}
Resposta:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "list_models",
"description": "...",
"inputSchema": { ... }
},
{
"name": "forecast",
"description": "...",
"inputSchema": { ... }
}
]
}
}
Ferramenta 2: Previsão
Realiza previsões de séries temporais usando modelos FAIM.
Solicitação (Previsão Pontual):
{
"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"
}
}
}
Solicitação (Previsão por Quantis com Intervalos de Confiança):
{
"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]
}
}
}
Resposta:
{
"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]
}
}
}
}
Estrutura do Projeto
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
Testes
O projeto inclui testes abrangentes para:
- Validação de Entrada: Entradas válidas/inválidas, casos extremos, valores de limite
- Tratamento de Erros: Erros do SDK, erros de JavaScript, classificação de erros
- Funcionalidade das Ferramentas: Estrutura de resposta, disponibilidade de modelos
- Segurança de Tipos: Compilação TypeScript, guardas de tipo
Execute os testes:
npm test # Run all tests
npm run test:coverage # Run with coverage report
npm run test:ui # Run with UI dashboard
Depuração
Ative o registro detalhado:
NODE_ENV=development node dist/index.js
A saída vai para stderr (sem interferir no JSON-RPC do stdout).
Compilação e Implantação
Compilar para Produção
npm run build
Saídas:
dist/index.js- Módulo ESMdist/index.cjs- Módulo CommonJSdist/index.d.ts- Declarações de tipos- Mapas de origem para depuração
Lista de Verificação de Implantação
- Defina a variável de ambiente
FAIM_API_KEY - Execute
npm run build - Execute
npm testpara verificar - Implante o diretório
dist/ - Execute
node dist/index.jscomo processo do servidor
Solução de Problemas
"FAIM_API_KEY não definida"
export FAIM_API_KEY="your-key-here"
node dist/index.js
Erros de "Módulo não encontrado"
npm install
npm run build
Servidor não respondendo
- Verifique se stdout/stderr estão conectados corretamente
- Verifique o formato JSON-RPC das solicitações
- Verifique os logs para mensagens de erro
- Garanta que a API FAIM esteja acessível
Licença
MIT