How do I give Claude access to fund and ETF data by ISIN?
Add the FundFacts MCP server to Claude Desktop or claude.ai as a connector and ask about any ISIN: TER, holdings, exposures, returns, overlap and portfolio look-through.Updated 12 September 2026 · by FundFacts APIShort answer
Add the FundFacts MCP server as a connector: in claude.ai (Settings → Connectors → Add custom connector) or Claude Desktop, use the URL https://fundfactsapi.com/api/mcp and an Authorization: Bearer header with your API key. Claude then has get_fund, search_funds, compare_funds, analyze_portfolio, fund_overlap and get_scpi tools and answers questions about any ISIN with the current published figures and their as-of date.
claude.ai and Claude Desktop
Both accept remote MCP servers over Streamable HTTP. In Settings → Connectors → Add custom connector, enter:
| Setting | Value |
|---|---|
| Name | FundFacts |
| URL | https://fundfactsapi.com/api/mcp |
| Header | Authorization: Bearer ffk_... |
Claude Desktop also reads a JSON configuration file (claude_desktop_config.json), which is handy if you prefer to keep the key out of the UI:
json{"mcpServers": {"fundfacts": {"url": "https://fundfactsapi.com/api/mcp","headers": { "Authorization": "Bearer ffk_..." }}}}
Older clients that only speak stdio can bridge with mcp-remote:
json{"mcpServers": {"fundfacts": {"command": "npx","args": ["-y", "mcp-remote", "https://fundfactsapi.com/api/mcp", "--header", "Authorization: Bearer ffk_..."]}}}
What Claude can do with it
The MCP server exposes six tools, each counted like the REST endpoint it wraps: get_fund (ISIN → the full factsheet payload), search_funds (name → ISINs, free), compare_funds (side-by-side table for several ISINs), analyze_portfolio (weighted look-through of a list of positions, Pro and above), fund_overlap (shared holdings between funds, Pro and above) and get_scpi (French SCPI data by name or ISIN). Authentication is the same bearer API key as the REST API, sent as an Authorization header.
Typical prompts: "What does IE00B4L5Y983 hold and how risky is it?", "Compare the fees and 5-year returns of IE00B4L5Y983 and IE00B3RBWM25", "I hold 60% of A and 40% of B; what is my real US exposure?", "Do these three ETFs overlap?". Claude calls the right tool, and because every payload carries dataAsOf it can say how old the figures are.
Claude Code and the API (for building, not chatting)
If you want Claude to *write software* against the API rather than answer questions, see Claude Code: the companion kit includes a Claude Code skill, and claude mcp add registers the same server for the coding agent.
Paid plans include an AI companion kit generated from the live field reference: an AGENTS.md with every endpoint, field, rule and a reference client; a Cursor rule; a Claude Code skill; the OpenAPI spec and TypeScript types, with your key baked in or read from an environment variable. Download it from the dashboard; the public edition without a key is at /llms-full.txt.
Verify it yourself
The demo endpoint returns the live payload for a fund that is already in the store, without a key. Everything on this page can be checked against it.bashcurl -s https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983 | jq '{name, asOf: .data.dataAsOf, ter: .data.headlineMetrics.ter, risk: .data.riskRating, top: .data.topHoldings[:3]}'