
Performance, risk, comparisons, backtests and screening for US stocks and ETFs, with charts.
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.
Use this when the user describes a portfolio of US stocks and ETFs with weights (e.g. "60% VTI, 40% BND", "equal parts AAPL, MSFT, NVDA") and wants to know how it would have done or how risky it is: returns over YTD, 1 year and 5 years (rebalanced quarterly), max drawdown, Sharpe, beta vs SPY and the correlation between holdings, charted against SPY. 2 to 20 holdings. Not for live brokerage accounts, trading or allocation advice.
Use this when the user describes a portfolio of US stocks and ETFs with weights (e.g. "60% VTI, 40% BND", "equal parts AAPL, MSFT, NVDA") and wants to know how it would have done or how risky it is: returns over YTD, 1 year and 5 years (rebalanced quarterly), max drawdown, Sharpe, beta vs SPY and the correlation between holdings, charted against SPY. 2 to 20 holdings. Not for live brokerage accounts, trading or allocation advice.
| Argument | Type | Description |
|---|---|---|
| positions* | array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"positions"
],
"properties": {
"positions": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker",
"weight"
],
"properties": {
"ticker": {
"type": "string",
"maxLength": 12,
"minLength": 1,
"description": "US ticker symbol, e.g. AAPL, VOO or BRK.B"
},
"weight": {
"type": "number",
"description": "Relative weight, e.g. 60 for 60%. Weights are rescaled to sum to 100%, so equal weights can all be 1",
"exclusiveMinimum": 0
}
}
},
"maxItems": 20,
"minItems": 2
}
}
}Use this when the user wants to compare 2 to 5 US stocks or ETFs side by side (e.g. "VOO vs QQQ", "SCHD or VYM?"): returns, drawdown, Sharpe, beta and how correlated they are, with an overlaid 1Y/5Y chart. End-of-day data for US large and mid caps, major foreign stocks and US ETFs. Not for intraday quotes or recommendations on what to buy.
| Argument | Type | Description |
|---|---|---|
| tickers* | array | Tickers to compare, in the order the user named them |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tickers"
],
"properties": {
"tickers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 12,
"minLength": 1,
"description": "US ticker symbol, e.g. AAPL, VOO or BRK.B"
},
"maxItems": 5,
"minItems": 2,
"description": "Tickers to compare, in the order the user named them"
}
}
}Use this when the user asks how a single US stock or ETF has performed or how risky it is: YTD, 1-year and 5-year annualized returns, max drawdown, Sharpe, Sortino, beta and alpha, with a 1Y/5Y chart. End-of-day data for US large and mid caps, major foreign stocks and US ETFs. Not for intraday quotes, news, earnings, fundamentals or price targets.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | US ticker symbol, e.g. AAPL, VOO or BRK.B |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"maxLength": 12,
"minLength": 1,
"description": "US ticker symbol, e.g. AAPL, VOO or BRK.B"
}
}
}Use this when the user wants a ranked list of US stocks or ETFs by a performance or risk metric, optionally within a sector or ETF category (e.g. "lowest volatility dividend ETFs", "highest Sharpe tech stocks this year", "energy stocks with the smallest drawdown"). Covers about 2,000 US-listed stocks and about 670 US ETFs, end-of-day. Not for fundamentals (P/E, revenue), news or buy recommendations.
| Argument | Type | Description |
|---|---|---|
| type | string | Limit to stocks, ETFs, or both |
| limit | integer | |
| order | string | |
| sector | string | Case-insensitive match on a stock's GICS sector (e.g. Information Technology, Health Care, Energy, Financials) or an ETF's category (e.g. Dividend, Bonds, Treasury, Large Cap Growth, Emerging Markets, Gold) |
| sortBy | string | Metric to rank by. For lowest risk, sort maxDrawdown1yPct descending (closest to 0) or beta1y ascending |
| filters | array | Optional bounds in each metric's own units, e.g. {metric: 'beta1y', max: 1}. maxDrawdown1yPct is negative, so a drawdown smaller than 20% is {metric: 'maxDrawdown1yPct', min: -20} |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"stock",
"etf",
"all"
],
"type": "string",
"default": "all",
"description": "Limit to stocks, ETFs, or both"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"order": {
"enum": [
"desc",
"asc"
],
"type": "string",
"default": "desc"
},
"sector": {
"type": "string",
"maxLength": 40,
"description": "Case-insensitive match on a stock's GICS sector (e.g. Information Technology, Health Care, Energy, Financials) or an ETF's category (e.g. Dividend, Bonds, Treasury, Large Cap Growth, Emerging Markets, Gold)"
},
"sortBy": {
"enum": [
"return1dPct",
"returnYtdPct",
"return1yPct",
"return5yAnnualizedPct",
"maxDrawdown1yPct",
"sharpe1y",
"sortino1y",
"beta1y",
"alpha1yPct"
],
"type": "string",
"default": "return1yPct",
"description": "Metric to rank by. For lowest risk, sort maxDrawdown1yPct descending (closest to 0) or beta1y ascending"
},
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"metric": {
"enum": [
"return1dPct",
"returnYtdPct",
"return1yPct",
"return5yAnnualizedPct",
"maxDrawdown1yPct",
"sharpe1y",
"sortino1y",
"beta1y",
"alpha1yPct"
],
"type": "string"
}
}
},
"maxItems": 5,
"description": "Optional bounds in each metric's own units, e.g. {metric: 'beta1y', max: 1}. maxDrawdown1yPct is negative, so a drawdown smaller than 20% is {metric: 'maxDrawdown1yPct', min: -20}"
}
}
}