MCP server for FAIM forecasting SDK - Enables Claude to perform time series forecasting using Chronos2 and TiRex models
The FAIM MCP server demonstrates good-quality tool definitions with comprehensive parameter descriptions and clear naming. Both tools are properly registered with explicit Zod schemas. The forecast tool has exceptionally detailed parameter documentation with usage guidance. However, output schemas are not formally documented, and error handling lacks structured guidance. The server avoids the most critical failures (missing descriptions, incomplete schemas) but falls short of A-grade excellence.
Perform time series forecasting using FAIM platform. Supports both point forecasting (single value) and probabilistic forecasting (confidence intervals). Can handle univariate and multivariate time series data. Currently supported models: Chronos2 (default, recommended for multivariate) and TiRex (fast, univariate only).
List all available forecasting models and their capabilities. Returns information about Chronos2, TiRex, and other available models, including supported output types and features.
Output schemas not formally documented. The list_models and forecast tools return structured responses but lack explicit JSON Schema definitions visible to LLMs. LLMs cannot reliably plan downstream operations or extract specific fields without seeing return type schemas.
Error handling lacks recovery guidance. Tool handlers throw generic Error objects without categorizing failures (retryable vs user-fixable vs fatal) or providing actionable next steps. Example: if forecast fails due to invalid input, the LLM receives no guidance on how to self-correct.
The 'x' parameter (time series data) uses z.any() instead of a properly typed schema. While the description is extensive, the schema does not enforce array type validation at the protocol level. LLMs could pass invalid types (strings, objects) and discover the error only at runtime.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 9 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
Parameter dependencies are documented in text but not enforced by schema. The 'is_multivariate' param is described as 'For 2D input arrays only with Chronos2' and 'quantiles' is conditional on output_type='quantiles'. LLMs may provide invalid combinations; the tool must validate and return clear errors.
No explicit pagination or result limiting documented. If list_models returns a large number of models, there is no mechanism for pagination or a cap on returned items. For consistency with agentic best practices, large result sets should include page/offset parameters and total counts.
Response shaping not visible in tool definitions. The handlers return responses via MCP's content array (text field), but the structure of the returned JSON objects is not formally documented, making it difficult for LLMs to plan chained operations.