---
name: european-financial-data-setup
description: Connect an agent to European Financial Data through MCP or REST, then verify one data request.
---

# Connect to European Financial Data

Help the user connect their agent or application and verify a small real query. European Financial Data provides company identifiers, financial statements, market data, and European disclosures. The service is in beta; coverage and source freshness vary.

## Start here

Read the public connection manifest at https://eurofindata.com/agent-manifest.json for structured endpoints, authentication, verification calls, and capability limits. This is our documented connection description, not an OAuth or automatic client-registration endpoint.

Testing access is free. No payment, card details, checkout, or subscription is required for setup. An account key is required; access and usage limits are shown in the user's dashboard. Do not invent an allowance value or promise unlimited public access.

Follow this order: check the client's MCP support; locate or create an account key privately; configure the connection; discover tool schemas; verify one small query; then answer the user's research question. Ask the user only for the next input that is actually missing. Do not navigate dashboard or payment screens when the required key is already configured.

## Choose a connection

Use hosted MCP when the user's client supports Streamable HTTP and custom authorization headers. Use REST for scripts, notebooks, or clients without that MCP capability. No server installation is required for the hosted connection.

- MCP endpoint: https://api.eurofindata.com/mcp
- MCP transport: Streamable HTTP
- REST base URL: https://api.eurofindata.com/v1
- OpenAPI schema: https://api.eurofindata.com/openapi.json
- Authentication for both: Authorization: Bearer <account-api-key>
- Create and manage account keys: https://eurofindata.com/dashboard/api-keys

The current hosted MCP uses account API keys. An OAuth sign-in flow and public client-directory integrations are not available. A Clerk application key is not a financial-data API key.

Check whether EUROFINDATA_API_KEY is already configured locally without displaying its value. If a key is missing, guide the user to create a named key and store it in a private environment variable or client secret configuration. Do not ask them to paste the secret into chat, put it in a URL, or commit it to a repository. Configure only the client the user is using and preserve existing MCP servers.

## Connect an MCP client

For Claude Code, with the account key already in the local environment:

```bash
claude mcp add --transport http european-financial-data 'https://api.eurofindata.com/mcp' \
  --header "Authorization: Bearer $EUROFINDATA_API_KEY"
```

Check the connection with /mcp or claude mcp list.

For Cursor, add the following server entry to the user's private ~/.cursor/mcp.json, merging it with existing entries. Replace the placeholder privately with the account key, or use the client's supported secret/environment mechanism:

```json
{
  "mcpServers": {
    "european-financial-data": {
      "url": "https://api.eurofindata.com/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}
```

For another client, configure the endpoint, Streamable HTTP transport, and bearer header above. If it cannot send custom headers, use REST. Reload MCP connections or start a new session if the client does not discover newly added tools.

## Verify access

Discover the available MCP tools and their schemas. Call search_companies with query ASML, then get_income_statements with ticker ASML, period annual, and limit 1. Do not guess tool names or request arguments when the client can discover them.

With REST, make these two small requests using the same bearer header:

```bash
curl 'https://api.eurofindata.com/v1/companies/search?q=ASML&limit=1' \
  -H "Authorization: Bearer $EUROFINDATA_API_KEY"

curl 'https://api.eurofindata.com/v1/financials/income-statements?ticker=ASML&period=annual&limit=1' \
  -H "Authorization: Bearer $EUROFINDATA_API_KEY"
```

Report the company identifier, report period, currency, and source returned. Explain which connection was configured and whether verification succeeded. Do not claim success from a successful handshake alone.

## Answer research questions

1. Resolve the company with search_companies. Confirm that the requested issuer is in the dataset.
2. Check get_company_coverage and get_data_freshness before selecting datasets or promising a historical range. Inspect automatically_refreshed, refresh_job_status, refresh_blocked_reason, last_success_at, latest_data_date, freshness_state, and filing_backlog. A recent successful import does not guarantee complete coverage or that a new report exists.
3. For margin history, use get_income_statements and get_financial_metrics. Operating margin is operating income divided by revenue. Missing or zero revenue cannot produce a valid margin; preserve it as missing. Use actual reporting periods and report gaps.
4. For issuer-defined adjusted measures, use get_apm_metrics and retain the original label, period, currency, and definition. An APM is not interchangeable with an IFRS line item.
5. Use get_operational_kpis for available operating KPIs. Coverage is sparse. Use get_forward_guidance only when records exist and verify its raw_excerpt against the original announcement; guidance extraction is heuristic and may need correction.
6. Use get_company_filings(ticker="ASML", limit=5) to locate indexed financial-report references, source URLs, reporting periods, content hashes, parser quality, archive status, and superseded reports. Match statement filing IDs to returned report IDs. Use get_sec_filings for additional SEC documents where covered. These tools return references, not arbitrary full-text search or Item 7 extraction. Narrative analysis requires opening the original source documents with a suitable document/browsing tool.

Production database verification on 6 October 2026 found five ASML annual income-statement periods (2021–2025). The 2025 record contains revenue of EUR 32,667,300,000 and operating income of EUR 12,054,000,000, giving a derived operating margin of about 36.9%. These are dated verification examples, not live query results; retrieve current records before answering. Nvidia and Google/Alphabet are outside the current company universe. SAP has eleven annual periods (2015–2025), with a missing revenue value in 2017. Do not claim universal twenty-year history, complete KPI coverage, current quotes, or data updated seconds after publication.

When producing a table or chart, keep the reporting period, units, currency, and source beside the values. Do not turn nulls into zeros, silently bridge missing chart points, or present a derived record summary as a verbatim filing quote. Include source links when the response supplies them; do not invent citations.

## Worked examples and source comparisons

Read https://eurofindata.com/research for public, source-backed examples and comparisons. Use the complete Markdown versions below to fetch articles. https://eurofindata.com/llms-full.txt includes all research bodies, prompts, tables and sources; https://eurofindata.com/agent-manifest.json lists the individual HTML/Markdown and sample-download resources.

- [Analyze ASML’s operating margin with an AI agent](https://eurofindata.com/research/asml-operating-margin/index.md): Worked example.
- [Where to get European financial data for AI agents](https://eurofindata.com/research/european-financial-data-for-ai-agents/index.md): Field guide.
- [Financial Datasets vs European Financial Data](https://eurofindata.com/research/financial-datasets-vs-european-financial-data/index.md): Comparison.
- [Alpha Vantage vs European Financial Data](https://eurofindata.com/research/alpha-vantage-vs-european-financial-data/index.md): Comparison.
- [Public filings or a financial data MCP server?](https://eurofindata.com/research/public-filings-vs-financial-data-mcp/index.md): Comparison.
- [MCP vs REST for financial research](https://eurofindata.com/research/mcp-vs-rest-financial-data/index.md): Comparison.
- [Read LVMH’s reported and adjusted measures carefully](https://eurofindata.com/research/lvmh-reported-vs-adjusted-profit/index.md): Worked example.
- [Build a SAP margin history without filling the gaps](https://eurofindata.com/research/sap-financial-history-missing-data/index.md): Worked example.
- [Research European short-position disclosures with an agent](https://eurofindata.com/research/european-short-position-disclosures/index.md): Field guide.
- [Ticker, ISIN or LEI: find the right European company](https://eurofindata.com/research/company-identifiers-ticker-isin-lei/index.md): Field guide.
- [How to check whether financial data is actually current](https://eurofindata.com/research/financial-data-freshness/index.md): Field guide.
- [Finnhub vs European Financial Data](https://eurofindata.com/research/finnhub-vs-european-financial-data/index.md): Comparison.
- [FactSet vs European Financial Data](https://eurofindata.com/research/factset-vs-european-financial-data/index.md): Comparison.
- [FinancialData.Net vs European Financial Data](https://eurofindata.com/research/financialdata-net-vs-european-financial-data/index.md): Comparison.
- [Financial data providers, marketplaces and directories](https://eurofindata.com/research/financial-data-providers-marketplaces-directories/index.md): Field guide.
- [Get European company financial statements in Python](https://eurofindata.com/research/european-financial-data-python/index.md): Worked example.

These articles are editorial guidance, not live tool output. Samples are dated 4 October 2026. ASML uses EU-IFRS/ESEF values; do not substitute its US GAAP series. LVMH's total net profit includes non-controlling interests and differs from the group share. CSV amounts are in full currency units; empty numeric cells mean missing values. Retrieve current records for a new research question.

Comparisons disclose that we publish them. They use provider documentation and our examples, not authenticated paid-service benchmarks. Financial Datasets, FinancialData.Net, Finnhub and FactSet are distinct services. Datarade is a marketplace and Find My Moat is a directory; do not treat these roles as interchangeable APIs. Follow current provider documentation for availability and entitlements.

## Refresh scope

As configured on 6 October 2026, the worker has 75 bounded jobs, including daily ESEF discovery for all 27 supported countries, ECB rates and official regulatory disclosures, weekly GLEIF/ESMA work, and monthly macro, insurance and ownership registers. ESEF imports process at most 25 reports from three index pages per country per run, prioritizing new reports while retaining historical catch-up. Segments/APMs/KPIs advance through per-report checkpoints. Inspect the actual job outcome: configured does not mean refreshed or complete. Failed sources and dependencies remain visible. Prices and related Yahoo feeds, ETF holdings, news, and sources lacking required credentials remain skipped; historical records are not live quotes. Current insurance aggregates distinguish annual and finalized quarterly series.

The freshness summary counts registered datasets and processing jobs, not independent publishers. A stale flag can mean old observations or an overdue processing run; it does not necessarily mean an ingestion failure. Credential-gated skipped sources are reported separately. Check the relevant source rows, including skipped/error states, rather than inferring research quality from the total alone. HTTP readiness confirms availability, not freshness.

## Usage and troubleshooting

REST data requests and MCP data tool calls share the user's account allowance. Connecting and listing tools do not consume data allowance. Check usage at https://eurofindata.com/dashboard/usage. Expensive workbook and artifact creation are disabled in the initial hosted beta.

- Missing tools: reload connections or open a new client session, then discover tools again.
- 401: verify the configured account key and bearer header without printing the key.
- 429: honor Retry-After and the account reset time. Use bounded backoff.
- 503 or an unavailable endpoint: stop and explain what needs fixing; do not repeatedly retry.
- Revoked keys: create a replacement through the dashboard and update the private client configuration.

## Documentation

- Index: https://eurofindata.com/llms.txt
- Connection manifest: https://eurofindata.com/agent-manifest.json
- Quickstart: https://eurofindata.com/docs/quickstart
- MCP setup: https://eurofindata.com/docs/mcp
- MCP tools and research: https://eurofindata.com/docs/mcp-tools
- Authentication: https://eurofindata.com/docs/authentication
- Coverage: https://eurofindata.com/docs/coverage
- Provenance: https://eurofindata.com/docs/provenance
- API reference: https://eurofindata.com/docs/api-reference
