Normalized US-GAAP financial statements & fundamentals from SEC EDGAR, as MCP tools for LLM agents.
Runs on your machine from its package; the steps are below.

At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx datavidence-financials
MCP client config
{
"mcpServers": {
"datavidence-financials": {
"command": "uvx",
"args": [
"datavidence-financials"
]
}
}
}Normalized US-GAAP financial statements for every SEC XBRL filer — point-in-time, as originally reported — as MCP tools for your AI agent (or a plain REST API).
Language models are good at reasoning about financial statements and bad at getting them. SEC EDGAR has the data, but its XBRL is a thicket of inconsistent tags, renamed concepts, and per-filer quirks — so agents either hallucinate the numbers or you spend weeks building a normalization layer. This is that layer: your agent asks for a company's financials and gets a clean, consistent answer — over the Model Context Protocol, or as a plain REST API.
⭐ If this is useful, please star the repo. It's a solo, early project, and stars are how other developers find it.

This is the open-source, AI-native layer for the Datavidence Financials API — a standalone stdio server that forwards over HTTPS to the REST API (bring your own key). The connector is MIT-licensed; the underlying API is a commercial service.
Run it with no clone using uv — it installs into a throwaway environment:
FL_API_KEY=sandbox_demo_key uvx datavidence-financials
sandbox_demo_key returns sample data with no signup — good for a first run. Set FL_API_KEY to your real key for live SEC data. The server speaks MCP over stdio, so an MCP client (e.g. Claude Desktop, below) launches it.
Or install it as a persistent tool with pipx:
pipx install datavidence-financials
FL_API_KEY=sandbox_demo_key datavidence-financials
Clients that support remote MCP servers (streamable HTTP) can connect without installing anything:
| URL | Key | Data |
|---|---|---|
https://mcp.financials.datavidence.ai/mcp | none | sample (AAPL FY2023) |
https://mcp.financials.datavidence.ai/rapidapi/mcp | your RapidAPI key, as X-API-Key or Authorization: Bearer | live SEC data, metered by RapidAPI against your plan |
Claude Code:
claude mcp add --transport http datavidence-financials \
https://mcp.financials.datavidence.ai/rapidapi/mcp \
--header "X-API-Key: YOUR_RAPIDAPI_KEY"
For the sample data, use the /mcp URL and leave out the header.
claude.ai: add https://mcp.financials.datavidence.ai/mcp as a custom connector with no sign-in. claude.ai can't send an API key for most accounts yet, so it gets the sample data for now.
as_of date and you get the figures as they stood then — no look-ahead bias from later restatements. The thing backtests quietly get burned without.Honest scope: US-GAAP only (IFRS filers return a clear "unsupported" signal rather than wrong numbers); XBRL-era history (~2009 onward). And when a company reorganizes under a new holding entity, SEC's ticker map points only at the successor CIK — the earlier years stay under the predecessor, so the error tells you and you pass cik= directly.
get_financials — normalized income statement + balance sheet + cash flow
for one company and fiscal year, from SEC EDGAR XBRL. Supports as_of
(point-in-time, as originally reported), include_provenance (per-value SEC
accession, filed date, and direct EDGAR source URL), and include_ratios
(margins, ROA/ROE, leverage).get_financials_batch — the same, for up to 25 companies in one call
(comma-separated tickers/CIKs). Per-symbol results; counts as a single quota
unit, so one bad symbol never fails the batch.list_filings — a company's recent SEC filings (newest first) from the
EDGAR submissions index; filter by form (e.g. 10-K). Use it to discover which
fiscal years are available before calling get_financials.get_revisions — how a fiscal year's figures CHANGED across filings: every
reported value with its filing date, form, SEC accession and EDGAR link, plus
whether it was restated and by how much. Pfizer's FY2019 revenue was filed at
$51.75B in 2020 and restated to $40.9B by 2022 — this is how you see that.search_companies — find a ticker and CIK by ticker or company name, for
when you have "Berkshire" and need BRK-B. Use it before the tools above,
which all require an identifier.get_usage — the key's monthly quota (tier, used, remaining, reset). Free
to call; consumes no quota.Errors surface the API's recovery_action hint, so agents self-correct.
Add to claude_desktop_config.json, then fully quit (Cmd+Q) and reopen Claude
Desktop — the tools appear:
{
"mcpServers": {
"datavidence-financials": {
"command": "uvx",
"args": ["datavidence-financials"],
"env": { "FL_API_KEY": "sandbox_demo_key" }
}
}
}
Then ask, e.g., "Get AAPL's FY2023 income statement, balance sheet, and cash flow with ratios." Swap in your real key for live data.
Add to ~/.codex/config.toml, then start codex — the tools appear:
[mcp_servers.datavidence-financials]
command = "uvx"
args = ["datavidence-financials"]
env = { FL_API_KEY = "sandbox_demo_key" }
# uvx downloads the package on first run; allow more than Codex's 10 s default.
startup_timeout_sec = 30
Swap in your real key for live data.
Or connect by URL instead (nothing to install; set DATAVIDENCE_API_KEY to your RapidAPI key):
[mcp_servers.datavidence-financials]
url = "https://mcp.financials.datavidence.ai/rapidapi/mcp"
bearer_token_env_var = "DATAVIDENCE_API_KEY"
Leave out bearer_token_env_var and use https://mcp.financials.datavidence.ai/mcp for the sample data.
| Variable | Default | Notes |
|---|---|---|
FL_API_KEY | (none) | Your API key. sandbox_demo_key = no-signup trial (sample data). |
FL_API_BASE_URL | https://api.financials.datavidence.ai | Point at a marketplace gateway for metered BYOK access. |
FL_API_KEY_HEADER | X-API-Key | Header to send the key in (e.g. X-RapidAPI-Key for the RapidAPI gateway). |
FL_API_TIMEOUT | 30 | Per-request timeout, in seconds. |
The demo key returns sample data. For live figures, grab a key on RapidAPI: Free (1,500 calls/mo), Pro ($29 / 50k), Business ($99 / 300k). Full feature parity across tiers — they differ only by monthly call volume.
To use your RapidAPI key, set these three variables (in the env block of the Claude Desktop config, or the env table in Codex's config.toml):
FL_API_BASE_URL=https://datavidence-financials-api.p.rapidapi.com
FL_API_KEY_HEADER=X-RapidAPI-Key
FL_API_KEY=<your RapidAPI key>
Your key is on RapidAPI under your app's Authorization page, or in any code snippet on the API's page. Calls are metered by RapidAPI against your plan. With a RapidAPI key, get_usage shows your RapidAPI plan and its monthly limit; RapidAPI meters your calls, so check how many you've used in your RapidAPI dashboard.
pip install -e .
FL_API_KEY=sandbox_demo_key python -m mcp_server.server # stdio transport
pip install -e ".[dev]"
pytest
29 tests, no network and no API key needed. They call every tool through the MCP SDK with the HTTP layer stubbed, check that an API error reaches the model with its recovery hint, and check that each tool declares all four behaviour hints (read-only, non-destructive, idempotent, open-world).
The connector runs on your machine, has no telemetry and stores nothing. When a tool is called it sends two things to the Datavidence Financials API: the tool's arguments (for example a ticker, a CIK, a fiscal year or a company-name search) and your API key, in a request header. It does not see your files or the rest of your conversation.
https://api.financials.datavidence.ai by default. If you set
FL_API_BASE_URL to the RapidAPI gateway, requests go through RapidAPI, under its own
privacy policy.Full policy: https://financials.datavidence.ai/privacy
Found a company where the numbers come back wrong, or a field/tool you need? Open an issue — the normalization edge cases are exactly the feedback that makes this better, and I read every one.
ai.datavidence/datavidence-financialsSECURITY.md to report a vulnerability privately.MIT © 2026 Datavidence LLC — see LICENSE. The connector is open-source; the underlying Datavidence Financials API is a commercial service.