Today's Zensei Index: a 0-100 US market risk score, its ten indicators and the latest summary.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
What the Zensei Index is, how to read the score, how it is built, and what this server serves (free and Premium). Same wording as the website FAQ. Call it once before interpreting any score.
This tool takes no arguments.
Tool list last changed Oct 25, 2026.
What the Zensei Index is, how to read the score, how it is built, and what this server serves (free and Premium). Same wording as the website FAQ. Call it once before interpreting any score.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Daily Zensei Index scores for the last `days` calendar days, with the regime of each day. Free access covers the last 31 days; Premium covers up to 3650 days. The Zensei Index is a RISK score from 0 to 100: LOWER IS HEALTHIER. 0-20 Supportive, 20-40 Vulnerable, 40-70 Stressed, 70-100 Restrictive. A rising score means conditions are deteriorating, not improving.
| Argument | Type | Description |
|---|---|---|
| days | integer | Calendar days to look back. Default 30, max 3650. |
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "integer",
"title": "between(1, 3650)",
"maximum": 3650,
"minimum": 1,
"description": "Calendar days to look back. Default 30, max 3650."
}
},
"additionalProperties": false
}The ten indicators behind today's Zensei Index, each with its current status, the layer it scores into, its weight in that layer, and the same explanation the website shows. Use it to explain why the index sits where it does. Indicator statuses run from healthiest to most stressed: Clear or Inactive (no stress), Watch (early warning), Stress (confirmed stress), Activated or Danger (full signal). Calibrating means not enough data yet; Unknown means no data.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The latest written summary of the Zensei Index, with the score and regime it was written for. A summary is rewritten only when the indicators change. Check `stale` and `ageDays` before quoting it as today's view, and prefer zensei_index_today for the current number. The Zensei Index is a RISK score from 0 to 100: LOWER IS HEALTHIER. 0-20 Supportive, 20-40 Vulnerable, 40-70 Stressed, 70-100 Restrictive. A rising score means conditions are deteriorating, not improving.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Today's Zensei Index for U.S. equities: the final score, its regime label, and the three layer scores (structural conditions, tactical filters, regime confirmations). The Zensei Index is a RISK score from 0 to 100: LOWER IS HEALTHIER. 0-20 Supportive, 20-40 Vulnerable, 40-70 Stressed, 70-100 Restrictive. A rising score means conditions are deteriorating, not improving. Call zensei_index_indicators to see why the score sits where it does.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The signed-in user's saved symbols on Zensei, with the sector each one is pinned to. Reads the "Favorites" list unless `list` names another. Needs a Zensei account; custom lists are a Premium feature. Pass each symbol to zensei_stock_detail or zensei_sector_detail for figures.
| Argument | Type | Description |
|---|---|---|
| list | string | List name. Default "Favorites". |
{
"type": "object",
"required": [],
"properties": {
"list": {
"type": "string",
"title": "maxLength(60)",
"pattern": "^\\S[\\s\\S]*\\S$|^\\S$|^$",
"maxLength": 60,
"minLength": 1,
"description": "List name. Default \"Favorites\"."
}
},
"additionalProperties": false
}Find sector ETFs and stocks tracked by Zensei by ticker or name. Returns each stock with the sector ETFs that hold it, largest weight first. Needs Zensei Premium.
| Argument | Type | Description |
|---|---|---|
| query* | string | Ticker or name, e.g. 'uranium' or 'NVDA'. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "maxLength(60)",
"pattern": "^\\S[\\s\\S]*\\S$|^\\S$|^$",
"maxLength": 60,
"minLength": 1,
"description": "Ticker or name, e.g. 'uranium' or 'NVDA'."
}
},
"additionalProperties": false
}One sector ETF in depth: its quadrant, momentum and returns vs SPY, valuation, and its largest holdings (up to 25). For each holding: weight, quadrant against the sector ETF (not against SPY), momentum, 1-month change and the gap to the sector. The 11 broad S&P 500 sectors (XLK, XLF, XLV, XLE, XLI, XLY, XLP, XLU, XLB, XLRE, XLC) are free; every other sector needs Premium. Get symbols from zensei_sectors_scan.
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Sector ETF ticker, e.g. XLK or URA. |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"allOf": [
{
"pattern": "^\\S[\\s\\S]*\\S$|^\\S$|^$"
}
],
"title": "maxLength(12)",
"pattern": "^[A-Za-z0-9.\\-]+$",
"maxLength": 12,
"minLength": 1,
"description": "Sector ETF ticker, e.g. XLK or URA."
}
},
"additionalProperties": false
}How each sector ETF performs against the S&P 500 (SPY), placed in four quadrants by its 3-month (X) and 1-month (Y) change vs SPY: Outperformers (ahead on both), Emerging (behind over 3 months, ahead over 1 month), Cooling (ahead over 3 months, behind over 1 month) and Underperformers (behind on both). Also gives short-term momentum, relative-strength trend and returns over 1w to 1y. Free access covers the 11 broad S&P 500 sectors; Premium adds 104 thematic and industry sectors. Use zensei_sector_detail for one sector's holdings.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}How one stock performs against a sector ETF that holds it (its 'lens'): returns over 1w to 1y and the gap to the sector, relative-strength trend, valuation, next earnings date, and every tracked sector that holds it with its quadrant there. Without `sector`, the free tier uses a broad S&P 500 sector that holds the stock and Premium uses its largest-weight sector.
| Argument | Type | Description |
|---|---|---|
| sector | string | Sector ETF to compare against, e.g. SMH. |
| symbol* | string | Stock ticker, e.g. NVDA. |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"sector": {
"type": "string",
"allOf": [
{
"pattern": "^\\S[\\s\\S]*\\S$|^\\S$|^$"
}
],
"title": "maxLength(12)",
"pattern": "^[A-Za-z0-9.\\-]+$",
"maxLength": 12,
"minLength": 1,
"description": "Sector ETF to compare against, e.g. SMH."
},
"symbol": {
"type": "string",
"allOf": [
{
"pattern": "^\\S[\\s\\S]*\\S$|^\\S$|^$"
}
],
"title": "maxLength(12)",
"pattern": "^[A-Za-z0-9.\\-]+$",
"maxLength": 12,
"minLength": 1,
"description": "Stock ticker, e.g. NVDA."
}
},
"additionalProperties": false
}Used by the Zensei Index view to draw the ten indicator charts inside the view. Not for direct use: call zensei_index_indicators instead.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Used by the Zensei sector map view to open one sector's holdings inside the view. Not for direct use: call zensei_sector_detail instead.
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Sector ETF ticker, e.g. XLK. |
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"allOf": [
{
"pattern": "^\\S[\\s\\S]*\\S$|^\\S$|^$"
}
],
"title": "maxLength(12)",
"pattern": "^[A-Za-z0-9.\\-]+$",
"maxLength": 12,
"minLength": 1,
"description": "Sector ETF ticker, e.g. XLK."
}
},
"additionalProperties": false
}