Skip to main content
Glama

Server Details

Car maintenance due dates, cost estimates and seasonal checklists. Free.

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 26 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Server Listing
Sahadeva

TDQS

A4.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a clearly distinct use case: current due services, seasonal preparation, cost estimation, and a 12-month timeline. Descriptions explicitly cross-reference and warn against misuse, eliminating ambiguity.

Naming Consistency5/5

All tool names use snake_case with descriptive noun phrases (due_services, seasonal_checklist, service_cost_estimate, service_timeline), showing a consistent and predictable convention.

Tool Count5/5

Four tools are well-scoped for a car maintenance advisory server, each covering a distinct query without redundancy. The count is comfortably within the ideal 3–15 range.

Completeness5/5

The surface covers all core advisory needs: what is due now, seasonal checks, cost estimates, and future planning. No obvious gaps exist for a stateless scheduling and estimation tool.

Available Tools

4 tools
due_servicesDue servicesA
Read-onlyIdempotent
Inspect

Work out which car maintenance services (oil, tires, brakes, filters, coolant, plugs, transmission, battery) are due, due soon or ok from the current odometer and optional service history, and name the next one. Use to check what a car needs now. Do NOT use for prices (use service_cost_estimate) or a 12-month plan (use service_timeline).

NameRequiredDescriptionDefault
unitNoUnit of odometer and last_service odometer values: 'km' (default) or 'mi'
odometerYesCurrent odometer reading, non-negative, in the unit given by unit, e.g. 48000
km_per_monthNoAverage distance driven per month in km (always km, 100-10000); adds a 'next due in about N months' hint
last_serviceNoOptional per-service history, one entry per service id; items without an entry assume last service at odometer 0
months_since_last_oilNoMonths since the last oil change; used as the time baseline for every item without its own history, default 0

Output Schema

NameRequiredDescription
noteYesSummary counts, baseline assumptions and caveats
servicesYesStatus of every tracked maintenance service
odometer_kmYesCurrent odometer converted to km (1 decimal)
next_serviceYesThe most urgent service
odometer_inputYesOdometer value and unit as supplied

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds domain behavior beyond that: results derive from odometer plus optional history, and history-less items are treated as last serviced at odometer 0 (a default assumption visible in the schema but reinforced here), and it names the next due service.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: capability, when-to-use, when-not-to-use. The enumeration of services is long but it is the tool's substance and it is front-loaded; no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and annotations cover the safety profile. For a single-required-param read tool with full schema descriptions, everything an agent needs to select and invoke it correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including unit semantics, km_per_month's always-km rule, and the per-item id/odometer/months_ago fields, so the schema carries parameter meaning. The description's phrase 'from the current odometer and optional service history' adds framing but no syntax or constraint beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource with an explicit enumeration of what is assessed (oil, tires, brakes, filters, coolant, plugs, transmission, battery) and the three possible outcomes (due, due soon, ok). It also states it names the next one, which is a distinct output behavior an agent can rely on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'Use to check what a car needs now' plus two named exclusions that route to specific siblings: prices to service_cost_estimate and 12-month planning to service_timeline. This is exactly the when/when-not/alternatives pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

seasonal_checklistSeasonal checklistA
Read-onlyIdempotent
Inspect

Generate a preventive car checklist for spring, summer, fall or winter, grouped by area (tires, battery, fluids, wipers and more) and tuned for a hot, cold or mixed climate. Use when getting a car ready for the season ahead. Do NOT use for mileage-based maintenance status (use due_services).

NameRequiredDescriptionDefault
seasonYesSeason to prepare for
climateNoLocal climate: 'hot', 'cold' or 'mixed' (default)

Output Schema

NameRequiredDescription
noteYesItem count and preventive-only caveat
seasonYesSeason the checklist covers
climateYesClimate the checklist is tuned for
checklistYesChecks grouped by area

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds genuine value beyond that by disclosing the output shape (grouped by area such as tires, battery, fluids, wipers) and that results are tuned to climate, though it says nothing about length or format of the checklist beyond grouping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: the output scope is front-loaded, then usage, then the exclusion. Every sentence earns its place and the routing instruction comes last where it is easy to act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. With 2 enums fully documented in the schema and the description covering purpose, usage, and the sibling boundary, nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters carry descriptions plus enums, so the schema does the heavy lifting. The description restates the season and climate dimensions and notes 'mixed' is the default, which is minor added meaning rather than new syntax or constraints. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate a preventive car checklist') plus the scoping dimensions (season, climate, grouped by area). It explicitly distinguishes itself from the sibling due_services, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the positive trigger ('getting a car ready for the season ahead') and an explicit exclusion with the alternative named ('Do NOT use for mileage-based maintenance status (use due_services)'). This is the full when/when-not/alternative pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

service_cost_estimateService cost estimateA
Read-onlyIdempotent
Inspect

Estimate typical US parts-and-labor price ranges (USD) for a list of car maintenance services at an economy, mid or luxury shop, with low and high totals. Use when budgeting for known services. An estimate, not a quote. Do NOT use to find which services are due (use due_services).

NameRequiredDescriptionDefault
tierNoShop tier: 'economy' (x0.85), 'mid' (default) or 'luxury' (x1.6)
servicesYesService ids to price (duplicates ignored), e.g. ["oil_change","brake_inspection"]

Output Schema

NameRequiredDescription
noteYesSummary of what was priced
tierYesShop tier used for pricing
itemsYesPrice range per service in USD
total_lowYesSum of low prices, USD
total_highYesSum of high prices, USD
source_noteYesSource and estimate-not-quote caveat

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety is covered. The description adds value beyond that by clarifying the output nature (low/high ranges, USD, estimate vs quote) and geographic scope (US). It stops short of detailing output format, but with the output schema present that is not required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with purpose then usage then exclusion. No filler; each sentence carries distinct, decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only, two-parameter estimation tool with a defined output schema, the description covers purpose, scope, usage conditions, and the key alternative tool. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters (services list and tier enum) are fully documented in the schema, including the tier multipliers. The description only restates the tier options and the service list at a high level, adding no syntax or format detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Estimate), resource (US parts-and-labor price ranges in USD), and scope (tiers, low/high totals) for car maintenance services. It also distinguishes itself from the sibling due_services by name, so an agent can separate it from related tools without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it (budgeting for known services), sets expectation (an estimate, not a quote), and gives a clear when-not with the alternative: 'Do NOT use to find which services are due (use due_services).' This is exactly the routing guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

service_timelineService timelineA
Read-onlyIdempotent
Inspect

Project the next 12 months of driving and list which maintenance services fall due in each month, from the odometer and monthly distance. Use when planning maintenance over the coming year. Do NOT use for what is due right now (use due_services) or prices (use service_cost_estimate).

NameRequiredDescriptionDefault
unitNoUnit of the odometer value: 'km' (default) or 'mi'
odometerYesCurrent odometer reading, non-negative, in the unit given by unit, e.g. 48000
km_per_monthYesAverage distance driven per month in km (always km, 100-10000), e.g. 1200
months_since_last_oilNoMonths since the last oil change; time baseline for every service, default 0

Output Schema

NameRequiredDescription
noteYesAssumptions behind the projection
monthsYesTwelve monthly entries, month 1 = next month

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds value beyond them by disclosing the projection horizon (12 months) and the fact that results are derived from odometer plus monthly distance, i.e. it is a forecast rather than a lookup. It does not discuss limits on the forecast or the assumptions behind the projection, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what the tool produces before the routing constraints. No filler, no restatement of the title, and every sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter documentation, the description need not explain return values, and it covers purpose, usage and alternatives. The one omission is any mention of months_since_last_oil's role as the time baseline for every service, which materially shapes the projection but is left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents unit, odometer, km_per_month and months_since_last_oil including ranges and defaults. The description only restates that odometer and monthly distance drive the result; it adds no syntax or unit nuance (e.g. that km_per_month is always km while unit applies only to the odometer). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('project the next 12 months of driving and list which maintenance services fall due in each month') plus the derivation basis (odometer and monthly distance). It is immediately distinguishable from due_services and service_cost_estimate, which are named in the same paragraph.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('planning maintenance over the coming year') and explicit when-not-to-use with named alternatives: 'Do NOT use for what is due right now (use due_services) or prices (use service_cost_estimate)'. All routing decisions are pre-made for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 4 tool updates
    • Changeddue_services15 fields changed
      • changedInput schema / properties / km_per_month / description
        Previous value: -"Average km driven per month (100-10000)"New value: +"Average distance driven per month in km (always km, 100-10000); adds a 'next due in about N months' hint"
      • addedInput schema / properties / km_per_month / maximum
        Added value: +10000
      • addedInput schema / properties / km_per_month / minimum
        Added value: +100
      • changedInput schema / properties / last_service / description
        Previous value: -"Optional per-service history"New value: +"Optional per-service history, one entry per service id; items without an entry assume last service at odometer 0"
      • changedInput schema / properties / last_service / items / properties / id / description
        Previous value: -"Service id from the maintenance table, e.g. oil_change"New value: +"Service id, e.g. 'oil_change'"
      • addedInput schema / properties / last_service / items / properties / id / enum
        Added value: +[
        +  "oil_change",
        +  "tire_rotation",
        +  "brake_inspection",
        +  "air_filter",
        +  "cabin_filter",
        +  "coolant_service",
        +  "spark_plugs",
        +  "transmission_service",
        +  "battery_check"
        +]
      • addedInput schema / properties / last_service / items / properties / months_ago / minimum
        Added value: +0
      • changedInput schema / properties / last_service / items / properties / odometer / description
        Previous value: -"Odometer when this service was last done (same unit as above)"New value: +"Odometer when this service was last done, same unit as odometer and not above it"
      • addedInput schema / properties / last_service / items / properties / odometer / minimum
        Added value: +0
      • changedInput schema / properties / months_since_last_oil / description
        Previous value: -"Months since the last oil change; time baseline for items without their own history"New value: +"Months since the last oil change; used as the time baseline for every item without its own history, default 0"
      • addedInput schema / properties / months_since_last_oil / minimum
        Added value: +0
      • changedInput schema / properties / odometer / description
        Previous value: -"Current odometer reading"New value: +"Current odometer reading, non-negative, in the unit given by unit, e.g. 48000"
      • addedInput schema / properties / odometer / minimum
        Added value: +0
      • changedInput schema / properties / unit / description
        Previous value: -"Unit of the odometer values, default km"New value: +"Unit of odometer and last_service odometer values: 'km' (default) or 'mi'"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "next_service": {
        +      "description": "The most urgent service",
        +      "properties": {
        +        "due_at_km": {
        +          "description": "Odometer (km) at which the service is due; null for time-only items such as battery_check",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "due_in_months": {
        +          "description": "Months from now until due by time (negative = overdue)",
        +          "type": "number"
        +        },
        +        "id": {
        +          "description": "Service id",
        +          "enum": [
        +            "oil_change",
        +            "tire_rotation",
        +            "brake_inspection",
        +            "air_filter",
        +            "cabin_filter",
        +            "coolant_service",
        +            "spark_plugs",
        +            "transmission_service",
        +            "battery_check"
        +          ],
        +          "type": "string"
        +        },
        +        "km_left": {
        +          "description": "Km until due (negative = overdue); null for time-only items",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "months_left": {
        +          "description": "Months left on the time interval (same as due_in_months)",
        +          "type": "number"
        +        },
        +        "name": {
        +          "description": "Service name, e.g. 'Oil change'",
        +          "type": "string"
        +        },
        +        "status": {
        +          "description": "'due' (within 1000 km or 1 month, or overdue), 'soon' (within 3000 km or 3 months) or 'ok'",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "id",
        +        "name",
        +        "status",
        +        "due_at_km",
        +        "km_left",
        +        "due_in_months",
        +        "months_left"
        +      ],
        +      "type": "object"
        +    },
        +    "note": {
        +      "description": "Summary counts, baseline assumptions and caveats",
        +      "type": "string"
        +    },
        +    "odometer_input": {
        +      "description": "Odometer value and unit as supplied",
        +      "properties": {
        +        "unit": {
        +          "description": "Unit of the supplied value",
        +          "enum": [
        +            "km",
        +            "mi"
        +          ],
        +          "type": "string"
        +        },
        +        "value": {
        +          "description": "Odometer value as supplied",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "value",
        +        "unit"
        +      ],
        +      "type": "object"
        +    },
        +    "odometer_km": {
        +      "description": "Current odometer converted to km (1 decimal)",
        +      "type": "number"
        +    },
        +    "services": {
        +      "description": "Status of every tracked maintenance service",
        +      "items": {
        +        "properties": {
        +          "due_at_km": {
        +            "description": "Odometer (km) at which the service is due; null for time-only items such as battery_check",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "due_in_months": {
        +            "description": "Months from now until due by time (negative = overdue)",
        +            "type": "number"
        +          },
        +          "id": {
        +            "description": "Service id",
        +            "enum": [
        +              "oil_change",
        +              "tire_rotation",
        +              "brake_inspection",
        +              "air_filter",
        +              "cabin_filter",
        +              "coolant_service",
        +              "spark_plugs",
        +              "transmission_service",
        +              "battery_check"
        +            ],
        +            "type": "string"
        +          },
        +          "items": {
        +            "description": "What the service typically includes",
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "km_left": {
        +            "description": "Km until due (negative = overdue); null for time-only items",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "months_left": {
        +            "description": "Months left on the time interval (same as due_in_months)",
        +            "type": "number"
        +          },
        +          "name": {
        +            "description": "Service name, e.g. 'Oil change'",
        +            "type": "string"
        +          },
        +          "status": {
        +            "description": "'due' (within 1000 km or 1 month, or overdue), 'soon' (within 3000 km or 3 months) or 'ok'",
        +            "enum": [
        +              "due",
        +              "soon",
        +              "ok"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "status",
        +          "due_at_km",
        +          "km_left",
        +          "due_in_months",
        +          "months_left",
        +          "items"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "odometer_km",
        +    "odometer_input",
        +    "services",
        +    "next_service",
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Changedseasonal_checklist3 fields changed
      • changedInput schema / properties / climate / description
        Previous value: -"Local climate, default mixed"New value: +"Local climate: 'hot', 'cold' or 'mixed' (default)"
      • changedInput schema / properties / season / description
        Previous value: -"Season to plan for"New value: +"Season to prepare for"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checklist": {
        +      "description": "Checks grouped by area",
        +      "items": {
        +        "properties": {
        +          "area": {
        +            "description": "Area name, e.g. 'Tires'",
        +            "type": "string"
        +          },
        +          "items": {
        +            "description": "Checks for this area",
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "area",
        +          "items"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "climate": {
        +      "description": "Climate the checklist is tuned for",
        +      "enum": [
        +        "hot",
        +        "cold",
        +        "mixed"
        +      ],
        +      "type": "string"
        +    },
        +    "note": {
        +      "description": "Item count and preventive-only caveat",
        +      "type": "string"
        +    },
        +    "season": {
        +      "description": "Season the checklist covers",
        +      "enum": [
        +        "spring",
        +        "summer",
        +        "fall",
        +        "winter"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "season",
        +    "climate",
        +    "checklist",
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Changedservice_cost_estimate5 fields changed
      • changedInput schema / properties / services / description
        Previous value: -"Service ids to price, e.g. oil_change"New value: +"Service ids to price (duplicates ignored), e.g. [\"oil_change\",\"brake_inspection\"]"
      • addedInput schema / properties / services / items / enum
        Added value: +[
        +  "oil_change",
        +  "tire_rotation",
        +  "brake_inspection",
        +  "air_filter",
        +  "cabin_filter",
        +  "coolant_service",
        +  "spark_plugs",
        +  "transmission_service",
        +  "battery_check"
        +]
      • addedInput schema / properties / services / minItems
        Added value: +1
      • changedInput schema / properties / tier / description
        Previous value: -"Shop tier, default mid"New value: +"Shop tier: 'economy' (x0.85), 'mid' (default) or 'luxury' (x1.6)"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "items": {
        +      "description": "Price range per service in USD",
        +      "items": {
        +        "properties": {
        +          "high": {
        +            "description": "High end of the typical price, USD",
        +            "type": "number"
        +          },
        +          "id": {
        +            "description": "Service id",
        +            "enum": [
        +              "oil_change",
        +              "tire_rotation",
        +              "brake_inspection",
        +              "air_filter",
        +              "cabin_filter",
        +              "coolant_service",
        +              "spark_plugs",
        +              "transmission_service",
        +              "battery_check"
        +            ],
        +            "type": "string"
        +          },
        +          "low": {
        +            "description": "Low end of the typical price, USD",
        +            "type": "number"
        +          },
        +          "name": {
        +            "description": "Service name",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "low",
        +          "high"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "description": "Summary of what was priced",
        +      "type": "string"
        +    },
        +    "source_note": {
        +      "description": "Source and estimate-not-quote caveat",
        +      "type": "string"
        +    },
        +    "tier": {
        +      "description": "Shop tier used for pricing",
        +      "enum": [
        +        "economy",
        +        "mid",
        +        "luxury"
        +      ],
        +      "type": "string"
        +    },
        +    "total_high": {
        +      "description": "Sum of high prices, USD",
        +      "type": "number"
        +    },
        +    "total_low": {
        +      "description": "Sum of low prices, USD",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "tier",
        +    "items",
        +    "total_low",
        +    "total_high",
        +    "note",
        +    "source_note"
        +  ],
        +  "type": "object"
        +}
    • Changedservice_timeline9 fields changed
      • changedInput schema / properties / km_per_month / description
        Previous value: -"Average km driven per month (100-10000)"New value: +"Average distance driven per month in km (always km, 100-10000), e.g. 1200"
      • addedInput schema / properties / km_per_month / maximum
        Added value: +10000
      • addedInput schema / properties / km_per_month / minimum
        Added value: +100
      • changedInput schema / properties / months_since_last_oil / description
        Previous value: -"Months since the last oil change; time baseline when no other history is given"New value: +"Months since the last oil change; time baseline for every service, default 0"
      • addedInput schema / properties / months_since_last_oil / minimum
        Added value: +0
      • changedInput schema / properties / odometer / description
        Previous value: -"Current odometer reading"New value: +"Current odometer reading, non-negative, in the unit given by unit, e.g. 48000"
      • addedInput schema / properties / odometer / minimum
        Added value: +0
      • changedInput schema / properties / unit / description
        Previous value: -"Unit of the odometer values, default km"New value: +"Unit of the odometer value: 'km' (default) or 'mi'"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "months": {
        +      "description": "Twelve monthly entries, month 1 = next month",
        +      "items": {
        +        "properties": {
        +          "due": {
        +            "description": "Service ids due that month",
        +            "items": {
        +              "enum": [
        +                "oil_change",
        +                "tire_rotation",
        +                "brake_inspection",
        +                "air_filter",
        +                "cabin_filter",
        +                "coolant_service",
        +                "spark_plugs",
        +                "transmission_service",
        +                "battery_check"
        +              ],
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "month": {
        +            "description": "Months from now, 1-12",
        +            "type": "integer"
        +          },
        +          "projected_km": {
        +            "description": "Projected odometer in km at that month",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "month",
        +          "projected_km",
        +          "due"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "description": "Assumptions behind the projection",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "months",
        +    "note"
        +  ],
        +  "type": "object"
        +}
  2. 4 tool updates
    • Changeddue_services1 field changed
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "air_filter_replacement": {
        -      "description": "The air filter replacement returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due air filter replacement",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due air filter replacement",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the air filter replacement service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    },
        -    "battery_replacement": {
        -      "description": "The battery replacement returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due battery replacement",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due battery replacement",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the battery replacement service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    },
        -    "brake_inspection": {
        -      "description": "The brake inspection returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due brake inspection",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due brake inspection",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the brake inspection service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    },
        -    "coolant_flush": {
        -      "description": "The coolant flush returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due coolant flush",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due coolant flush",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the coolant flush service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    },
        -    "oil_change": {
        -      "description": "The oil change returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due oil change",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due oil change",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the oil change service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    },
        -    "spark_plug_replacement": {
        -      "description": "The spark plug replacement returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due spark plug replacement",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due spark plug replacement",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the spark plug replacement service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    },
        -    "tire_rotation": {
        -      "description": "The tire rotation returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due tire rotation",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due tire rotation",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the tire rotation service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    },
        -    "transmission_service": {
        -      "description": "The transmission service returned by the tool.",
        -      "properties": {
        -        "km_to_due": {
        -          "description": "The distance in kilometers to the next due transmission service",
        -          "type": "number"
        -        },
        -        "months_to_due": {
        -          "description": "The number of months to the next due transmission service",
        -          "type": "number"
        -        },
        -        "status": {
        -          "description": "The due status of the transmission service",
        -          "enum": [
        -            "due",
        -            "soon",
        -            "ok"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "status",
        -        "km_to_due",
        -        "months_to_due"
        -      ],
        -      "type": "object"
        -    }
        -  },
        -  "required": [
        -    "oil_change",
        -    "tire_rotation",
        -    "brake_inspection",
        -    "air_filter_replacement",
        -    "coolant_flush",
        -    "spark_plug_replacement",
        -    "transmission_service",
        -    "battery_replacement"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changedseasonal_checklist1 field changed
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "checklist": {
        -      "description": "List of checks grouped by area",
        -      "items": {
        -        "properties": {
        -          "area": {
        -            "description": "The area of the car to check (e.g., battery, tires)",
        -            "type": "string"
        -          },
        -          "checks": {
        -            "description": "List of specific checks to perform in this area",
        -            "items": {
        -              "description": "A specific check to perform",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "area",
        -          "checks"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "climate": {
        -      "description": "The climate for which the checklist is tailored",
        -      "type": "string"
        -    },
        -    "season": {
        -      "description": "The season for which the checklist is generated",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "season",
        -    "climate",
        -    "checklist"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changedservice_cost_estimate1 field changed
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "estimates": {
        -      "description": "List of estimated price ranges for each service.",
        -      "items": {
        -        "properties": {
        -          "range": {
        -            "description": "The estimated price range for the service.",
        -            "properties": {
        -              "max": {
        -                "description": "The maximum estimated price.",
        -                "type": "number"
        -              },
        -              "min": {
        -                "description": "The minimum estimated price.",
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "min",
        -              "max"
        -            ],
        -            "type": "object"
        -          },
        -          "service": {
        -            "description": "The service id, e.g. oil_change.",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "service",
        -          "range"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "total": {
        -      "description": "The estimated total price range for all services.",
        -      "properties": {
        -        "max": {
        -          "description": "The maximum estimated total price.",
        -          "type": "number"
        -        },
        -        "min": {
        -          "description": "The minimum estimated total price.",
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "min",
        -        "max"
        -      ],
        -      "type": "object"
        -    }
        -  },
        -  "required": [
        -    "estimates",
        -    "total"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changedservice_timeline1 field changed
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "results": {
        -      "description": "List of service timeline entries.",
        -      "items": {
        -        "properties": {
        -          "month": {
        -            "description": "The month in the 12-month projection (1-12)",
        -            "type": "integer"
        -          },
        -          "odometer": {
        -            "description": "Projected odometer reading at the start of the month",
        -            "type": "number"
        -          },
        -          "services_due": {
        -            "description": "List of maintenance services due in the month",
        -            "items": {
        -              "description": "Name of the service",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "month",
        -          "odometer",
        -          "services_due"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "results"
        -  ],
        -  "type": "object"
        -}New value: +null
  3. 4 tool updates
    • Changeddue_services1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "air_filter_replacement": {
        +      "description": "The air filter replacement returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due air filter replacement",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due air filter replacement",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the air filter replacement service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    },
        +    "battery_replacement": {
        +      "description": "The battery replacement returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due battery replacement",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due battery replacement",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the battery replacement service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    },
        +    "brake_inspection": {
        +      "description": "The brake inspection returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due brake inspection",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due brake inspection",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the brake inspection service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    },
        +    "coolant_flush": {
        +      "description": "The coolant flush returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due coolant flush",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due coolant flush",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the coolant flush service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    },
        +    "oil_change": {
        +      "description": "The oil change returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due oil change",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due oil change",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the oil change service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    },
        +    "spark_plug_replacement": {
        +      "description": "The spark plug replacement returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due spark plug replacement",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due spark plug replacement",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the spark plug replacement service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    },
        +    "tire_rotation": {
        +      "description": "The tire rotation returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due tire rotation",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due tire rotation",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the tire rotation service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    },
        +    "transmission_service": {
        +      "description": "The transmission service returned by the tool.",
        +      "properties": {
        +        "km_to_due": {
        +          "description": "The distance in kilometers to the next due transmission service",
        +          "type": "number"
        +        },
        +        "months_to_due": {
        +          "description": "The number of months to the next due transmission service",
        +          "type": "number"
        +        },
        +        "status": {
        +          "description": "The due status of the transmission service",
        +          "enum": [
        +            "due",
        +            "soon",
        +            "ok"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "km_to_due",
        +        "months_to_due"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "oil_change",
        +    "tire_rotation",
        +    "brake_inspection",
        +    "air_filter_replacement",
        +    "coolant_flush",
        +    "spark_plug_replacement",
        +    "transmission_service",
        +    "battery_replacement"
        +  ],
        +  "type": "object"
        +}
    • Changedseasonal_checklist1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checklist": {
        +      "description": "List of checks grouped by area",
        +      "items": {
        +        "properties": {
        +          "area": {
        +            "description": "The area of the car to check (e.g., battery, tires)",
        +            "type": "string"
        +          },
        +          "checks": {
        +            "description": "List of specific checks to perform in this area",
        +            "items": {
        +              "description": "A specific check to perform",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "area",
        +          "checks"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "climate": {
        +      "description": "The climate for which the checklist is tailored",
        +      "type": "string"
        +    },
        +    "season": {
        +      "description": "The season for which the checklist is generated",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "season",
        +    "climate",
        +    "checklist"
        +  ],
        +  "type": "object"
        +}
    • Changedservice_cost_estimate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "estimates": {
        +      "description": "List of estimated price ranges for each service.",
        +      "items": {
        +        "properties": {
        +          "range": {
        +            "description": "The estimated price range for the service.",
        +            "properties": {
        +              "max": {
        +                "description": "The maximum estimated price.",
        +                "type": "number"
        +              },
        +              "min": {
        +                "description": "The minimum estimated price.",
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "min",
        +              "max"
        +            ],
        +            "type": "object"
        +          },
        +          "service": {
        +            "description": "The service id, e.g. oil_change.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "service",
        +          "range"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total": {
        +      "description": "The estimated total price range for all services.",
        +      "properties": {
        +        "max": {
        +          "description": "The maximum estimated total price.",
        +          "type": "number"
        +        },
        +        "min": {
        +          "description": "The minimum estimated total price.",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "min",
        +        "max"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "estimates",
        +    "total"
        +  ],
        +  "type": "object"
        +}
    • Changedservice_timeline1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "results": {
        +      "description": "List of service timeline entries.",
        +      "items": {
        +        "properties": {
        +          "month": {
        +            "description": "The month in the 12-month projection (1-12)",
        +            "type": "integer"
        +          },
        +          "odometer": {
        +            "description": "Projected odometer reading at the start of the month",
        +            "type": "number"
        +          },
        +          "services_due": {
        +            "description": "List of maintenance services due in the month",
        +            "items": {
        +              "description": "Name of the service",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "month",
        +          "odometer",
        +          "services_due"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "results"
        +  ],
        +  "type": "object"
        +}
  4. 4 tool updates
    • First observeddue_services
    • First observedseasonal_checklist
    • First observedservice_cost_estimate
    • First observedservice_timeline

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables managing personal vehicle history including mileage, maintenance, expenses, reminders, and document references through MCP tools and resources, all stored locally in SQLite.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables voice-first household maintenance tracking, turning spoken updates into durable records, service history, and due-date reminders for a concise maintenance brief.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Tracks subscriptions and recurring bills with flexible billing cycles, and provides upcoming renewals and spending summaries.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources