Skip to main content
Glama

Server Details

Danish vehicle registration tax (registreringsafgift) calculator and DMR registration statistics

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation4/5

Tools target distinct resources and actions: tax calculation (new/used single), multi-year forecast, rates lookup, market-level stats, model lookup, and top-model ranking. The two tax tools (calculate vs forecast) share a domain and could be momentarily confused, but descriptions clearly separate them by vehicle condition and time span.

Naming Consistency5/5

All tool names use snake_case and follow a consistent verb_noun pattern (get_afgift_rates, get_market_stats, get_model_stats, get_top_models, calculate_registreringsafgift, forecast_registreringsafgift). The pattern is predictable despite mixed English/Danish domain terms.

Tool Count5/5

Six tools are well-scoped for the combined Danish vehicle tax and market statistics domain. Each tool covers a distinct facet (calculation, forecasting, rates, market stats, model lookup, top models), with no obvious redundancy.

Completeness4/5

The surface covers tax calculation for new/used vehicles, multi-year forecasting, rates, market-level stats, model stats, and top-model rankings. Minor gaps exist: no tool can answer historical monthly rankings older than the 12-month window, and brand totals outside the top 20 are not directly available, though these limitations are documented.

Available Tools

6 tools
calculate_registreringsafgiftAInspect

Calculate DANISH vehicle registration tax (registreringsafgift) for a new or used personbil, varebil or motorcykel under registreringsafgiftsloven. Same engine and validation as bildata.io's public calculator. Amounts in DKK; an estimate, not an official Motorstyrelsen valuation. REQUIRED PAIRS: condition="new" needs bruttovaerdi; condition="used" needs handelspris AND nypris (nypris is the used vehicle's own original price when new, not the new-vehicle price field). ALWAYS send co2 for a petrol, diesel or hybrid PERSONBIL or VAREBIL: an omitted co2 counts as 0 g/km, i.e. battery-electric, and makes the tax far too low with no error raised — zero on an ordinary car, and still only a fraction of the real figure on an expensive one. On motorcykel co2 does not select the drivetrain at all - isElectric does. Send every number as a JSON number (300000, not "300000"), use enum values exactly as listed, and OMIT an optional field you do not know rather than sending null.

NameRequiredDescriptionDefault
co2NoWLTP CO2 in g/km. PERSONBIL and VAREBIL: send it for any fuel-burning vehicle - an omitted value and an explicit 0 are BOTH read as battery-electric (EV phase-in and EV bundfradrag), which makes the tax far too low. Use 0 only for a pure EV. MOTORCYKEL: co2 does not select the drivetrain here; isElectric does, and a motorcykel sent with co2=0 and no isElectric is priced as fuel-burning.
aabenNoVarebil only: open cargo bed (ladvogn)
avgKmNoUsed: average odometer km of the comparable adverts. Part of the actualKm/avgKm/vehicleAgeYears set — a partial send is silently ignored.
nyprisNoUsed vehicles: REQUIRED when condition="used". The SAME vehicle's original price as new in DKK, incl. all taxes. Unused when condition="new" — for a new vehicle use bruttovaerdi.
actualKmNoUsed: actual odometer km. The km regulation is skipped entirely unless actualKm, avgKm, vehicleAgeYears AND handelspris are all present.
conditionYesnew = first registration of a new vehicle; used = import/revaluation of a used vehicle
elForbrugNoElectric consumption in Wh/km. Send WITH elRaekkevidde — the battery deduction is (elForbrug/1000) * elRaekkevidde, so either one alone is a no-op.
isElectricNoMOTORCYKEL: the EV switch for that vehicle type. For personbil and varebil the drivetrain comes from co2 (0 or absent = electric), so this flag does not change the tax — but DO send it for a battery-electric personbil or varebil: it is read as your declaration that the missing co2 is deliberate, and suppresses the warning that the answer looks too low.
targetYearNoRules year to calculate under (default: current). A year with no published table silently falls back to the current rates; the answer's rules_year says which table actually applied.
totalvaegtNoVarebil only: total weight in kg
handelsprisNoUsed vehicles: REQUIRED when condition="used". Current Danish trade price in DKK, incl. registration tax. Unused when condition="new".
vehicleTypeYesVehicle category under Danish law
bruttovaerdiNoNew vehicles: REQUIRED when condition="new" (unused when condition="used"). Taxable value in DKK, i.e. price incl. VAT and margin BEFORE registration tax. NOT the advertised Danish showroom price, which already contains the tax being calculated.
elRaekkeviddeNoElectric range in km (WLTP). Send WITH elForbrug — either one alone is a no-op.
condition_standNoUsed: maintenance condition (vedligeholdelsesstand)
vehicleAgeYearsNoUsed: vehicle age in years since first registration. Also used on its own for the under-6-months rule, so send it even when you cannot supply the km set. The km regulation additionally needs actualKm, avgKm and handelspris — that part is skipped unless all are present.
allDealerListingsNoUsed: true only if EVERY comparable advert is a dealer listing (enables annoncefradrag + leveringsomkostninger)
forecast_registreringsafgiftAInspect

Project DANISH registration tax for a NEW vehicle across rules-years 2026–2029 (the EV/plug-in phase-in schedule changes the tax each year). Returns per-year results and deltas vs 2026. Amounts in DKK. Estimates, not official valuations. NEW vehicles only, and always the whole 2026-2029 span: for a USED import, or for a single year, use calculate_registreringsafgift instead. Send every number as a JSON number (300000, not "300000").

NameRequiredDescriptionDefault
co2NoWLTP CO2 in g/km. PERSONBIL and VAREBIL: send it for any fuel-burning vehicle - an omitted value and an explicit 0 are BOTH read as battery-electric (EV phase-in and EV bundfradrag), which makes the tax far too low. Use 0 only for a pure EV. MOTORCYKEL behaves differently on THIS tool: an explicit co2=0 counts as electric, but an OMITTED co2 does NOT - the bike is priced as fuel-burning and the tax comes out far too HIGH. Declare an electric motorcykel with isElectric=true.
aabenNoVarebil only: open cargo bed (ladvogn)
nyprisYesPrice as new in DKK (taxable value)
isElectricNoMOTORCYKEL: the EV switch for that vehicle type, and on this tool the only reliable way to declare one - leave it unset with co2 omitted and the bike is priced as fuel-burning. For personbil and varebil the drivetrain comes from co2 (0 or absent = electric), so this flag does not change the tax.
totalvaegtNoVarebil only: total weight in kg
vehicleTypeYesVehicle category under Danish law
electricRangeNoElectric range km
batteryCapacityNoBattery kWh (used with electricRange to derive Wh/km)
electricConsumptionNoElectric consumption Wh/km (overrides battery/range derivation)
get_afgift_ratesAInspect

Machine-readable Danish vehicle registration tax rates 2026–2029: skalaknæk (brackets), CO2 tiers, bundfradrag and EV/plug-in phase-in (indfasning) percentages per year. Identical to GET https://bildata.io/api/afgift-prognose/rates. 2027–2029 rates are provisional.

NameRequiredDescriptionDefault

No parameters

get_market_statsAInspect

Danish new-vehicle registration statistics from bildata.io (weekly DMR data). Dimensions: fuel_type, brands (top 20), evs, imports (vehicles brought in from abroad, by toldsyn date: counts, share, top makes), monthly_totals (last 12 months incl. leasing series), country_of_origin. kind=all covers every vehicle type; kind=Personbil passenger cars only. as_of is the data cutoff of the underlying extract — a month whose as_of is before month-end is PARTIAL. Market-level ONLY: the brands dimension is the top 20 brands and there is no per-model breakdown here — for a named MODEL use get_model_stats. It is NOT a way to get a brand total for a brand outside the top 20: a brand-only query there returns that brand's individual model rows (default 5, max 10, truncation disclosed in note) and defaults to kind=Personbil where this tool defaults to kind=all, so summing them does not reproduce a brand total from here.

NameRequiredDescriptionDefault
kindNoDefault: all
dimensionYesWhich slice to return; exactly one per call
get_model_statsAInspect

Look up Danish registration numbers for a SPECIFIC car model by name — e.g. "Tesla Model Y", "VW ID.4", "Skoda Enyaq". Covers every model since 2018. Use this when the question names a model or brand; get_top_models only covers the top sellers of one month, and get_market_stats only the top 20 brands. A model still selling returns period figures (this month, this year, last year, market share) plus all-time totals. A model with no registration in the last ~3 years returns ONLY lifetime totals and its first/last registration date — the period figures do not exist for it and are listed in unavailableFields; their absence is missing data, NOT zero sales. Spelling is forgiving (ID.4 = ID 4 = id4, Citroen = Citroën) and the response states which row it matched and how, so verify name before quoting the numbers.

NameRequiredDescriptionDefault
kindNoDefault: Personbil (passenger cars)
limitNoMax matches to return, default 5
queryYesModel or brand name, e.g. "Tesla Model Y" or "Toyota"
groupedNoDefault true: trims collapsed into canonical models (Enyaq 85 -> Skoda Enyaq), matching bildata.io/stats. false returns raw registry variants.
get_top_modelsAInspect

Top-selling car models (and variants) in Denmark for a given month, from bildata.io's top-50 statistics (passenger cars, monthly, 12-month rolling window). Default: latest month, top 10. as_of is the data cutoff — if it is before month-end, the month is PARTIAL, not complete. A RANKING, bounded by the 12-month window. A model outside that month's top 50 is absent here — look that one up by name with get_model_stats. A month OLDER than the window cannot be answered by any tool on this server: get_model_stats reports fixed periods relative to today (this month, this year, last year, all-time), never an arbitrary past month.

NameRequiredDescriptionDefault
limitNoRows per list, default 10, max 50
monthNoYYYY-MM; default latest available

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedcalculate_registreringsafgift1 field changed
      • changedInput schema / properties / co2 / description
        Previous value: -"WLTP CO2 in g/km. Send it for ANY fuel-burning vehicle: an omitted value and an explicit 0 are BOTH read as battery-electric (EV phase-in and EV bundfradrag), which makes the tax far too low. Use 0 only for a pure EV."New value: +"WLTP CO2 in g/km. PERSONBIL and VAREBIL: send it for any fuel-burning vehicle - an omitted value and an explicit 0 are BOTH read as battery-electric (EV phase-in and EV bundfradrag), which makes the tax far too low. Use 0 only for a pure EV. MOTORCYKEL: co2 does not select the drivetrain here; isElectric does, and a motorcykel sent with co2=0 and no isElectric is priced as fuel-burning."
    • Changedforecast_registreringsafgift5 fields changed
      • addedInput schema / properties / aaben / description
        Added value: +"Varebil only: open cargo bed (ladvogn)"
      • changedInput schema / properties / co2 / description
        Previous value: -"WLTP CO2 g/km (0 for EVs)"New value: +"WLTP CO2 in g/km. PERSONBIL and VAREBIL: send it for any fuel-burning vehicle - an omitted value and an explicit 0 are BOTH read as battery-electric (EV phase-in and EV bundfradrag), which makes the tax far too low. Use 0 only for a pure EV. MOTORCYKEL behaves differently on THIS tool: an explicit co2=0 counts as electric, but an OMITTED co2 does NOT - the bike is priced as fuel-burning and the tax comes out far too HIGH. Declare an electric motorcykel with isElectric=true."
      • addedInput schema / properties / isElectric / description
        Added value: +"MOTORCYKEL: the EV switch for that vehicle type, and on this tool the only reliable way to declare one - leave it unset with co2 omitted and the bike is priced as fuel-burning. For personbil and varebil the drivetrain comes from co2 (0 or absent = electric), so this flag does not change the tax."
      • addedInput schema / properties / totalvaegt / description
        Added value: +"Varebil only: total weight in kg"
      • addedInput schema / properties / vehicleType / description
        Added value: +"Vehicle category under Danish law"
    • Changedget_market_stats1 field changed
      • addedInput schema / properties / dimension / description
        Added value: +"Which slice to return; exactly one per call"
  2. 6 tool updates
    • First observedcalculate_registreringsafgift
    • First observedforecast_registreringsafgift
    • First observedget_afgift_rates
    • First observedget_market_stats
    • First observedget_model_stats
    • First observedget_top_models

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables looking up sourced Danish income tax rates, thresholds and municipal tax figures for 2025–2027, and estimating salary income tax, take-home pay, marginal rates and skattekort details such as trækprocent and månedsfradrag.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to compute Portuguese vehicle taxes (ISV and IUC) and to estimate used-car price ranges from structured inputs. Every tax answer returns legal sources, explicit assumptions and a not-tax-advice disclaimer, while price estimates are clearly labelled as synthetic-data demos.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables analysis of Danish household electricity consumption to suggest optimal times for shifting usage to save money, using hourly import and grid charges from Eloverblik and spot prices from Energi Data Service.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources