
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
kronos-mcp
Advanced tools
Stock price forecasting for your AI agent — China A-shares.
An MCP server wrapping Kronos, a K-line time-series model. Ask it for a symbol, get the next N daily candles predicted: open / high / low / close / volume.
Coverage is China A-shares only. Verified 2026-09-10:
AAPL,AAPL.US,NASDAQ:AAPL,00700and0700.HKall return 404 — the upstream has no K-line data for them. This is a data limitation, not a symbol-format issue.
| Tool | What it does |
|---|---|
kronos_health() | Check the service is reachable and your key works. Call this first when something fails. |
kronos_predict(symbol, pred_len) | Predict the next pred_len daily candles (1–30, default 10) |
kronos_predict also returns expected_return — last predicted close over last
real close, minus one. That ratio is the number most people actually want.
You need an API key first — see below.
Add to claude_desktop_config.json:
{
"mcpServers": {
"kronos": {
"command": "uvx",
"args": ["kronos-mcp"],
"env": { "KRONOS_API_KEY": "oapk_xxx" }
}
}
}
# no install needed
KRONOS_API_KEY=oapk_xxx uvx kronos-mcp
# or install it
pip install kronos-mcp
KRONOS_API_KEY=oapk_xxx kronos-mcp
This server has no keyless mode, and cannot have one — the upstream returns 401 without a key.
The reason is cost, not gatekeeping: Kronos runs on our own GPUs and a single inference takes 30–70 seconds. Open anonymous access would let a handful of loops saturate the service, with no way to tell who is doing it.
Get one:
oapk_… key — it is shown onceKRONOS_API_KEYApproval usually lands within hours on a business day. Free, with a default quota of 1000 calls per key.
If the key is missing, this server does not return sample data or a fake success. It returns an error that tells you exactly where to get a key.
| Variable | Default | Notes |
|---|---|---|
KRONOS_API_KEY | — | Required. oapk_ key of type KRONOS |
KRONOS_URL | https://kronos.agentpit.io | Point this at your own deployment if you self-host |
KRONOS_TIMEOUT | 180 | Seconds. GPU inference is 30–70s — don't set this tight |
KRONOS_MCP_TRANSPORT | stdio | stdio | streamable-http | sse |
KRONOS_MCP_HOST / KRONOS_MCP_PORT | 0.0.0.0 / 8932 | Remote transports only |
stdio is what Claude Desktop, Cursor and uvx use. Run a remote transport
only if you want one long-running server serving several clients — and note the
MCP spec marks SSE as deprecated, so prefer streamable-http for new setups.
Every call takes 30–70 seconds. That is the GPU, not a hang. Don't retry because it feels slow, and don't loop it over dozens of symbols — upstream takes one symbol per request.
This is a statistical extrapolation, not investment advice. The model reads price history and nothing else: no news, no halts, no earnings dates. It will drift badly in unusual conditions. Treat the output as one input among many.
| Error | Meaning |
|---|---|
missing_api_key | KRONOS_API_KEY not set — see API key |
invalid_api_key (401) | Key wrong, incomplete or revoked. Revocation takes up to 5 min to propagate |
wrong_key_type (403) | Key is valid but isn't a KRONOS key — you may have applied for KPRED or FIN_R1 |
symbol_not_found (404) | Use 600519 or 600519.SH. A-shares only — US and HK tickers land here |
rate_limited (429) | Per-IP cap on invalid keys, or your quota is exhausted |
upstream_down (502/504) | GPU service restarting. If it lasts more than a few minutes, please open an issue |
Apache-2.0.
FAQs
MCP server for Kronos stock price forecasting — China A-shares
We found that kronos-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.