mcpField
P
Predictalot

Predictalot

Local
github.com/psyb0tData & Analytics3Updated 1w ago

About Predictalot

Predictalot is a self-hosted HTTP service for time-series forecasting and tabular machine learning, aimed at API and agent users. It combines zero-shot foundation-model forecasts with persistent supervised models, and exposes time-series tools through MCP.

Key features

  1. 015 zero-shot time-series forecasting models
  2. 026 time-series forecast endpoint types
  3. 039 supervised learners and 3 meta-learners
  4. 04Persistent tabular models keyed by modelId
  5. 05Unload foundation-model weights and caches

Use cases

  1. 01Generate quantile or sample-path forecasts
  2. 02Train and query tabular models on engineered features
  3. 03Call time-series models from MCP clients
  4. 04Release resources held by resident models

MCP support

The `/mcp` endpoint provides Streamable HTTP tools for each foundation-model type and model cell, ensembles, and model listing. Tabular endpoints are currently HTTP-only.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"psyb0t-predictalot": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/psyb0t/predictalot:v1.2.2"
]
}
}
}
Run commanddocker run -i --rm docker.io/psyb0t/predictalot:v1.2.2

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocidocker.io/psyb0t/predictalot:v1.2.2

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

predictalot

CI version license Docker Pulls

One HTTP service, two model families, zero ceremony.

  • Foundation time-series — 5 zero-shot forecasters (chronos-2, timesfm-2.5, moirai-2, toto-1, sundial-base-128m). Hand them a context window, get quantile or sample-path forecasts. No training step. Six modality-specific endpoints under /v1/timeseries/<type>/.
  • Model lifecycle — POST /v1/models/unload releases all resident foundation-model weights and runtime caches. A forecast body with "unload": true schedules its model for teardown after concurrent forecasts using that model finish.
  • Tabular ML — 9 supervised learners (lightgbm, xgboost, hist-gbt, random-forest, logistic, mlp, svm-rbf, knn, naive-bayes) + 3 meta-learners (calibrated, stacking, diversified). Train on YOUR engineered features, persist server-side by modelId, forecast on the latest snapshot. Under /v1/tabular/.
  • MCP — streamable-HTTP tools at /mcp. One named tool per (FM type, model) cell plus per-type ensemble + listing. Tabular endpoints are HTTP-only for now.

Quick start

docker run -d --name predictalot \
  -v $HOME/predictalot-models:/models \
  -e PREDICTALOT_AUTH_TOKENS=changeme \
  -p 8080:8080 \
  psyb0t/predictalot:latest

# Zero-shot FM forecast
curl -s http://localhost:8080/v1/timeseries/univariate/forecast \
  -H "Authorization: Bearer changeme" -H "Content-Type: application/json" \
  -d '{"model":"chronos-2","context":[[10,11,12,13,14,15,16,17,18,19,20]],"config":{"horizon":5}}' | jq

# Train + persist a tabular model on your own features
curl -s http://localhost:8080/v1/tabular/train \
  -H "Authorization: Bearer changeme" -H "Content-Type: application/json" \
  -d '{"modelId":"my-model","backend":"lightgbm","target":[[100,101,99,...]],
       "features":[{"rsi":[55,58,...],"macd":[0.3,0.4,...]}],
       "config":{"mode":"direction","horizon":3,"nEstimators":400}}' | jq

# Then forecast on the latest snapshot
curl -s http://localhost:8080/v1/tabular/forecast \
  -H "Authorization: Bearer changeme" -H "Content-Type: application/json" \
  -d '{"modelId":"my-model","features":[{"rsi":[58],"macd":[0.4]}]}' | jq

# Release all resident foundation-model memory when it is no longer needed
curl -s -X POST http://localhost:8080/v1/models/unload \
  -H "Authorization: Bearer changeme" | jq

Documentation

DocWhat it covers
docs/timeseries.mdFoundation time-series API. All 5 models (capabilities + per-model quirks + what each is recommended for), all 6 forecast types, per-type ensemble with weights + memberOverrides, extra per-call hatch, /models listings.
docs/tabular.mdTabular ML API. All 9 backends (what each is recommended for), 3 modes (direction / value / quantile), tier-1/2/3 config knobs, the 3 meta-learners (calibrated / stacking / diversified), storage layout.
docs/mcp.mdMCP streamable-HTTP server: tool naming, args, current scope (FM only).
docs/configuration.mdEvery PREDICTALOT_* env var.
docs/architecture.mdMulti-venv sidecar pattern for sundial, CPU vs CUDA images, multi-stage build.
docs/accuracy.mdBenchmark sMAPE + latency on academic + real-world datasets. Honest takeaways including which models lose.
docs/errors.mdError contract: 400 / 401 / 404 / 413 / 422 / 503 shapes.

CHANGELOG.md tracks per-version changes.

Agent integrations

The skill works in any agent that reads .agents/skills/ (such as peen), and installs natively in the clients below.

Claude Code
claude plugin marketplace add psyb0t/agents
claude plugin install predictalot@psyb0t

Claude Code prompts for the predictalot URL and, if auth is enabled, the token — the token is stored in your OS keychain.

Codex
codex plugin marketplace add psyb0t/agents
codex plugin add predictalot@psyb0t

Installed via the marketplace, the skill invokes as $predictalot:predictalot. Codex also picks the skill up automatically, with no install, in any repo containing .agents/skills/ — there it invokes as plain $predictalot.

OpenClaw

The skill is published to ClawHub on every release:

openclaw skills install @psyb0t/predictalot

For MCP clients that speak local stdio, the @psyb0t/predictalot plugin bridges to predictalot's /mcp endpoint:

openclaw plugins install clawhub:@psyb0t/predictalot

Then set PREDICTALOT_URL (and PREDICTALOT_AUTH_TOKENS if the server requires one).

License

Code: WTFPL (see LICENSE). The MCP plugin under .agents/plugins/predictalot/ is MIT (its own LICENSE). Foundation models retain their upstream licenses — chronos-2 / timesfm-2.5 / toto-1 / sundial-base-128m: Apache 2.0; moirai-2: CC-BY-NC-4.0 (non-commercial). Tabular backends use their upstream licenses — lightgbm / xgboost / scikit-learn: permissive. Review each before commercial use.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.