RiskModels

Clean US equity total returns + institutional risk decomposition, via MCP.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Riskmodels Decompose: L3 four-bet view: decompose one stock into additive market, sector, subsector, and residual layers (same semantics as POST /decompose exposure/hedge). Returns chart_data and plai
  • Riskmodels Get Hedge Levels: Canonical L1, L2, and L3 hedge snapshots (semantic HR/ER + hedge_etfs) from GET /metrics/{ticker}. Use this when you need to compare which cascade depth to trade, distinct
  • Riskmodels Compare: Compare tickers across market, sector, subsector, and residual risk layers. Prefer grouped bar charts when chart_data is present.

What data it sees

Do you need an account

No: the server works without sign-in

Clean US equity total returns + institutional risk decomposition, via MCP.

RiskModels gives agents dividend-adjusted total return series for any US stock or ETF — and decomposes both the return and its risk into market → sector → subsector → residual layers, with executable ETF hedge ratios for each. Built on ERM3, a hierarchical factor model with orthogonalized factor construction over ~3,000 US equities (16k-name historical panel), daily history back to 2006.

One MCP call covers performance tracking, return attribution, manager-skill / 13F review, hedging, stat-arb, or feeding clean returns into your own models.

Capabilities

  • Returns — daily dividend-adjusted total (gross) return series, point-in-time / time-safe
  • Return attribution — gross return split into L1/L2/L3 factor vs residual; isolates the residual (stock-picking / alpha) series
  • Risk decomposition — additive market / sector / subsector / residual variance shares (sum to ~100%)
  • Hedging — executable ETF hedge ratios + optimal cascade-level selection, scalable to a dollar position
  • Portfolio — holdings-weighted decomposition, hedge aggregation, cross-sectional comparison

Key tools: riskmodels_get_returns · riskmodels_get_return_attribution · riskmodels_decompose · riskmodels_get_hedge_levels · riskmodels_compare · riskmodels_hedge_portfolio · riskmodels_analyze_portfolio

Try it instantly — a shared free-tier demo key is pre-filled (rate-limited, 100 calls/day total). For real use, get your own free key with $20 starter credit at riskmodels.app/get-key.

Every response carries request_id, data_as_of, and methodology provenance — transparent per-call pricing, structured outputs, no fabricated numbers. Works in Claude, Cursor, and any MCP agent.

Links

How to connect

How to connect RiskModels to Claude

The server address to paste into Claude settings:

https://riskmodels--service-c09f.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. 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 RiskModels to ChatGPT

The server address to paste into ChatGPT settings:

https://riskmodels--service-c09f.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. 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 RiskModels to Cursor

The server address to paste into Cursor settings:

https://riskmodels--service-c09f.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. 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 (15)

Raw names from tools/list. Only developers need these.

riskmodels_decomposeL3 four-bet view: decompose one stock into additive market, sector, subsector, and residual layers (same semantics as POST /decompose exposure/hedge). Returns chart_data and plain_english. To compare standalone L1 vs L2 vs L3 hedge solutions (HR/ER + ETF legs), call riskmodels_get_hedge_levels or read hedge_levels on the API response.
riskmodels_get_hedge_levelsCanonical L1, L2, and L3 hedge snapshots (semantic HR/ER + hedge_etfs) from GET /metrics/{ticker}. Use this when you need to compare which cascade depth to trade, distinct from decompose four-bet exposure.
riskmodels_compareCompare tickers across market, sector, subsector, and residual risk layers. Prefer grouped bar charts when chart_data is present.
riskmodels_hedge_positionScale ETF hedge ratios for a ticker to a dollar position. Returns chart-ready hedge notionals.
riskmodels_analyze_portfolioHoldings-weighted L1/L2/L3 hedge_levels across names via POST /batch/analyze (hedge_ratios). Returns normalized portfolio.portfolio_hedge_levels and per-ticker blocks when present.
riskmodels_hedge_portfolioBatch hedge_ratios at a chosen cascade level (L1/L2/L3), scale HRs by dollar notionals per ticker, and aggregate ETF USD hedge legs.
riskmodels_portfolio_decomposeDecompose a weighted portfolio into market, sector, subsector, and residual risk layers.
riskmodels_whitepaper_exampleRun a live example from the RiskModels white paper. Returns chapter text plus SDK/API output with chart_data.
riskmodels_render_artifactRender a deterministic registry artifact (fund, filer, or client portfolio). Returns JSON chart/table/narrative or base64 PNG/SVG. Same contract as riskmodels.net workspace fetchArtifact.
riskmodels_list_endpointsList all public API capabilities (id, name, method, endpoint, short description)
riskmodels_get_capabilityGet full capability details (parameters, pricing, examples) by id
riskmodels_get_schemaGet JSON schema for an API response by path (e.g. ticker-returns-v2.json)
get_l3_decompositionDaily EOD hierarchical orthogonal decomposition for a single ticker: market → sector → subsector → residual. Returns parallel time-series arrays plus hedge ratios. Data freshness: daily after US market close.
get_metricsLatest daily EOD risk metrics for a ticker: L1/L2/L3 hedge ratios (SPY, sector ETF, subsector ETF), explained-risk fractions, daily volatility, price close, market cap.
get_portfolio_risk_snapshotBundled portfolio risk report for up to 100 positions: variance decomposition, 23-day volatility, optional diversification analytics. Response is cached per-user per-portfolio for 1 hour.
RiskModels: connect to Claude, ChatGPT, Cursor · Connectors.fun