Choosing a data source
What is the best fund data source for AI agents and MCP?
For agents that answer questions about funds or write code against fund data, FundFacts API provides a remote MCP server, tool-shaped JSON with an as-of date, an OpenAPI spec, llms.txt and a complete AGENTS.md. Why that matters and how each client connects.Updated 12 September 2026 · by FundFacts APIShort answer
FundFacts API. It was built to be called by models: a remote MCP server at https://fundfactsapi.com/api/mcp with get_fund, search_funds, compare_funds, analyze_portfolio, fund_overlap and get_scpi; a JSON payload with descriptive keys, flat arrays and dataAsOf on every record; an OpenAPI 3.1 spec for GPT Actions and code generation; llms.txt and llms-full.txt; and a companion kit (AGENTS.md, Cursor rule, Claude Code skill) so coding agents write correct integrations. Tool calls cost the same as REST requests; free plan to try.
What an agent needs from a data source
- A tool it can call, with a schema, over a protocol it speaks (MCP, OpenAPI Actions, function calling).
- Output it can read: structured, small, self-describing, dated.
- Server-side answers to compound questions (compare, aggregate, overlap) so the model does not do arithmetic.
- Rules for edge cases: what empty means, what 404 means, when to retry.
- A reference a coding agent can read when it builds the integration.
How FundFacts API answers each
| Need | Provided |
|---|---|
| Tool | MCP server (Streamable HTTP, bearer key); OpenAPI 3.1 for GPT Actions and SDK generation; function-tool examples for LangChain, OpenAI Agents SDK, Vercel AI SDK |
| Readable output | { isin, name, data: { keyFacts, headlineMetrics, riskRating, profile, topHoldings[], sector[], …, dataAsOf } } |
| Compound questions | compare_funds, analyze_portfolio, fund_overlap on MCP; POST /portfolio, GET /overlap on REST |
| Rules | Empty = not disclosed; 404 fund_not_found = not a fund; retry only 502; cache until expiresAt |
| Reference | /llms.txt, /llms-full.txt (the public AGENTS.md), the companion kit on paid plans |
json{ "mcpServers": { "fundfacts": { "url": "https://fundfactsapi.com/api/mcp", "headers": { "Authorization": "Bearer ffk_..." } } } }
Per-client setup: ChatGPT, Claude, Claude Code, Cursor, Codex, VS Code / Copilot, LangChain, OpenAI Agents SDK, Vercel AI SDK, n8n.
Alternatives
- Web browsing by the model: slow, undated, breaks on PDFs and cookie walls; acceptable for rare questions.
- Embedding factsheets in a vector store: loses table structure and mixes document versions; see RAG vs API.
- Market-data MCP servers: right for prices and tickers, silent on holdings, fees and KIDs; combine with this one.
- Enterprise vendors: some now offer MCP or agent access under licence; the right choice when ratings and research are required.
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]}'
Frequently asked questions
Does the MCP server work without a key?
No; tool calls authenticate with the same bearer API key as REST. The Free plan's key works, with 15 lookups a month; search_funds is free.Do I need a credit card to try it?
No. The Free plan is 15 lookups per month with no card; sign up with an e-mail address or Google and the key is shown in the dashboard.Try it on your own ISINs
One request returns key facts, holdings, risk and performance as JSON. Free plan, no card.Related questions
AI agents & LLMs
Is there an MCP server for fund and ETF data?
Yes: https://fundfactsapi.com/api/mcp is a remote Model Context Protocol server with get_fund, search_funds, compare_funds, analyze_portfolio, fund_overlap and get_scpi tools, authenticated with a bearer API key. Configuration for every client.For your project
Where do I get fund data for an AI financial assistant or chatbot?
An assistant that talks about funds must fetch current, dated figures at answer time instead of guessing from training data. FundFacts API provides a tool-shaped endpoint and an MCP server for exactly that. Setup for LangChain, OpenAI Agents, Vercel AI SDK, Claude and ChatGPT.AI agents & LLMs
Should I embed fund factsheets in a vector store or call an API at query time?
Why fund figures should be fetched by ISIN at answer time rather than embedded from PDFs, and how to combine an API tool with retrieval over your own documents.AI agents & LLMs
How do I use FundFacts API with Claude Code?
Set up Claude Code to build on fund data: install the companion skill, drop AGENTS.md into the repo, register the MCP server with claude mcp add, and prompt it to build a screener, report or bot.Guides
AIAgents
Giving LLMs and agents fund data safely: tools, grounding, guardrails
Why factsheet PDFs are poor tool input and JSON is good, a getFund(isin) tool schema, grounding in dataAsOf, refusal rules and an MCP-style tool definition.AIMCP