ECB Key Interest Rates: Deposit Facility, Main Refinancing, Marginal Lending
ecb/key-interest-rates
The European Central Bank's key interest rates for the euro area, in percent per annum: the deposit facility rate (DFR), the main refinancing operations rate (MRR_FR, fixed-rate tenders from 2008-10-15; MRR_MBR, the minimum bid rate on variable-rate tenders, for 2000-06-28 to 2008-10-14) and the marginal lending facility rate (MLFR). Choose daily (the rate in force on every calendar day) or only the dates the rate changed, and the last observations up to a date you give. Returns the ECB's SDMX-JSON response unchanged; the date of each observation is in the response's time axis. Negative and zero rates are real values. Source: European Central Bank (ECB), Financial market data (FM), reused under the ECB's disclaimer and copyright notice; Eden Engine is not an official ECB product and the ECB is not responsible for it. This data may be obtained free of charge through the ECB Data Portal (https://data.ecb.europa.eu).
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
Source: European Central Bank (ECB), Financial market data (FM). Reused under the ECB's disclaimer and copyright notice, which permits free use with the ECB cited as the source. This data may be obtained free of charge through the ECB Data Portal (https://data.ecb.europa.eu). Served unchanged by Eden Engine; not an official ECB product, and the ECB is not responsible for it.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "ecb/key-interest-rates" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "ecb/key-interest-rates" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "ecb/key-interest-rates", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "ecb/key-interest-rates", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 20, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"rate"
],
"properties": {
"rate": {
"enum": [
"DFR",
"MRR_FR",
"MRR_MBR",
"MLFR"
],
"type": "string",
"description": "Which key rate: DFR the deposit facility rate (the ECB's policy rate in practice; negative from 2014-06-11 to 2022-07-26); MRR_FR the main refinancing operations rate, fixed-rate tenders (no observations from 2000-06-28 to 2008-10-14); MRR_MBR the main refinancing minimum bid rate, variable-rate tenders (only 2000-06-28 to 2008-10-14); MLFR the marginal lending facility rate. Percent per annum: 2.5 means 2.5%."
},
"as_of": {
"type": "string",
"pattern": "^(?:(?:200[1-9]|20[1-9][0-9])-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|02-(?:0[1-9]|1[0-9]|2[0-8]))|20(?:0[48]|[2468][048]|[13579][26])-02-29)$",
"description": "A calendar date, YYYY-MM-DD from 2001-01-01. The observations returned end on or before this date, and a date in the future returns the latest available. Omit for the latest observations. For MRR_FR a date from 2000-06-28 to 2008-10-14 returns its older 2000-06-27 observation; use MRR_MBR for that period."
},
"basis": {
"enum": [
"D",
"B"
],
"type": "string",
"default": "D",
"description": "D (default): the rate in force, one observation for every calendar day including weekends. B: only the dates the rate changed, one observation per change; its newest observation is the date of the LAST CHANGE, not today. Use B to list a rate's history cheaply, D for the rate on a day."
},
"last_n": {
"type": "integer",
"default": 1,
"maximum": 366,
"minimum": 1,
"description": "How many observations to return, counting back from the latest (or from as_of). 1 (default) is the single latest observation; with basis D 366 is a year of daily levels, with basis B 100 is more than every change since 1999."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"header",
"dataSets",
"structure"
],
"properties": {
"header": {
"type": "object",
"description": "Response envelope: id, prepared (timestamp), and sender.id, which is ECB.",
"additionalProperties": true
},
"dataSets": {
"type": "array",
"items": {
"type": "object",
"required": [
"series"
],
"properties": {
"series": {
"type": "object",
"description": "The series, keyed by position string such as 0:0:0:0:0:0:0. Its observations map a time-axis position to [value, OBS_STATUS, OBS_CONF, OBS_PRE_BREAK, OBS_COM]: value is the rate in percent (a number, possibly 0 or negative; null only on the end-of-series marker of the MRR_MBR change dates); OBS_STATUS is a position into THIS response's structure.attributes.observation, which lists only the codes present (A normal value, M missing value), so never read 0 as normal without checking.",
"additionalProperties": true
}
},
"additionalProperties": true
},
"description": "One data set. Its `series` object holds the single requested series: `attributes` (positions into structure.attributes.series, among them TITLE, UNIT PCPA percent per annum, and DECIMALS) and `observations`."
},
"structure": {
"type": "object",
"description": "The legend that decodes dataSets: dimensions.series (code lists), dimensions.observation[0].values (the time axis, one entry per observation returned, each with its date `id`), attributes.series (TITLE, UNIT, DECIMALS ...) and attributes.observation (the status legend).",
"additionalProperties": true
}
},
"description": "The ECB's SDMX-JSON 1.0 response, unchanged. Each key in dataSets[0].series is a colon-joined list of positions into structure.dimensions.series (FREQ, REF_AREA, CURRENCY, PROVIDER_FM, INSTRUMENT_FM, PROVIDER_FM_ID, DATA_TYPE_FM); each key in a series' observations is a position into structure.dimensions.observation[0].values, whose `id` is the date (YYYY-MM-DD).",
"additionalProperties": true
}