Rays
FreeNot checkedExposes global market breadth, volume, RSI, volatility, and sentiment for 12 major equity indices (US + Asia) via 5 tools.
About
Exposes global market breadth, volume, RSI, volatility, and sentiment for 12 major equity indices (US + Asia) via 5 tools.
README
An MCP server exposing global market breadth, volume, RSI, volatility and sentiment for 12 major equity indices (US + Asia: S&P 500, Nasdaq 100, SOX, Russell 2000, Hang Seng, CSI 300/1000, ChiNext, Nikkei 225, Topix, Taiwan, KOSPI 200).
Companion to asian-etf-mcp; same two-layer design (data layer + thin FastMCP wrapper), same cache + refresh-on-use model.
Tools
| tool | returns |
|---|---|
list_indices |
the 12 indices + tickers (call first) |
get_breadth |
% of constituents above 50/200-day MA, % above/below both, advancers/decliners |
get_volume |
real trading volume (constituent-aggregated) vs 20-day average + deviation |
get_rsi |
RSI(14) per index + overbought/oversold signal |
get_volatility_sentiment |
VIX (+ >30 alert), GLD/VIX momentum, AAII bull/neutral/bear survey |
Every result carries source (with as_of + computed_at).
How it works
src/server.py FastMCP wrapper (5 tools)
src/data_access.py reads cache.json; refresh-on-use keeps it current
build_cache.py assembles cache.json from 3 sources:
configs/indices.json index definitions (committed)
cache.json is assembled from:
breadth_cache.json— breadth / advance-decline / real volume. The heavy constituent aggregation (Topix ≈ 1,574 stocks!) is precomputed daily on the rays server, so the MCP reads it rather than recomputing.- yfinance — RSI(14, Wilder), VIX, GLD/VIX momentum (computed live).
aaii_sentiment.xls— the weekly AAII investor sentiment survey.
When a tool is called and the cache is behind the latest trading day, the server
rebuilds it first (sync_data.sh + build_cache.py) — no cron needed.
Quick start
python3.10+ -m venv .venv
./.venv/bin/pip install -r requirements.txt
./.venv/bin/python build_cache.py # assemble the cache
Use with Claude Code
claude mcp add rays -- /abs/path/.venv/bin/python /abs/path/src/server.py
Then ask, e.g. “use rays — which markets have the broadest participation and is the VIX elevated?”
Data access note
The breadth/volume layer is computed on the maintainer's rays server (constituent
aggregation across thousands of stocks is too heavy to recompute on demand).
sync_data.sh pulls that precomputed file via SSH. The RSI / VIX / GLD layer is
fetched from public Yahoo Finance, so it works anywhere; AAII comes from the synced
weekly file. To run fully standalone, supply a data/breadth_cache.json produced by
the rays-dashboard pipeline.
Configuration
| env var | default | meaning |
|---|---|---|
RAYS_CONFIG |
./configs/indices.json |
index definitions (committed) |
RAYS_DATA_DIR |
./data |
synced/generated data (gitignored) |
RAYS_SERVER |
[email protected] |
rays server for sync_data.sh |
Installing Rays
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/ivyyy0601/alert-mcpFAQ
Is Rays MCP free?
Yes, Rays MCP is free — one-click install via Unyly at no cost.
Does Rays need an API key?
No, Rays runs without API keys or environment variables.
Is Rays hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Rays in Claude Desktop, Claude Code or Cursor?
Open Rays on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Rays with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
