mcp-registry/io.bildata/bildata · v1.0.0
As of 2026-10-17 11:46 UTC, the Bildata MCP server is up with a Glimind reliability score of 92/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 8 minutes.
Danish vehicle registration tax (registreringsafgift) calculator and DMR registration statistics
Claude Code
claude mcp add --transport http bildata-mcp-server https://bildata.io/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"bildata-mcp-server": {
"type": "http",
"url": "https://bildata.io/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
6 of 6 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones.
Handshake + tools/list takes ~1,707 ms.
Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably.
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fio.bildata%2Fbildata/fixes
{
"name": "calculate_registreringsafgift",
"description": "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",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"vehicleType",
"condition"
],
"properties": {
"co2": {
"type": "number",
"description": "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."
},
"aaben": {
"type": "boolean",
"description": "Varebil only: open cargo bed (ladvogn)"
},
"avgKm": {
"type": "number",
"description": "Used: average odometer km of the comparable adverts. Part of the actualKm/avgKm/vehicleAgeYears set — a partial send is silently ignored."
},
"nypris": {
"type": "number",
"description": "Used 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."
},
"actualKm": {
"type": "number",
"description": "Used: actual odometer km. The km regulation is skipped entirely unless actualKm, avgKm, vehicleAgeYears AND handelspris are all present."
},
"condition": {
"enum": [
"new",
"used"
],
"type": "string",
"description": "new = first registration of a new vehicle; used = import/revaluation of a used vehicle"
},
"elForbrug": {
"type": "number",
"description": "Electric consumption in Wh/km. Send WITH elRaekkevidde — the battery deduction is (elForbrug/1000) * elRaekkevidde, so either one alone is a no-op."
},
"isElectric": {
"type": "boolean",
"description": "MOTORCYKEL: 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."
},
"targetYear": {
"type": "number",
"description": "Rules 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."
},
"totalvaegt": {
"type": "number",
"description": "Varebil only: total weight in kg"
},
"handelspris": {
"type": "number",
"description": "Used vehicles: REQUIRED when condition=\"used\". Current Danish trade price in DKK, incl. registration tax. Unused when condition=\"new\"."
},
"vehicleType": {
"enum": [
"personbil",
"varebil",
"motorcykel"
],
"type": "string",
"description": "Vehicle category under Danish law"
},
"bruttovaerdi": {
"type": "number",
"description": "New 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."
},
"elRaekkevidde": {
"type": "number",
"description": "Electric range in km (WLTP). Send WITH elForbrug — either one alone is a no-op."
},
"condition_stand": {
"enum": [
"under_middel",
"middel",
"over_middel"
],
"type": "string",
"description": "Used: maintenance condition (vedligeholdelsesstand)"
},
"vehicleAgeYears": {
"type": "number",
"description": "Used: 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."
},
"allDealerListings": {
"type": "boolean",
"description": "Used: true only if EVERY comparable advert is a dealer listing (enables annoncefradrag + leveringsomkostninger)"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "get_afgift_rates",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "get_market_stats",
"description": "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 i",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"dimension"
],
"properties": {
"kind": {
"enum": [
"all",
"Personbil"
],
"type": "string",
"description": "Default: all"
},
"dimension": {
"enum": [
"fuel_type",
"brands",
"evs",
"imports",
"monthly_totals",
"country_of_origin"
],
"type": "string",
"description": "Which slice to return; exactly one per call"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.bildata/bildata"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.bildata/bildata"}) over MCP.
calculate_registreringsafgift ~1,187 tokensforecast_registreringsafgift ~607 tokensget_model_stats ~339 tokensget_market_stats ~265 tokensget_top_models ~244 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.bildata%2Fbildata?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.bildata%2Fbildata?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.bildata%2Fbildata.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.bildata%2Fbildata.svg :target: https://glimind.com/server/mcp-registry%2Fio.bildata%2Fbildata?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:fc83bca96e72f9d1…, first seen 2026-10-17, included at leaf 9412 of 17,519. Version history · verify what your client received.
Compare: most reliable data servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-17 11:46 UTC, the Bildata MCP server is up with a Glimind reliability score of 92/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 8 minutes.
Bildata MCP server advertises 6 tools, including calculate_registreringsafgift, forecast_registreringsafgift, get_afgift_rates, get_market_stats, get_model_stats.
Point your MCP client at this streamable-http endpoint: https://bildata.io/mcp
Glimind scanned all 6 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.