MCP — Model Context Protocol

Supply chain graph, natively in your agent.

ForcedAlpha exposes its full supply chain graph as a Model Context Protocol (MCP) server. Any MCP-compatible agent — Claude Desktop, Claude Code, Cursor, Gemini CLI, or any SDK using the MCP standard — can query the graph directly without HTTP plumbing or response parsing.

The server exposes 11 tools. Every tool response includes a provenance block on every edge: confidence grade (A/B/C/D), evidence type, source URL, verbatim excerpt, and a plain-English caveat when the edge is inferred or soft-signal only.

11
tools
4,500+
nodes
20,000+
sourced edges
provenance
on every output

Get an API key

MCP calls authenticate with the same key as the REST API. Free tier: 500 requests per day, no credit card required.

Get a key instantly on the API docs page →

Need higher limits? See pricing → or write to [email protected].

Quickstart — 2 steps

No SSH tunnel. No Python proxy. No server install. The MCP server is available at a public endpoint over SSE.

1
Get your API key
Request one at /docs/api/. Your key will look like fa_xxxxxxxxxx.
2
Add the config to your client
Copy the config for your agent below. Replace fa_YOUR_KEY_HERE with your actual key. Restart your agent.

That is all. Once connected, you can ask natural-language questions and your agent will query the graph directly:

"What are the sole-source chokepoints in the AI supply chain?"
"What breaks downstream if AXTI fails?"
"What supply chain nodes do NVDA, AMAT, and LRCX all share?"
"Trace the cascade effects of China restricting gallium exports"

Claude Desktop

Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the forcedalpha entry inside your mcpServers object. Create the file if it does not exist.

json — claude_desktop_config.json
{
  "mcpServers": {
    "forcedalpha": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/mcp-remote",
        "https://forcedalpha.com/mcp/sse?key=fa_YOUR_KEY_HERE"
      ]
    }
  }
}

Restart Claude Desktop after saving. The tool icon should appear in your input bar within a few seconds.

Requires Node.js. If npx is not found, install Node.js from nodejs.org. The @anthropic-ai/mcp-remote package is downloaded automatically on first use.
SSE reconnection: If using the raw SSE endpoint directly, implement reconnection in your client — SSE connections can time out after periods of inactivity. @anthropic-ai/mcp-remote handles this automatically. Direct SSE clients should listen for connection drops and reconnect with the same ?key= param.

Claude Code

Claude Code (CLI)
Terminal — no config file editing needed

One command to register the server:

bash
claude mcp add forcedalpha \
  --transport sse \
  https://forcedalpha.com/mcp/sse?key=fa_YOUR_KEY_HERE

Verify it was added:

bash
claude mcp list

The server is now available in all Claude Code sessions. Use claude mcp remove forcedalpha to disconnect.

Cursor

Cursor
.cursor/mcp.json in your project root, or ~/.cursor/mcp.json for global config
json — .cursor/mcp.json
{
  "mcpServers": {
    "forcedalpha": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/mcp-remote",
        "https://forcedalpha.com/mcp/sse?key=fa_YOUR_KEY_HERE"
      ]
    }
  }
}

Restart Cursor after saving. The tools will appear in the Composer context list.

Gemini CLI

Gemini CLI
~/.gemini/settings.json
json — ~/.gemini/settings.json
{
  "mcpServers": {
    "forcedalpha": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/mcp-remote",
        "https://forcedalpha.com/mcp/sse?key=fa_YOUR_KEY_HERE"
      ]
    }
  }
}

Create ~/.gemini/ if it does not exist. Start a Gemini CLI session after saving — the tools load automatically.

find_chokepoints

find_chokepoints
Find sole-source and near-monopoly supply chain chokepoints by theme, severity, or country. Returns nodes with provenance on the top supporting edge.
ParameterTypeRequiredDescription
themestringoptionalAI, DEFENSE, ENERGY, ROBOTICS, QUANTUM, CRYPTO, CYBER
severity_minintegeroptionalMinimum severity 1–5. Default: 4
countrystringoptionalISO country code: JP, US, TW, KR, CN, DE
limitintegeroptionalMax results. Free: 5, Pro/Enterprise: unlimited
Example agent prompt
"Find all sole-source chokepoints in the AI supply chain"
json — response (abbreviated)
{
  "answer": "Found 12 chokepoints at severity 4-5 in theme AI. [Source: byte-verified primary, conf A (0.95)]",
  "chokepoints": [
    {
      "node_id": "LASERTEC",
      "name": "Lasertec Corporation",
      "severity": 5,
      "market_cap_b": 9.2,
      "country": "JP",
      "top_evidence": {
        "product": "EUV mask inspection systems",
        "provenance": {
          "confidence_grade": "A",
          "evidence_type": "byte-verified primary",
          "source_url": "https://...",
          "caveat": null
        }
      }
    }
  ]
}

trace_dependency

trace_dependency
Trace what breaks downstream — or what is upstream — if a given node fails. Returns propagation paths with market cap at risk and per-hop provenance.
ParameterTypeRequiredDescription
node_idstringrequiredTicker or node ID: AXTI, TSMC, LASERTEC
directionstringoptional"downstream" (default) or "upstream"
max_depthintegeroptionalHops to traverse. Free: 1–2, Pro: 1–3, Enterprise: 1–5
Example agent prompt
"What breaks downstream if AXTI fails?"
json — response (abbreviated)
{
  "answer": "AXTI failure propagates to 14 downstream nodes across 3 hops. [Source: byte-verified primary, conf A (0.91)]",
  "breaks_count": 14,
  "stresses_count": 8,
  "asymmetry_ratio": 73.2,
  "propagation_paths": [
    {
      "path": ["AXTI", "COHERENT", "AAPL"],
      "product": "InP substrates",
      "provenance": {
        "confidence_grade": "A",
        "source_url": "https://...",
        "caveat": null
      }
    }
  ]
}

verify_edge

verify_edge
Check whether a direct supply relationship exists between two nodes. Returns the sourced evidence — or a clean NOT_FOUND — with no hallucination.
ParameterTypeRequiredDescription
from_idstringrequiredSupplier node ID or ticker
to_idstringrequiredCustomer node ID or ticker
Example agent prompt
"Does Lasertec supply to TSMC?"
json — response (verified)
{
  "answer": "Direct edge confirmed: LASERTEC supplies_to TSMC (EUV mask inspection). [Source: byte-verified primary, conf A (0.95)]",
  "verdict": "VERIFIED_PRIMARY",
  "edges": [
    {
      "relationship": "supplies_to",
      "product": "EUV mask inspection systems",
      "provenance": {
        "confidence_grade": "A",
        "evidence_type": "byte-verified primary",
        "source_url": "https://...",
        "source_excerpt": "Lasertec's ACTIS series inspection tools are...",
        "caveat": null
      }
    }
  ]
}

portfolio_common_mode

portfolio_common_mode
Find hidden shared upstream chokepoints across a set of tickers at one hop. Surfaces common-mode supply chain risk invisible to position-level analysis. For multi-hop common dependencies, use portfolio_xray.
ParameterTypeRequiredDescription
tickersarray of stringsrequiredFree: up to 5 tickers. Pro/Enterprise: up to 20
Example agent prompt
"What supply chain nodes do NVDA, AMD, AMAT, and LRCX all share?"
json — response (abbreviated)
{
  "answer": "3 common-mode chokepoints found across 4 tickers. Highest: LASERTEC (sev 5, shared by 4/4). [Source: byte-verified primary, conf A]",
  "convergences": [
    {
      "node_id": "LASERTEC",
      "severity": 5,
      "shared_count": 4,
      "shared_by": ["NVDA", "AMD", "AMAT", "LRCX"]
    }
  ]
}

explain_asymmetry

explain_asymmetry
Return the market cap asymmetry profile for a node — how much downstream market cap it controls relative to its own size, with sourced edges as evidence.
ParameterTypeRequiredDescription
node_idstringrequiredTicker or node ID
Example agent prompt
"Explain AXTI's asymmetry profile"
json — response (abbreviated)
{
  "answer": "AXTI controls 73:1 downstream asymmetry. [Source: byte-verified primary, conf A (0.91)]",
  "asymmetry": {
    "ratio_1hop": 73.2,
    "ratio_cascade": 412.0,
    "downstream_cap_1hop_b": 10.98
  }
}

find_underpriced_physical_bottlenecks

find_underpriced_physical_bottlenecks
Screen for small-cap companies at high-severity chokepoints with outsized downstream market cap exposure. Applies the AXTI pattern — small company, critical position, large downstream cap — across the entire graph.
ParameterTypeRequiredDescription
max_cap_bfloatoptionalMaximum market cap in billions. Default: 10
severity_minintegeroptionalMinimum severity 1–5. Default: 4
min_ratiofloatoptionalMinimum asymmetry ratio. Default: 50
themestringoptionalAI, DEFENSE, ENERGY, ROBOTICS, QUANTUM, CRYPTO, CYBER
Example agent prompt
"Find small-cap AI supply chain bottlenecks with 100:1+ asymmetry"
json — response (abbreviated)
{
  "answer": "7 positions match (cap < $10B, severity >= 4, ratio >= 100:1, theme AI).",
  "positions": [
    {
      "node_id": "AXTI",
      "market_cap_b": 0.15,
      "severity": 4,
      "asymmetry_ratio_cascade": 412.0
    }
  ]
}

Free tier returns the top 3 results. Pro and Enterprise return up to 20.

portfolio_xray

portfolio_xray
Multi-hop upstream portfolio x-ray. Unlike portfolio_common_mode (one hop only), this traces dependency chains up to 6 hops deep, finding shared chokepoints that are invisible at the direct level. Soft-signal edges are excluded from traversal.
ParameterTypeRequiredDescription
tickersarray of stringsrequiredList of ticker symbols: ["NVDA", "AMD", "TSLA"]
max_hopsintegeroptionalMaximum upstream hops. Free: 1–2, Pro: 1–3, Enterprise: 1–6. Default: 3
evidencestringoptionalEdge filter: "all" (default), "primary_only", or "verified_only"
Example agent prompt
"Do my AI semiconductor holdings share any upstream chokepoints two hops back?"
json — response (abbreviated)
{
  "answer": "5 shared upstream nodes found across 3 tickers at max depth 3. Top: LASERTEC (sev 5, shared by 3/3, hop 2). [Source: primary]",
  "common_dependencies": [
    {
      "node_id": "LASERTEC",
      "severity": 5,
      "shared_by": ["NVDA", "AMAT", "LRCX"],
      "min_hop": 2
    }
  ]
}

trace_shock

trace_shock
Trace the downstream cascade effects of a supply shock event described in plain English. Parses the event to identify affected materials and mechanism nodes, then propagates the shock through supply chains to surface exposed downstream companies with market cap at risk.
ParameterTypeRequiredDescription
eventstringrequiredNatural-language event (max 500 chars). Include material names, countries, and action verbs for best parsing. Example: "China restricts rare earth exports"
portfolioarray of stringsoptionalList of tickers to filter results to portfolio exposure only
modestringoptional"first_order" (single-supplier breaks) or "second_order" (weighted stress exposure). Default: "first_order"
Example agent prompt
"Trace the cascade effects of China restricting gallium exports. My portfolio is NVDA, TSLA, AXTI."
json — response (abbreviated)
{
  "answer": "Event: 'China restricts gallium exports' → type=export_restriction, seeds=[gallium, gallium_arsenide]. Found 23 downstream transmission chains. Top exposed: Coherent Corp (sev 4/5, $4.2B) at depth 2. Total market cap at risk: $142.3B. Portfolio exposure: 2 holdings affected (AXTI, NVDA).",
  "event_parsed": {
    "seed_nodes": ["gallium", "gallium_arsenide"],
    "event_type": "export_restriction",
    "source_country": "CN"
  },
  "cascade_summary": {
    "total_breaks": 23,
    "total_cap_at_risk_b": 142.3
  },
  "portfolio_exposure": [
    { "ticker": "AXTI", "depth": 1, "exposure_type": "break" }
  ]
}
Coverage note: The graph is denser for semiconductors, rare earths, and specialty chemicals than for general industrials. Include material names in the event description for best entity resolution.

verify_claim

verify_claim
Verify a plain-English supply chain claim against the knowledge graph. Parses the claim text, resolves entities, then checks for direct and indirect supply chain edges. Returns a verdict with provenance.
ParameterTypeRequiredDescription
claimstringrequiredPlain-English claim to verify. Example: "TSMC depends on Lasertec for EUV inspection"
Example agent prompt
"Verify: TSMC depends on Lasertec for EUV mask inspection"
json — response
{
  "answer": "CONFIRMED: LASERTEC supplies_to TSMC (EUV mask inspection systems). [Source: byte-verified primary, conf A (0.95) — https://...]",
  "verdict": "CONFIRMED",
  "matched_edges": [
    {
      "from_id": "LASERTEC",
      "to_id": "TSMC",
      "relationship": "supplies_to",
      "product": "EUV mask inspection systems",
      "provenance": {
        "confidence_grade": "A",
        "evidence_type": "byte-verified primary",
        "source_url": "https://...",
        "caveat": null
      }
    }
  ]
}

company_dependency_card

company_dependency_card
Structured intelligence artifact for a company. Returns critical upstream dependencies, top downstream customers, chokepoint score, moat type, bear case, and catalyst watch — drawn from the graph and annotation layer.
ParameterTypeRequiredDescription
tickerstringrequiredStock ticker symbol: TSMC, NVDA, ASML
Example agent prompt
"Give me a dependency card for ASML"
json — response (abbreviated)
{
  "node_id": "ASML",
  "name": "ASML Holding",
  "severity": 5,
  "market_cap_b": 296.4,
  "top_upstream": [
    { "name": "Carl Zeiss SMT", "product": "EUV optics", "severity": 5, "hop_count": 1 }
  ],
  "top_downstream": [
    { "name": "TSMC", "market_cap_b": 1050, "hop_count": 1 }
  ],
  "annotation": {
    "moat_type": "qualification_moat",
    "bear_case": "High optics concentration in single supplier; 3nm roadmap delays could defer orders",
    "catalyst_watch": "EUV 0.55 NA High-NA ramp timing at Intel and TSMC"
  }
}

find_surprise_dependency

find_surprise_dependency
Surface the most non-obvious upstream dependency for a company — the chokepoint that is high-severity and high-asymmetry but low-coverage in sell-side research. Designed to identify what analysts are most likely to miss.
ParameterTypeRequiredDescription
tickerstringrequiredStock ticker symbol
Example agent prompt
"What is the most surprising upstream dependency for Apple?"
json — response (abbreviated)
{
  "answer": "Surprise dependency for AAPL: AXTI (AXT Inc., $0.15B) — sole US merchant InP substrate supplier, sev 4/5. 2 hops upstream. [Source: byte-verified primary, conf A (0.91)]",
  "surprise_node": {
    "node_id": "AXTI",
    "name": "AXT Inc.",
    "severity": 4,
    "market_cap_b": 0.15,
    "surprise_score": 8.7,
    "path_from_ticker": ["AAPL", "COHERENT", "AXTI"]
  }
}

Provenance format

Every edge returned by any tool includes a provenance block. Your agent can surface this citation inline without additional bookkeeping — the answer string already ends with [Source: {evidence_type}, conf {grade} ({score}) — {url}].

json — provenance object
{
  "confidence": 0.92,
  "confidence_grade": "A",
  "evidence_type": "byte-verified primary",
  "relationship_class": "hard supply relationship",
  "source_url": "https://www.sec.gov/...",
  "source_excerpt": "verbatim quote from the source page (up to 200 chars on Pro)",
  "verification_status": "verbatim_verified",
  "caveat": null
}

Confidence grades

A — 0.85+
B — 0.70+
C — 0.55+
D — below 0.55

Evidence types

byte-verified primary — verbatim quote confirmed on the source page via automated fetch and substring match. Highest reliability.

operator-paste verified — paywalled source pasted by operator; quote confirmed present in the paste.

primary (source bot-blocked, pending verify) — a primary source URL is on file but the page blocks automated fetching; quote not yet confirmed.

inferred — no primary source; derived from graph structure or analyst reasoning. Confidence capped at 0.70.

soft signal only — patent citation or podcast claim. Not verified as a commercial supply relationship. Excluded from cascade traversal.

Caveat field

The caveat field is null for clean primary edges. It auto-populates when evidence quality is reduced:

  • "soft signal only — not verified as commercial supply relationship"
  • "no primary source — inferred from graph structure or analyst reasoning"
  • "no source URL on file"
  • "source URL present but verbatim quote not yet captured"

Tier comparison

All 11 tools are available on every tier. Tier differences apply to depth, result count, score format, and daily quota.

Feature Free Pro Enterprise
Requests per day 500 10,000 Unlimited
trace_dependency / portfolio_xray max hops 2 3 5
Cascade depth (trace_shock) 2 hops 4 hops 6 hops
Score format in responses Bucketed (HIGH / MED / LOW) Exact (0.91) Exact + raw components
source_excerpt length 50 chars 200 chars Full verbatim
portfolio_common_mode max tickers 5 20 20
find_underpriced_bottlenecks results Top 3 Top 20 All matches
Dedicated support Yes + SLA

See full pricing details →

Rate limits

MCP tool calls count against the same daily quota as REST API requests.

Free
500 requests per day. All 11 tools available. No credit card required. Get a key instantly →
Pro
10,000 requests per day. Full cascade depth, larger result sets, exact score values. Contact [email protected] or see pricing →
Enterprise
Unlimited. Full verbatim excerpts, dedicated support, SLA. Get in touch →

Questions? [email protected] — we respond same day.