Money Mind — the judge
Statistical adjudication for agents: backtest judges, fact-checks.
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
Statistical adjudication for agents: backtest judges, fact-checks. Pay per call in USDC via x402.
How to connect
How to connect Money Mind — the judge to Claude
The server address to paste into Claude settings:
https://money-mind-extract.onrender.com/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Money Mind — the judge to ChatGPT
The server address to paste into ChatGPT settings:
https://money-mind-extract.onrender.com/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Money Mind — the judge to Cursor
The server address to paste into Cursor settings:
https://money-mind-extract.onrender.com/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (17)
Raw names from tools/list. Only developers need these.
| check_price_data | FREE, no payment or account. Audits OHLC bars for the defects that silently invalidate a backtest. Free and indicative feeds often SYNTHESISE the bar's open instead of observing it, which pins |open-close|/range near zero — measured on the same FX pairs, a free feed reads 0.020 against a real broker's 0.464. Anything depending on the open (gap trades, overnight holds, next-bar entries) is invalid on such data. Also detects frozen zero-range bars, duplicate and out-of-order timestamps, and bars whose high/low do not bracket open/close. Returns BROKER-GRADE, SUSPECT or INDICATIVE with the numbers behind it. Use this BEFORE trusting any backtest built on the data. |
| check_eval_selection | FREE. Use after picking the best of several prompts, models, configs or hyperparameters. Keeping the top scorer out of N is SELECTION: the winner's score is inflated simply by having looked N times, and every eval harness reports it as though one experiment were run. Give the score each variant achieved and it returns how much of the winner's margin the search itself explains, what pure noise would have handed you, and whether the excess is real. Supply n_per_variant to also learn whether your variants can be told apart at all. Call this before concluding an optimisation found something. |
| factcheck | Verify a claim against 2-4 source URLs: cited passages, cross-source agreement, verdict: consistent | conflicting | insufficient_evidence. Evidence, not truth. Use when your agent needs to verify a claim against independent sources before acting on it. Give a claim plus 2-4 source URLs; each source is extracted (three-fetch cross-check, confidence-scored), the checkable figures are compared across sources, and you get the cited passages plus a verdict: con PAID: $0.03 USDC on Base via x402. Call it to receive the payment challenge. Example request: {"claim": "Acme Corp revenue was $4.2 billion in 2025", "urls": ["https://example.com", "https://example.org"]} |
| v1_extract | Fetch a web page three independent ways (rendered, static, second-render cross-check), confidence-scored, with a tamper-evident attestation. Refuses protected, login and CAPTCHA pages without charging. Use when your agent needs web content it cannot fetch itself — JavaScript-rendered pages, static pages, or paginated listings — and needs to show its principal the evidence. Every extraction runs three independent fetches (rendered, static, second-render cross-check), is confidence-scored, and is wr RUNS NOW: served from a daily free allowance (25 left today), then $0.02 USDC on Base via x402. No account, no API key. Example request: {"url": "https://example.com", "extraction_target": "the page title and the body text"} |
| referee | 11-gate adjudication of a trading signal series. Use when you have OHLC bars and a -1/0/1 signal series and need to know whether a backtest result is real or an artefact. Applies 11 gates most backtests fail: matched random-entry drift control, date-clustered standard errors, entry at the next bar's open, events-not-fills, absolute (not just exces PAID: $5.00 USDC on Base via x402. Call it to receive the payment challenge. Example request: {"bars": {"EURUSD": [{"time": "2024-01-01T00:00:00Z", "open": 1.0995, "high": 1.1001, "low": 1.0986, "close": 1.0992}, {"time": "2024-01-01T01:00:00Z", "open": 1.1002, "high": 1.1012, "low": 1.0996, "close": 1.1006}, {"t |
| multipletest | You tested N strategies and kept the best; is it noise. Use when you searched many strategies or parameter sets and kept the best one. Quoting that winner's solo p-value is the most common way a backtest lies. Give the number of things you tested and the winner's t-statistic; returns the family-wise p-value, the t you actually needed, and the t that pure RUNS NOW: served from a daily free allowance (250 left today), then $0.20 USDC on Base via x402. No account, no API key. Example request: {"n_tested": 1000, "best_t": 3.0} |
| clusteredt | Your t-stat assumes independence; your trades cluster. Use when your trades are not independent — several in the same day, the same regime, or a correlated basket. A t-stat computed as if every trade were an independent draw is inflated; in this repo the factor was about 1.9x. Give per-trade returns and their dates; returns the naive t, the date-cluster RUNS NOW: served from a daily free allowance (250 left today), then $0.25 USDC on Base via x402. No account, no API key. Example request: {"returns": [0.4, -1.1, 0.8, 1.2, -0.6, 0.3, -0.2, 0.9, -1.4, 0.7, 0.5, -0.3, 1.1, -0.8, 0.2, 0.6, -0.5, 0.4, 0.9, -0.7], "dates": ["2024-01-02", "2024-01-02", "2024-01-03", "2024-01-03", "2024-01-04", "2024-01-05", "202 |
| deflatedsharpe | Is this Sharpe real, or the best of N tries? Deflated for the search you ran. Is this Sharpe real, or the best of N tries? Deflated for the search you ran RUNS NOW: served from a daily free allowance (250 left today), then $0.31 USDC on Base via x402. No account, no API key. Example request: {"returns": [0.012, -0.004, 0.021, 0.003, -0.011, 0.017, 0.006, -0.008, 0.014, 0.002, -0.006, 0.019, 0.001, -0.013, 0.009, 0.004], "n_trials": 40} |
| abtest | Did B really beat A, corrected for how many variants you compared. Did B really beat A, corrected for how many variants you compared RUNS NOW: served from a daily free allowance (250 left today), then $0.31 USDC on Base via x402. No account, no API key. Example request: {"n_a": 1200, "conv_a": 96, "n_b": 1180, "conv_b": 130} |
| samplesize | How many observations before this test can answer anything — ask before you spend. How many observations before this test can answer anything — ask before you spend RUNS NOW: served from a daily free allowance (250 left today), then $0.31 USDC on Base via x402. No account, no API key. Example request: {"baseline_rate": 0.08, "min_detectable_effect": 0.2, "power": 0.8, "alpha": 0.05} |
| drawdown | Is this drawdown a broken strategy or a normal bad patch, vs your own shuffled returns. Is this drawdown a broken strategy or a normal bad patch, vs your own shuffled returns RUNS NOW: served from a daily free allowance (250 left today), then $0.31 USDC on Base via x402. No account, no API key. Example request: {"returns": [0.9, -1.0, 0.4, -1.0, 1.6, -1.0, 0.7, 0.3, -1.0, 2.1, -1.0, -1.0, 0.8, 1.4, -1.0, 0.5, -1.0, 1.9, 0.2, -1.0, 1.1, -1.0, 0.6, 1.3]} |
| correlation | Real relationship, or two autocorrelated series drifting together. Real relationship, or two autocorrelated series drifting together RUNS NOW: served from a daily free allowance (250 left today), then $0.31 USDC on Base via x402. No account, no API key. Example request: {"x": [0.4, -1.1, 0.8, 1.2, -0.6, 0.3, -0.2, 0.9, -1.4, 0.7, 0.5, -0.3], "y": [0.3, -0.9, 0.6, 1.0, -0.7, 0.1, -0.4, 0.8, -1.2, 0.5, 0.6, -0.1]} |
| regime | Did the process change, or is recent weakness inside normal variation. Did the process change, or is recent weakness inside normal variation RUNS NOW: served from a daily free allowance (250 left today), then $0.31 USDC on Base via x402. No account, no API key. Example request: {"returns": [0.9, -1.0, 0.4, -1.0, 1.6, -1.0, 0.7, 0.3, -1.0, 2.1, -1.0, -1.0, 0.8, 1.4, -1.0, 0.5, -1.0, 1.9, 0.2, -1.0, 1.1, -1.0, 0.6, 1.3, -0.8, 1.5]} |
| judge-batch | Triage up to 1,000 backtests in one call: the best-of-N multiple-testing selection correction over every return series — $0.01 per series, survivors ranked best-first. Use when your agent has a FARM of backtests, strategies, or research results — dozens to a thousand — and needs triage, not one-by-one verdicts. One call runs the selection correction over every series: each gets NO (killed), PROVISIONAL (survived this gate), or ERROR (malformed). Results ranked sur PAID: $0.01 USDC on Base via x402. Call it to receive the payment challenge. Example request: {"series": [{"returns": [0.8, -0.3, 1.2, 0.5, -0.6, 0.9, 0.4, -0.2, 1.1, 0.7, -0.4, 0.6, 0.3, -0.5, 1.0, 0.8, -0.1, 0.5, 0.9, -0.3], "n_tested": 20, "label": "weak"}, {"returns": [2.0, 2.1, 1.9, 2.2, 2.0, 2.1, 1.8, 2.0, |
| judge-nano | Is this backtest winner real, or just the best of N tries? The multiple-testing selection correction (family-wise p) in one $0.01 call — verdict NO or PROVISIONAL. Use when your agent has a backtest winner, a research result, or any return series that looks good — and needs the cheapest possible check on whether it is real or the luckiest of N tries. One call runs the selection correction: the family-wise p of the series' own t across your declared n_tested. V PAID: $0.01 USDC on Base via x402. Call it to receive the payment challenge. Example request: {"returns": [0.8, -0.3, 1.2, 0.5, -0.6, 0.9, 0.4, -0.2, 1.1, 0.7, -0.4, 0.6, 0.3, -0.5, 1.0, 0.8, -0.1, 0.5, 0.9, -0.3], "n_tested": 20} |
| judge-lite | Is this backtest, strategy or DeFi result real, or the luckiest of N tries? Three gates in one verdict — multiple-testing selection, deflated Sharpe, date-clustered t — built for trading agents. Use when your agent has a backtest, a research result, or any return series that looks good — and needs to know whether it is real or the luckiest of N tries before spending money on it. One call runs the three cheapest high-signal gates: selection correction (family-wise p across your declared n_te PAID: $0.05 USDC on Base via x402. Call it to receive the payment challenge. Example request: {"returns": [0.8, -0.3, 1.2, 0.5, -0.6, 0.9, 0.4, -0.2, 1.1, 0.7, -0.4, 0.6, 0.3, -0.5, 1.0, 0.8, -0.1, 0.5, 0.9, -0.3], "n_tested": 20, "dates": ["2024-06-03", "2024-06-03", "2024-06-04", "2024-06-04", "2024-06-05", "20 |
| audit | Every gate we have, composed in the right order, over your whole book — including the cross-instrument check that catches one edge wearing many names. Every gate we have, composed in the right order, over your whole book — including the cross-instrument check that catches one edge wearing many names PAID: $300.00 USDC on Base via x402. Call it to receive the payment challenge. Example request: {"bars": {"EURUSD": [{"time": "2024-01-01T00:00:00Z", "open": 1.0995, "high": 1.1001, "low": 1.0986, "close": 1.0992}, {"time": "2024-01-01T01:00:00Z", "open": 1.1002, "high": 1.1012, "low": 1.0996, "close": 1.1006}, {"t |