Integrations

MCP Server

Connect FocusAlpha retrieval directly to Claude via the Model Context Protocol. Once mounted, Claude can search earnings-call transcripts on its own and cite what it finds — no API plumbing on your side.

The MCP server is a thin wrapper over the Retrieve API. It exposes a single tool, search_financial_documents, that Claude calls when it needs grounded financial context. Authentication and metering happen through your API key, exactly as with REST — so it requires the same paid API key. See Authentication.

When to use MCP vs REST
Use MCP when you work inside an MCP client (Claude Desktop, Claude Code) and want the model to retrieve autonomously. Use the REST API when you’re building your own application and want explicit control over each call.
Package availability
@focusalpha/mcp is built and ready, but is not yet published to npm. The npx commands below are how you’ll mount it once it’s live. If you want early access, reach out and we’ll get you set up.

Claude Desktop#

Add the server to your claude_desktop_config.json (Settings → Developer → Edit Config). Put your API key in the environment block.

claude_desktop_config.json
{
  "mcpServers": {
    "focusalpha": {
      "command": "npx",
      "args": ["-y", "@focusalpha/mcp"],
      "env": {
        "FOCUSALPHA_API_KEY": "fa_live_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. You’ll see the FocusAlpha tools appear in the tool menu.

Claude Code#

Register the server with a single command:

terminal
claude mcp add focusalpha \
  --env FOCUSALPHA_API_KEY=fa_live_your_key_here \
  -- npx -y @focusalpha/mcp

The retrieval tool#

The server exposes one tool. Claude decides when to call it and with what arguments based on the conversation.

search_financial_documents#

Retrieves cited passages from earnings-call transcripts. Arguments mirror the REST request:

tool arguments
{
  query: string;              // natural-language search query
  tickers?: string[];         // e.g. ["AAPL"]
  year?: number;              // e.g. 2025
  quarter?: "Q1" | "Q2" | "Q3" | "Q4";
}

The tool returns the same cited chunks as POST /v1/retrieve, formatted for the model to read and cite. Claude can then quote the passages with attribution back to the source document.

Transports#

The server speaks two transports. Most setups use stdio; HTTP is for self-hosting a shared endpoint.

  • stdio (default) — the configs above run npx -y @focusalpha/mcp; the client launches it and speaks JSON-RPC over stdio. Each user supplies their own FOCUSALPHA_API_KEY.
  • HTTP — a Streamable HTTP entry point you can host privately. It serves all requests with a single FOCUSALPHA_API_KEY from its own environment, so it represents one account; host it behind your own access controls. For per-user keys, have each user run the stdio server locally.

Example prompt#

Once mounted, just ask Claude naturally:

prompt
Compare what AMD and NVIDIA management said about data center
demand on their most recent earnings calls, and cite the sources.

Claude calls search_financial_documents for each company, reads the returned transcript passages, and answers with citations — all without you writing any retrieval code.

Key handling in MCP
Your API key lives in the MCP client’s local config / environment, never in the conversation. Don’t paste keys into chat. Rotate from the dashboard if a key is exposed.