Your AI agent can't see the future. So I built the one tool that lets it forecast with real numbers: point predictions, confidence bands, and backtests that an agent can call from any MCP client.
The Problem
Ask an agent to forecast next quarter's MRR and it may answer confidently with a rounded guess: trending up, maybe around $35K. The problem is not the language. The problem is that there is no forecasting model, no confidence band, and no way to check whether the number should be trusted.
LLMs reason brilliantly. Left alone, they guess at numbers, confidently and often wrong. Forecasting needs a tool boundary.
What You Get
timesfm-mcp gives an agent three zero-config tools. forecast returns point predictions, 90% confidence bands, and a trend and seasonality read. backtest holds out real data and reports MAE and sMAPE, giving proof before the forecast is trusted. list_backends shows which engine is live: the pure NumPy baseline or Google TimesFM 2.5.
The server returns the data. The agent writes the recommendation itself.
Setup
$ uvx timesfm-mcp
// add to your agent config
{
"mcpServers": {
"forecast": {
"command": "uvx",
"args": ["timesfm-mcp"]
}
}
}The pure NumPy baseline runs instantly: no GPU, no model download, no special hardware. TimesFM 2.5 is available as an optional upgrade.
Real Example
Give the agent 24 months of SaaS MRR and ask it to forecast the next 6 months with a 90% band. The agent calls forecast(values=[...], horizon=6, quantiles=[0.9]) and receives a structured read: rising 3.3% month over month, seasonality detected, low volatility, and tight confidence bands.
Backtested Before You Trust It
The example backtest held out data the model had never seen and returned a 2.3% average error. Month +1 actual was $24,100 against a $24,495 prediction. Month +3 actual was $24,800 against $25,790. Month +6 actual was $26,800 against $26,685. The result: MAE of $588 and sMAPE of 2.3%.
Try It
$ uvx timesfm-mcpPoint forecasts, confidence bands, and built-in backtests are available through one MCP server. The baseline always works; TimesFM 2.5 is optional.