Self-hosted forecasting + prediction service. Five zero-shot time-series foundation models (Chronos-2, TimesFM 2.5, Moirai-2, Toto-1, Sundial) across six forecast types, plus nine supervised tabular ML backends (LightGBM, XGBoost, sklearn family) with calibrated / stacking / diversified meta-learners. Unified REST API + MCP server.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution ×10 in psyb0t/docker-predictalot
- HIGH code analysis flagged dynamic code execution ×10 in psyb0t/docker-predictalot
- HIGH code analysis flagged dynamic code execution ×10 in psyb0t/docker-predictalot
transport streamable-http · http
verified
reported
listed in the official MCP registry counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 0c60033 · analyzer v33 · 6d ago
skills & prompt files 1
danger signals10
- dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/hist_gbt_be.py :163
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/knn_be.py :97
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/lightgbm_be.py :143
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/logistic_be.py :132
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/mlp_be.py :143
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/naive_bayes_be.py :99
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/random_forest_be.py :119
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/svm_rbf_be.py :113
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/models/xgboost_be.py :165
payload = pickle.loads(blob) - dynamic code execution pickle.loads() psyb0t-docker-predictalot-0c60033/src/predictalot/routers/tabular_meta.py :739
payload = pickle.loads(blob)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 83
filesystem 7
- fs psyb0t-docker-predictalot-0c60033/src/predictalot/auth.py :4
Empty list = open (refused at startup unless PREDICTALOT_ALLOW_NO_AUTH=1). - fs psyb0t-docker-predictalot-0c60033/src/predictalot/config.py :10
from pathlib import Path - fs psyb0t-docker-predictalot-0c60033/src/predictalot/models/timesfm25.py :70
from pathlib import Path - fs psyb0t-docker-predictalot-0c60033/src/predictalot/storage.py :16
from pathlib import Path - fs psyb0t-docker-predictalot-0c60033/src/predictalot/tabular_storage.py :20
from pathlib import Path - fs (weak) psyb0t-docker-predictalot-0c60033/tests/integration/conftest.py :20
from pathlib import Path - fs (weak) psyb0t-docker-predictalot-0c60033/tests/test_storage.py :3
from pathlib import Path
shell / exec 1
- shell (weak) psyb0t-docker-predictalot-0c60033/tests/integration/conftest.py :17
import subprocess
network 8
- net psyb0t-docker-predictalot-0c60033/benchs/run.py :22
import urllib.request - net psyb0t-docker-predictalot-0c60033/src/predictalot/mcp_server.py :26
import urllib.parse - net psyb0t-docker-predictalot-0c60033/src/predictalot/models/sundial.py :20
import httpx - net (weak) psyb0t-docker-predictalot-0c60033/tests/integration/conftest.py :16
import socket - net (weak) psyb0t-docker-predictalot-0c60033/tests/integration/test_fm_extra_live.py :12
import httpx - net (weak) psyb0t-docker-predictalot-0c60033/tests/integration/test_forecast_live.py :16
import httpx - net (weak) psyb0t-docker-predictalot-0c60033/tests/integration/test_tabular_live.py :14
import httpx - net (weak) psyb0t-docker-predictalot-0c60033/tests/integration/test_tabular_meta_live.py :10
import httpx
secrets 1
- secrets psyb0t-docker-predictalot-0c60033/benchs/run.py :28
TOKEN = os.environ.get("PREDICTALOT_BENCH_TOKEN", "devtok")
declared dependencies 6
- mcp@==1.27.1
- fastapi@==0.136.1
- uvicorn@==0.47.0
- pydantic@==2.13.4
- huggingface-hub@==0.36.2
- numpy@==1.26.4