← Agent Data Hub · Catalogs · Time-series archive · /llms.txt · Privacy
Agent Data Hub is a read-only data connector for AI agents: official statistics, central bank rates, FX, energy, weather, holidays and research metadata from openly licensed public sources, with full histories. No account, no API key.
It serves 305 verified endpoints, 12,825 catalog entries (World Bank World Development Indicators, Eurostat datasets, Statistics Canada tables, Destatis GENESIS tables (German official statistics)) and an archive of 47,438 time series with 5,318,392 data points. Every answer names its source, license and data freshness.
| Claude (claude.ai, Desktop) | Settings → Connectors → Add custom connector → URL https://api.agentdatahub.de/mcp, no authentication |
| Claude Code | claude mcp add --transport http agentdatahub https://api.agentdatahub.de/mcp |
| Other MCP clients | { "mcpServers": { "agentdatahub": { "type": "http", "url": "https://api.agentdatahub.de/mcp" } } } (Streamable HTTP) |
| REST | GET https://api.agentdatahub.de/api/v1/ask?q=germany+inflation · OpenAPI |
All tools are read-only: they never change anything, here or at a data source.
| Tool | What it does |
|---|---|
ask_anythingAnswer a data question | Routes a plain-language data question to the best matching endpoint of this service (official statistics, central bank rates, FX, energy, weather, holidays, research metadata) or catalog entry (World Bank indicators, Eurostat datasets, Statistics Canada and Destatis GENESIS tables), runs it and returns compact JSON with source, license and data_freshness. Also returns confidence and, when unsure, ready alternative calls. Examples: "convert 250 usd to eur", "weather berlin tomorrow", "germany inflation", "hospital beds germany eurostat". When to use: the first call for any data question when you do not know the endpoint id. Use call_api instead when you already have an id from an earlier answer, get_series for a long numeric history. If nothing matches it returns status "unfulfilled"; search_apis lists endpoints by keyword. Read-only, no API key or signup. Free quota: 1000 calls/day per IP, shared across tools. |
search_apisSearch the endpoint catalog | Searches the catalog of verified endpoints (official statistics, interest rates, FX, energy, weather, geo, holidays, research, developer tools) by keyword and returns the best matches (10 by default) with id, short description, parameter names and an example query. When to use: to browse what exists for a topic, or when ask_anything returned "unfulfilled" or a low-confidence match. Pass the chosen id to call_api. Does not fetch any data and does not count against the quota. |
call_apiCall an endpoint | Runs one endpoint by id with parameters and returns its data as compact JSON (source, license, data_freshness included). Bundles answer whole tasks in one call: bundle-location-brief (weather, time, holidays for a place), bundle-country-brief, bundle-eurozone-brief, bundle-energy-brief-de, bundle-npm-package-brief. When to use: you know the endpoint id (from search_apis, from alternatives or catalog_choices of ask_anything, or from the docs) and want to set parameters exactly, e.g. another country or date. params are the endpoint's own query parameters as listed by search_apis (example_query). Unknown ids or bad params return an error message naming the problem. Read-only, no API key or signup. Free quota: 1000 calls/day per IP, shared across tools. |
get_seriesGet a full time series | Returns complete numeric histories as compact CSV (t,value) from this service's archive of openly licensed series, e.g. ECB FX rates since 1999 (fx.EUR.USD), World Bank indicators for all countries since 1960 (wb.FP.CPI.TOTL.ZG.DE), ECB rates and 10y yields (ecb.rate.deposit, ecb.yield10y.IT), Eurostat, Statistics Canada, ONS and FAO series, German power prices (smard.price.day), sunspots since 1749 (noaa.sunspot-number). Pass q to search series ids, or id to fetch one (max 1,000 points, most recent kept). When to use: for many periods of one number (e.g. yearly inflation since 2000, monthly FX since 2010), with from/to and resample. For the latest value with context use ask_anything; get_history only holds values this service recorded from live endpoints. Read-only, no API key or signup. Free quota: 1000 calls/day per IP, shared across tools. |
get_historyGet recorded endpoint history | Returns change points this service recorded over time for an endpoint (e.g. exchange rates, weather) as compact CSV. Use the same params as the live call. When to use: to see how a live value (e.g. an exchange rate or the weather at a place) changed since this service started recording it. For long official histories use get_series instead. Returns an error if nothing was recorded for these params. Read-only, no API key or signup. Free quota: 1000 calls/day per IP, shared across tools. |
| Prompt | What happens |
|---|---|
| What was Germany's inflation rate last month, and how did it change over the past year? | ask_anything → de-consumer-prices (Destatis) |
| Compare the 10-year government bond yields of Germany and Italy since 2015, yearly averages. | get_series ecb.yield10y.DE / ecb.yield10y.IT with resample=A |
| How many hospital beds does France have? Use Eurostat. | ask_anything → eurostat-dataset hlth_rs_bds1 (catalog choice) |
| Is next Monday a public holiday in Bavaria, and what is the weather forecast for Munich? | call_api bundle-location-brief |
| Show the euro to US dollar exchange rate since 2020 as monthly averages. | get_series fx.EUR.USD with resample=M |
license and licence_status: green = commercial reuse allowed, yellow = check the source terms, share-alike = derived data must keep the licence.data_freshness: live, cached, or stale_cache (source down, last known value with its date).truncated says what was cut; full=true returns everything, fields returns only chosen fields.status: "unfulfilled" | No endpoint fits the question. Rephrase with the topic and country, or use search_apis with keywords. |
confidence: "low" | The match is uncertain; alternatives and catalog_choices list ready calls with the parameters filled in. |
defaults_used | Parameters missing from the question were filled with examples; pass them explicitly if they matter. |
| Error with a reason (HTTP 422) | A parameter is invalid; the message says which and what is allowed. Nothing is substituted. |
HTTP 503 / retryable | The original source is unavailable; retry later. |
| Quota exhausted | The daily free quota is used up; it resets at 00:00 UTC. |
No account and no cookies. IP addresses are stored only as a daily-rotating pseudonymous hash; question texts are kept to learn which data is missing and are unlinked from that hash after 30 days. No conversation content beyond the tool arguments is received. Details: Privacy policy (Datenschutzerklärung).
Email: agent.apidatahub@gmail.com · Security reports: see security.txt · Operator: Impressum · Status: /healthz