Title97/100
Search car subscriptions
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Search offers by price, brand, fuel, drive, provider, term, mileage, fees, power and equipment. All filters combine in one call. Each provider's car appears once, as its first matching offer in the sort order (default price-asc); variant_count tells how many offers it stands for. Returns short summaries, totals and results_url, the same search on abomio.de. For the next page, send next_cursor as cursor with the same filters and sort; null means no more pages. On publication_changed, search again without cursor. Hosts that support MCP Apps show the offers as cards with photo, price, terms, fees and links.
The description explains the capability, when to use it, and what to expect.
Inputs90/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
customer
Who signs the contract: private for private persons, business for business customers. Omit for private offers. Prices include VAT in both groups.
Clear enough to supply this argument.
trailer_hitch
Filter by trailer hitch. included: only cars with it. absent: only cars without it. Omit to ignore it. Offers without data on it match neither value.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
heated_seats
Filter by seat heating. included: only cars with it. absent: only cars without it. Omit to ignore it. Offers without data on it match neither value.
Clear enough to supply this argument.
navigation
Filter by navigation system. included: only cars with it. absent: only cars without it. Omit to ignore it. Offers without data on it match neither value.
Clear enough to supply this argument.
reversing_camera
Filter by reversing camera. included: only cars with it. absent: only cars without it. Omit to ignore it. Offers without data on it match neither value.
Clear enough to supply this argument.
camera_360
Filter by 360° camera. included: only cars with it. absent: only cars without it. Omit to ignore it. Offers without data on it match neither value.
Clear enough to supply this argument.
brand
One car brand, for example Volkswagen. Aliases such as VW are accepted.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
fuel
Engine type: elektro (battery electric), benzin (petrol), diesel, hybrid (not plug-in), plug_in_hybrid, verbrenner (combustion engine, fuel not stated) or unbekannt (not stated). mild_hybrid is an old value; mild hybrids are listed by the fuel they burn.
Clear enough to supply this argument.
drive
Driven axle: frontantrieb (front-wheel), hinterradantrieb (rear-wheel) or allradantrieb (all-wheel). Offers with unknown or conflicting drive data do not match.
Clear enough to supply this argument.
transmission
Gearbox: automatik (automatic), manuell (manual) or unbekannt (not stated).
Clear enough to supply this argument.
provider
Provider ID such as finn. /agent-instructions.md lists the providers that have offers now.
Clear enough to supply this argument.
runtime
Contract term in months, for example 12. Only offers with exactly this term match.
Clear enough to supply this argument.
min_price
Minimum monthly rate in euros, VAT included.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_price
Maximum monthly rate in euros, VAT included.
Clear enough to supply this argument.
min_hp
Minimum power in metric horsepower (PS). Offers with unknown or conflicting power do not match.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
min_kw
Minimum power in kilowatts. Offers with unknown or conflicting power do not match.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
min_km_year
Minimum included kilometres per year, for example 30000.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_fees
Maximum total of required one-time fees in euros, such as delivery or a down payment. Use 0 for offers without such fees. Offers whose fees are not known do not match.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
availableOnly
Omit or true for offers that are still offered. false also returns offers that are no longer offered.
Clear enough to supply this argument.
q
Free text in German, for example a model such as ID.4. Phrases for price, fees, PS, mileage or equipment, such as bis 500 or Navi, act as those filters. Each other word must appear as text in the brand, model, vehicle name, motor, equipment line, fuel, transmission or provider name. Prefer the other filters where one fits.
Clear enough to supply this argument.
sort
Result order: price-asc (lowest monthly rate first), price-desc (highest first), hp-desc (most power first) or name-asc (vehicle name A to Z).
Clear enough to supply this argument.
limit
Offers per page; default 20, maximum 50.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Omit for the first page. For a later page, copy next_cursor from the previous page and keep the same customer, filters and sort.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Search car subscriptions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Output schema90/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"required": [
"checked_at",
"published_at",
"total",
"limit",
"next_cursor",
"results_url",
"total_offers",
"offers"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"description": "Offers per page; default 20, maximum 50.",
"exclusiveMinimum": 0
},
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Matching cars on all pages. Each provider's car appears once."
},
"offers": {
"type": "array",
"items": {
"type": "object",
"required": [
"delivery_time",
"fuel_type",
"id",
"included_km_per_year",
"price_per_month_eur",
"provider_name",
"runtime_months",
"scraped_at",
"transmission",
"availability",
"provider_id",
"source_url",
"provider_host",
"vehicle",
"variant_count"
],
"properties": {
"id": {
"type": "string",
"description": "Offer ID, unique within its provider. Use it with provider_id to read the full offer."
},
"vehicle": {
"type": "object",
"required": [
"brand",
"model",
"trim",
"motor"
],
"properties": {
"path": {
"type": "string",
"description": "Path of the model's comparison page on abomio.de, below /gewerbe for business-only offers. Absent when the model has no page."
},
"trim": {
"type": "string"
},
"brand": {
"type": "string",
"maxLength": 128
},
"model": {
"type": "string"
},
"motor": {
"type": "string"
}
},
"description": "Vehicle names as abomio.de normalizes them.",
"additionalProperties": false
},
"power_kw": {
"anyOf": [
{
"type": "number",
"maximum": 3000,
"exclusiveMinimum": 0
},
{
"type": "null"
}
],
"description": "Power in kilowatts."
},
"equipment": {
"anyOf": [
{
"type": "object",
"properties": {
"camera_360": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"navigation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"heated_seats": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"trailer_hitch": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"reversing_camera": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Equipment the provider states: true when the car has it, false when not. A missing field is unknown."
},
"fuel_type": {
"enum": [
"elektro",
"benzin",
"diesel",
"hybrid",
"plug_in_hybrid",
"verbrenner",
"unbekannt",
"mild_hybrid"
],
"type": "string",
"description": "Engine type: elektro (battery electric), benzin (petrol), diesel, hybrid (not plug-in), plug_in_hybrid, verbrenner (combustion engine, fuel not stated) or unbekannt (not stated). mild_hybrid is an old value; mild hybrids are listed by the fuel they burn."
},
"drive_type": {
"anyOf": [
{
"enum": [
"Allrad",
"Frontantrieb",
"Heckantrieb",
"Zweiradantrieb"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Driven axle: Allrad (all-wheel), Frontantrieb (front), Heckantrieb (rear) or Zweiradantrieb (two-wheel, axle unknown)."
},
"scraped_at": {
"type": "string",
"description": "When abomio.de last read this offer from the provider."
},
"source_url": {
"type": "string",
"description": "Link to the offer on abomio.de. It counts the click and redirects to the provider's page, or to the model page when the offer is no longer available. Programs that open a link to FINN or SIXT also get the model page."
},
"provider_id": {
"type": "string",
"description": "Provider ID such as finn. /agent-instructions.md lists the providers that have offers now."
},
"availability": {
"anyOf": [
{
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"enum": [
"available",
"stale"
],
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"status",
"since"
],
"properties": {
"since": {
"type": "string"
},
"status": {
"enum": [
"unavailable"
],
"type": "string"
}
},
"additionalProperties": false
}
],
"description": "available: confirmed by the provider. stale: still listed, but not confirmed for 45 minutes. unavailable: no longer offered; since is when it left."
},
"transmission": {
"enum": [
"automatik",
"manuell",
"unbekannt"
],
"type": "string",
"description": "Gearbox: automatik (automatic), manuell (manual) or unbekannt (not stated)."
},
"cost_coverage": {
"enum": [
"partial",
"complete"
],
"type": "string",
"description": "complete: the provider's required costs are all recorded. partial or absent: more costs can apply. Get the offer for each recorded cost."
},
"delivery_time": {
"type": "string",
"description": "Delivery time in German, as abomio.de normalizes it."
},
"provider_host": {
"type": "string",
"description": "Host of the provider page that source_url leads to, such as www.finn.com."
},
"provider_name": {
"type": "string",
"description": "Provider name for display."
},
"term_cost_eur": {
"type": "number",
"minimum": 0,
"description": "All monthly rates plus the recorded required fees over the full term. Absent when a required amount is unknown."
},
"variant_count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Matching offers of this car from this provider, such as other terms, mileage packages or colours. The row shows the first of them in the chosen sort. Narrower filters or results_url show the others."
},
"runtime_months": {
"type": "number",
"description": "Contract term in months."
},
"eligibility_note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Provider conditions on who can subscribe."
},
"guaranteed_model": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "true: the provider supplies this model. false: the provider may supply a similar model."
},
"one_time_fees_eur": {
"type": "number",
"minimum": 0,
"description": "Sum of the recorded required one-time fees, such as delivery or a down payment. Absent when an amount is unknown. Deposits are not included."
},
"price_per_month_eur": {
"type": "number",
"description": "Monthly rate in euros, VAT included."
},
"included_km_per_year": {
"type": "number",
"description": "Kilometres included per year."
}
},
"additionalProperties": false
}
},
"checked_at": {
"type": "string",
"description": "When abomio.de last checked the catalogue."
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Send as cursor to read the next page. null when there are no more pages. Treat it as opaque."
},
"results_url": {
"type": "string",
"description": "The same search on abomio.de, with all matches in a table. Give it to people who want to see more offers. min_price has no equivalent there and is left out."
},
"published_at": {
"type": "string",
"description": "When the published offers last changed."
},
"total_offers": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Matching offers on all pages, counting every variant."
}
},
"additionalProperties": false
}