Backtest any trading setup on the S&P 500 vs random days, and see which stocks matched today.
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.
How to write a rule for test_setup and scan_today: the available names, operators and examples.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http trade-manager https://amitblecher10--trade-manager-mcp-web.us-east.modal.run/mcp
How to write a rule for test_setup and scan_today: the available names, operators and examples.
No arguments.
{
"type": "object",
"title": "rule_languageArguments",
"properties": {}
}List the S&P 500 stocks that match a setup at the latest daily close (e.g. "what broke out today on volume"). rule: a formula in Trade Manager's language, e.g. "close > prev_high and volume > volume_avg * 1.5". limit: max stocks to return (default 25). Stocks where the rule just turned true come first, then by volume vs their 20-day average. Uses end-of-day data, not live prices.
| Argument | Type | Description |
|---|---|---|
| rule* | string | |
| limit | integer |
{
"type": "object",
"title": "scan_todayArguments",
"required": [
"rule"
],
"properties": {
"rule": {
"type": "string",
"title": "Rule"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 25
}
}
}Backtest a trading setup on every S&P 500 stock since 2017 and compare it with random days. rule: a formula in Trade Manager's language (see the server instructions), e.g. "rsi < 30". horizon_days: how many trading days after the signal to check (1-60, default 20). Returns how often the stock was higher after the signal vs random days on the same stocks (same year, never the signal's own month) and vs the stock's all-days rate, split by period, plus a plain verdict and recent examples. History, not a prediction.
| Argument | Type | Description |
|---|---|---|
| rule* | string | |
| horizon_days | integer |
{
"type": "object",
"title": "test_setupArguments",
"required": [
"rule"
],
"properties": {
"rule": {
"type": "string",
"title": "Rule"
},
"horizon_days": {
"type": "integer",
"title": "Horizon Days",
"default": 20
}
}
}What happened on the S&P 500 at the latest close: how many stocks rose and fell, how many sit 10%/20% below their 1-year high, and today's matches for fixed scans (5% drops with RSI under 30, breakouts on 2x volume, RSI above 80, 200-day dips in an uptrend, golden crosses, 5% drops), each with its record since 2017 vs random days and, where one exists, a link that opens that exact alert on trademanager.site.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"title": "what_happened_todayArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.