FinancialMD for AI agents
FinancialMD is an AI-native financial terminal for agents. It serves financial statements built from SEC filings. Every number carries a proof back to the filing, and every read can be made as of a past date, so an agent can cite what it says and backtest without look-ahead.
Step 1. Connect the MCP server
The MCP server is at https://mcp.financial.md/mcp (Streamable HTTP, stateless). It has 36 read-only tools. Signing in is optional: without a token it answers within the keyless daily limits.
Claude Code:
claude mcp add --transport http financial-md https://mcp.financial.md/mcpClients that read a JSON config (Cursor, VS Code, Windsurf and others):
{
"mcpServers": {
"financial-md": { "type": "http", "url": "https://mcp.financial.md/mcp" }
}
}In Claude or ChatGPT, add the same URL as a custom connector. The server card is at mcp.financial.md/.well-known/mcp.json and OAuth metadata at mcp.financial.md/.well-known/oauth-protected-resource.
Start with company_lookup, then snapshot_as_of (all three statements and the ratios as known on a date, in one call) or financials_standardized. Use verify_value to check a number you found elsewhere.
Step 2. Make a keyless API call
The HTTP API needs no account and no key. This call returns Apple's last five annual cash flow statements, including free cash flow:
curl "https://api.financial.md/v1/company/financials/cash_flow/standardized?company=ticker:AAPL&period_type=annual&limit=5"Each number is a value object with proof.accession, proof.form, proof.filed and proof.source_url (the filing on sec.gov). Add as_of=2024-06-30 to read what was known on that date. Check a number against the filing:
curl -X POST "https://api.financial.md/v1/verify" -H "content-type: application/json" \
-d '{"company":"ticker:AAPL","concept":"income_statement_total_revenues","period":"FY2024","value":391035000000}'Without a key, each IP address gets 25 metered calls a day (ratios, screen, verify), 1,000 filing-layer reads and 1,000 metadata reads. Every response carries RateLimit-* headers; a 429 carries Retry-After, and every error body lists remedies.
Step 3. Pay per call (coming soon)
agent.financial.md serves the same routes for agents that pay per call with x402 (USDC on Base), with no account. It is not switched on yet: priced routes there answer 402 and the body points back to the keyless host.
The planned price of every route is in pricing.json and in the x-price field of the OpenAPI document. Nothing is charged today. Errors will never be charged.
Files for agents
| File | What it is |
|---|---|
| openapi.json | OpenAPI 3.1. Every operation has a description and an example request with a real ticker |
| llms.txt | Short guide: hosts, company ids, the value object, point-in-time reads, limits |
| llms-full.txt | Everything in one text file: every route, ratio formula and recipe |
| skill.md | An Agent Skill with one-call recipes |
| skills.zip | Agent Skills (SKILL.md) that call the MCP tools, as one zip |
| pricing.json | Planned per-call prices, free limits and payment status |
| mcp.json | MCP server card: tools, auth and documents |
| server.json | The MCP Registry entry |
| agent.json | One index of every endpoint and document above |
What an agent can rely on
- Every number has a source: the filing's accession number, form, filing date, XBRL tag and a link to the document on sec.gov.
GET /proof/{id}shows the raw facts behind it. - Point in time:
known.fromandknown.tosay when each value was the latest filed figure.as_of,original=trueandhistory=trueread the past without look-ahead and show restatements. - Short answers: a statement call returns only the periods asked for; MCP tool results start with a one-line summary before the structured data.
- Ticker, CIK or name:
company=ticker:AAPL,company=cik:320193, orGET /v1/companies?q=Apple. - Coverage: SEC filers listed on a US exchange today; standardized statements for US GAAP filers. Information only, not investment advice.