MoneySignals

MoneySignals Documentation

Give your code — or your AI agent — the measured market edge: event-driven signals with a public, audited track record, ML predictions with honest realized accuracy, and full market context. Available as a REST API and as a one-file MCP server you can connect to any agent in a single step.

🤖 Building an AI agent?

Jump to Connect via MCP — one command, 21 tools, ready to pair with a broker for automated investing.

⚙️ Writing code?

Jump to the REST API — clean JSON over HTTPS, or the interactive API reference.

Overview

Everything MoneySignals knows is reachable two ways, over the same data:

The product is built around one finding: selective, event-driven signals carry a measured edge, while always-on per-ticker ML is near coin-flip out-of-sample. The API surfaces both — and is honest about which is which (see Where the edge is).

Quick start

1. Verify the edge — no key needed

The audited track record is public, so you can check it before signing up:

# live win rate, avg return, resolved-call count for the event signals
curl https://api.moneysignals.us/track-record

2. Get a free API key — it comes with the free email signup

Join the free daily email and confirm your address — your API key arrives in the welcome email, no card required. It unlocks the ML predictions and every market-context endpoint. Pass it as the X-API-Key header:

curl -H "X-API-Key: at_sk_your_key" \
  https://api.moneysignals.us/api/v1/market/regime

Paid keys (from $49/mo) add the event signals — the measured edge — plus alt-data and higher limits.

3. Or connect an agent in one command — hosted MCP, nothing to install

claude mcp add --transport http moneysignals https://api.moneysignals.us/mcp \
  --header "X-API-Key: at_sk_your_key"

Then ask your agent: “What’s the market regime, and how accurate were MoneySignals’ recent predictions?” — see Connect via MCP.

Authentication, tiers & limits

TierPriceUnlocksLimits
Free$0 — email signup ML predictions + realized accuracy, market regime, economic calendar, anomalies, fear/greed, put/call, OHLCV bars 5/min · 100/day
API Starter$49/mo Everything in Free + event signals (best picks, daily brief, trade plan, performance, congress trades) + alt-data (flights, lobbying, hearings) 10/min · 500/day
API Pro$199/mo Everything in Starter + social sentiment/trending + batch predictions + usage analytics 30/min · 1,000/day

Connect an AI agent (MCP)

Any MCP client (Claude Code, Claude Desktop, your own agent) gets all of MoneySignals as callable tools — no SDK to learn, no endpoints to wire up. Two ways to connect, same 21 tools either way: the hosted server (recommended — one command, nothing to install) or a downloadable one-file stdio server.

Hosted — one command, nothing to install

claude mcp add --transport http moneysignals https://api.moneysignals.us/mcp \
  --header "X-API-Key: at_sk_your_key"

No Python, no download, always the latest tools. Your key rides on the connection as an HTTP header — leave the --header off to connect keyless and try get_track_record first. Any client that speaks MCP Streamable HTTP works the same way: point it at https://api.moneysignals.us/mcp and send X-API-Key (or Authorization: Bearer) on each request. Building your own agent? It’s plain JSON-RPC:

curl -X POST https://api.moneysignals.us/mcp \
  -H "Content-Type: application/json" -H "X-API-Key: at_sk_your_key" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_market_regime","arguments":{}}}'

Or run it locally (stdio)

Prefer a local process — or your client can’t send custom headers (Claude Desktop’s config, for one)? Download the one-file server:

pip install "mcp>=1.2" httpx
# download the one-file server (always the latest)
curl -O https://moneysignals.us/mcp/server.py

Claude Code — local stdio variant

claude mcp add moneysignals \
  --env MONEYSIGNALS_API_KEY=at_sk_your_key \
  -- python /path/to/server.py

Claude Desktop — config

Settings → Developer → Edit Config, then add:

{
  "mcpServers": {
    "moneysignals": {
      "command": "python",
      "args": ["/path/to/server.py"],
      "env": { "MONEYSIGNALS_API_KEY": "at_sk_your_key" }
    }
  }
}

Restart the client. Without a key, only get_track_record works — enough to confirm the connection. The free key unlocks predictions, market context and the ETF pullback signal; paid keys add the event signals. Override the base URL with MONEYSIGNALS_API_BASE if needed.

The 21 tools

no key public. free key works with the free key from the email signup. starter / pro need a paid API plan (from $49/mo).

ToolReturns
get_track_recordno keyLive audited win rate, avg return, resolved-call count — wins and losses included.
get_latest_predictionsfree keyLatest daily ML predictions + the honest realized accuracy.
get_ticker_predictionfree keyLatest prediction for one ticker.
get_prediction_accuracyfree keyRealized out-of-sample model accuracy.
get_market_regimefree keyRISK_ON/OFF, VIX, SPY vs 200MA, position multiplier — the risk gate.
get_economic_calendarfree keyUpcoming US economic events (FOMC/CPI/NFP), impact-rated.
get_anomaliesfree keyToday’s statistical outliers (≥σ daily moves) + reversal context.
get_market_characterfree keyDispersion gauge: how violent the single-name tape is right now vs every year since 2015 (2026 = record).
get_fear_greedfree keyFear & Greed index.
get_put_call_ratiofree keyPut/call ratio (with a freshness flag).
get_ohlcvfree keyRecent daily OHLCV bars for a ticker.
get_etf_pullback_signalfree keyMechanical ETF dip-buying rule (RSI2 + 200-day trend): live fire status + full measured track record vs the honest above-trend base rate.
get_daily_briefstarterOne-call decision brief: regime gate + top signals + next macro event + guidance.
get_best_signalsstarterHighest-conviction event signals — only types that clear our precision gates; honestly empty when none do.
get_trade_planstarterBest signals reshaped as execution-ready buy/sell actions (pair with a broker).
get_signal_performancestarterPer-event-type historical win rates — which signal types to trust.
get_event_signalsstarterAll live event signals, each with its measured type win-rate.
get_congress_tradesstarterCongressional disclosures (raw — historically an anti-signal).
get_social_sentimentproReddit mention/upvote volume for a ticker.
get_social_trendingproTickers trending on social (finance-filtered).
get_account_usageproYour key’s usage / rate-limit status.

Automated execution — pair with a broker

MCP servers don’t call each other; they’re both tools your agent uses. So automated investing is: connect both the MoneySignals MCP (for what to trade) and a broker MCP — e.g. Robinhood’s Agentic Trading MCP — (for execution), and let the agent orchestrate.

Two tools make this turnkey:

{
  "count": 2,
  "plan": [
    {"action":"buy", "ticker":"SMH", "conviction":0.61, "type_win_rate":0.76},
    {"action":"sell_or_short", "ticker":"QPQ", "conviction":0.48}
  ],
  "disclaimer": "Model-derived suggestions — NOT financial advice."
}

Example agent prompt:

“Connect to both MoneySignals and Robinhood. Call get_daily_brief. If the regime isn’t RISK_OFF and no high-impact event is within 1 day, place Robinhood market orders for each buy with conviction ≥ 0.55, sized to 2% of buying power; skip anything I already hold. Summarize the orders.”

You own execution and risk. MoneySignals supplies measured-edge signals; your agent and broker place, size, and risk-manage every order. Cap position size, set stops, and review. Not financial advice.

REST API reference

Base URL https://api.moneysignals.us. All endpoints below are prefixed /api/v1 unless noted, return JSON, and need the X-API-Key header. Try them live in the interactive API reference (or ReDoc).

Signals — the edge

API Starter and up — except /track-record (public) and /signals/etf-pullback (free key).

Method & pathWhat it does
GET /signals/briefOne-call decision brief: regime + top signals + next macro event + guidance.
GET /signals/etf-pullback free keyMechanical ETF pullback-in-uptrend signal (RSI2 + 200-day trend): live fire status + full measured track record vs the honest base rate.
GET /signals/bestHighest-conviction picks; only types that clear the precision gates, ranked by conviction.
GET /signals/performancePer-(event_type, second_order) realized win rates, labeled strong→anti-signal.
GET /signals/eventsAll live event signals + each one’s historical type win-rate.
GET /signals/congress-tradesCongressional disclosures (raw; an anti-signal historically).
GET /track-record freeAudited cumulative performance of the event signals (no /api/v1 prefix).

Predictions

Works with the free key (/predictions/batch is API Pro).

Method & pathWhat it does
GET /predictions/latestLatest daily ML predictions + top-level realized_accuracy.
GET /predictions/{ticker}Latest predictions for one ticker, across timeframes.
GET /predictions/accuracyRealized out-of-sample accuracy by timeframe. Rows carry status: live (daily) or archived_sample (weekly/monthly — pipelines discontinued 2026-03-23; a closed Jan–Mar 2026 sample, not a live metric).
GET /predictions/batchPredictions for many tickers in one call (Pro).

Market context

Works with the free key.

Method & pathWhat it does
GET /market/regimeRisk regime: VIX, SPY vs 200MA, position multiplier.
GET /market/economic-calendarUpcoming US economic events, impact-rated (?impact=high).
GET /market/anomaliesToday’s ≥σ daily-move outliers + next-day reversal stats.
GET /market/characterMarket-character/dispersion gauge vs 2015–2025 full-year references (?window= trading days).
GET /market/ohlcv/{ticker}Recent daily/weekly/monthly bars.
GET /market/fear-greedFear & Greed index history.
GET /market/pcrMarket put/call ratio (carries a stale flag).

Social, alt-data & account

Social is API Pro; alternative data is API Starter and up. /account/me works on any key (/account/usage is API Pro).

Method & pathWhat it does
GET /social/trendingTrending tickers (finance-filtered; ?platform= for raw feeds).
GET /social/sentiment?ticker=Reddit mention/upvote volume for a ticker.
GET /alternative/flightsDC-area corporate-jet signals with cross-validation.
GET /alternative/lobbying · /hearingsLobbying filings & congressional hearings by ticker.
GET /account/me · /account/usageYour key’s tier, limits, and usage.

Where the edge is

We did the walk-forward homework so you don’t over-trust the wrong thing:

The candidate edge: second-order, event-driven signals — a catalyst whose indirect effect is the trade. Their aggregate resolved performance is published live on the track record; per-type win rates are noisier and can decay as samples grow, so get_best_signals only surfaces types that clear our statistical precision gates (Wilson lower-bound win rate + signed expectancy) — and is honestly empty when nothing currently does. get_signal_performance shows the live per-type map.

Context, not edge: per-ticker daily ML direction is near coin-flip out-of-sample — so realized_accuracy is reported honestly (~0.48), and you should weight raw predictions accordingly. Weekly/monthly prediction pipelines were discontinued 2026-03-23: their accuracy figures are an archived Jan–Mar 2026 sample (flagged accuracy_status: "archived_sample" in the API) with too few independent windows to establish skill.

An anti-signal: simply following congressional trades has underperformed. We label it so you don’t mistake the data feed for a recommendation.

Conviction ranks signals by a sample-size-shrunk type win-rate × the signal’s own confidence, so a lucky small-sample type can’t top the list.

Honesty & limits