ServiceSchedule MCP
ServiceSchedule provides MCP tools for AI assistants to calculate car maintenance due dates, estimate costs, and generate seasonal checklists based on odometer readings and driving habits. It performs pure arithmetic on user-provided numbers without booking or inspecting vehicles.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://service-schedule.magicteams.ai/mcpWhat its tools do
4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Determine which car maintenance services are due based on current odometer reading
- Estimate typical US parts-and-labor price ranges for specific maintenance services
- Project the next 12 months of driving and list which maintenance services fall due
- Generate a preventive car checklist for a specific season and climate
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- service-schedule 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
due_services — Due services
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).
{
"type": "object",
"required": [
"odometer"
],
"properties": {
"unit": {
"enum": [
"km",
"mi"
],
"type": "string",
"description": "Unit of odometer and last_service odometer values: 'km' (default) or 'mi'"
},
"odometer": {
"type": "number",
"minimum": 0,
"description": "Current odometer reading, non-negative, in the unit given by unit, e.g. 48000"
},
"km_per_month": {
"type": "number",
"maximum": 10000,
"minimum": 100,
"description": "Average distance driven per month in km (always km, 100-10000); adds a 'next due in about N months' hint"
},
"last_service": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"enum": [
"oil_change",
"tire_rotation",
"brake_inspection",
"air_filter",
"cabin_filter",
"coolant_service",
"spark_plugs",
"transmission_service",
"battery_check"
],
"type": "string",
"description": "Service id, e.g. 'oil_change'"
},
"odometer": {
"type": "number",
"minimum": 0,
"description": "Odometer when this service was last done, same unit as odometer and not above it"
},
"months_ago": {
"type": "number",
"minimum": 0,
"description": "Months since this service was last done"
}
}
},
"description": "Optional per-service history, one entry per service id; items without an entry assume last service at odometer 0"
},
"months_since_last_oil": {
"type": "number",
"minimum": 0,
"description": "Months since the last oil change; used as the time baseline for every item without its own history, default 0"
}
}
}{
"type": "object",
"required": [
"odometer_km",
"odometer_input",
"services",
"next_service",
"note"
],
"properties": {
"note": {
"type": "string",
"description": "Summary counts, baseline assumptions and caveats"
},
"services": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"status",
"due_at_km",
"km_left",
"due_in_months",
"months_left",
"items"
],
"properties": {
"id": {
"enum": [
"oil_change",
"tire_rotation",
"brake_inspection",
"air_filter",
"cabin_filter",
"coolant_service",
"spark_plugs",
"transmission_service",
"battery_check"
],
"type": "string",
"description": "Service id"
},
"name": {
"type": "string",
"description": "Service name, e.g. 'Oil change'"
},
"items": {
"type": "array",
"items": {
"type": "string"
},
"description": "What the service typically includes"
},
"status": {
"enum": [
"due",
"soon",
"ok"
],
"type": "string",
"description": "'due' (within 1000 km or 1 month, or overdue), 'soon' (within 3000 km or 3 months) or 'ok'"
},
"km_left": {
"type": [
"number",
"null"
],
"description": "Km until due (negative = overdue); null for time-only items"
},
"due_at_km": {
"type": [
"number",
"null"
],
"description": "Odometer (km) at which the service is due; null for time-only items such as battery_check"
},
"months_left": {
"type": "number",
"description": "Months left on the time interval (same as due_in_months)"
},
"due_in_months": {
"type": "number",
"description": "Months from now until due by time (negative = overdue)"
}
}
},
"description": "Status of every tracked maintenance service"
},
"odometer_km": {
"type": "number",
"description": "Current odometer converted to km (1 decimal)"
},
"next_service": {
"type": "object",
"required": [
"id",
"name",
"status",
"due_at_km",
"km_left",
"due_in_months",
"months_left"
],
"properties": {
"id": {
"enum": [
"oil_change",
"tire_rotation",
"brake_inspection",
"air_filter",
"cabin_filter",
"coolant_service",
"spark_plugs",
"transmission_service",
"battery_check"
],
"type": "string",
"description": "Service id"
},
"name": {
"type": "string",
"description": "Service name, e.g. 'Oil change'"
},
"status": {
"enum": [
"due",
"soon",
"ok"
],
"type": "string",
"description": "'due' (within 1000 km or 1 month, or overdue), 'soon' (within 3000 km or 3 months) or 'ok'"
},
"km_left": {
"type": [
"number",
"null"
],
"description": "Km until due (negative = overdue); null for time-only items"
},
"due_at_km": {
"type": [
"number",
"null"
],
"description": "Odometer (km) at which the service is due; null for time-only items such as battery_check"
},
"months_left": {
"type": "number",
"description": "Months left on the time interval (same as due_in_months)"
},
"due_in_months": {
"type": "number",
"description": "Months from now until due by time (negative = overdue)"
}
},
"description": "The most urgent service"
},
"odometer_input": {
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"enum": [
"km",
"mi"
],
"type": "string",
"description": "Unit of the supplied value"
},
"value": {
"type": "number",
"description": "Odometer value as supplied"
}
},
"description": "Odometer value and unit as supplied"
}
}
}{
"title": "Due services",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}service_cost_estimate — Service cost estimate
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).
{
"type": "object",
"required": [
"services"
],
"properties": {
"tier": {
"enum": [
"economy",
"mid",
"luxury"
],
"type": "string",
"description": "Shop tier: 'economy' (x0.85), 'mid' (default) or 'luxury' (x1.6)"
},
"services": {
"type": "array",
"items": {
"enum": [
"oil_change",
"tire_rotation",
"brake_inspection",
"air_filter",
"cabin_filter",
"coolant_service",
"spark_plugs",
"transmission_service",
"battery_check"
],
"type": "string"
},
"minItems": 1,
"description": "Service ids to price (duplicates ignored), e.g. [\"oil_change\",\"brake_inspection\"]"
}
}
}{
"type": "object",
"required": [
"tier",
"items",
"total_low",
"total_high",
"note",
"source_note"
],
"properties": {
"note": {
"type": "string",
"description": "Summary of what was priced"
},
"tier": {
"enum": [
"economy",
"mid",
"luxury"
],
"type": "string",
"description": "Shop tier used for pricing"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"low",
"high"
],
"properties": {
"id": {
"enum": [
"oil_change",
"tire_rotation",
"brake_inspection",
"air_filter",
"cabin_filter",
"coolant_service",
"spark_plugs",
"transmission_service",
"battery_check"
],
"type": "string",
"description": "Service id"
},
"low": {
"type": "number",
"description": "Low end of the typical price, USD"
},
"high": {
"type": "number",
"description": "High end of the typical price, USD"
},
"name": {
"type": "string",
"description": "Service name"
}
}
},
"description": "Price range per service in USD"
},
"total_low": {
"type": "number",
"description": "Sum of low prices, USD"
},
"total_high": {
"type": "number",
"description": "Sum of high prices, USD"
},
"source_note": {
"type": "string",
"description": "Source and estimate-not-quote caveat"
}
}
}{
"title": "Service cost estimate",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}service_timeline — Service timeline
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).
{
"type": "object",
"required": [
"odometer",
"km_per_month"
],
"properties": {
"unit": {
"enum": [
"km",
"mi"
],
"type": "string",
"description": "Unit of the odometer value: 'km' (default) or 'mi'"
},
"odometer": {
"type": "number",
"minimum": 0,
"description": "Current odometer reading, non-negative, in the unit given by unit, e.g. 48000"
},
"km_per_month": {
"type": "number",
"maximum": 10000,
"minimum": 100,
"description": "Average distance driven per month in km (always km, 100-10000), e.g. 1200"
},
"months_since_last_oil": {
"type": "number",
"minimum": 0,
"description": "Months since the last oil change; time baseline for every service, default 0"
}
}
}{
"type": "object",
"required": [
"months",
"note"
],
"properties": {
"note": {
"type": "string",
"description": "Assumptions behind the projection"
},
"months": {
"type": "array",
"items": {
"type": "object",
"required": [
"month",
"projected_km",
"due"
],
"properties": {
"due": {
"type": "array",
"items": {
"enum": [
"oil_change",
"tire_rotation",
"brake_inspection",
"air_filter",
"cabin_filter",
"coolant_service",
"spark_plugs",
"transmission_service",
"battery_check"
],
"type": "string"
},
"description": "Service ids due that month"
},
"month": {
"type": "integer",
"description": "Months from now, 1-12"
},
"projected_km": {
"type": "number",
"description": "Projected odometer in km at that month"
}
}
},
"description": "Twelve monthly entries, month 1 = next month"
}
}
}{
"title": "Service timeline",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}seasonal_checklist — Seasonal checklist
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).
{
"type": "object",
"required": [
"season"
],
"properties": {
"season": {
"enum": [
"spring",
"summer",
"fall",
"winter"
],
"type": "string",
"description": "Season to prepare for"
},
"climate": {
"enum": [
"hot",
"cold",
"mixed"
],
"type": "string",
"description": "Local climate: 'hot', 'cold' or 'mixed' (default)"
}
}
}{
"type": "object",
"required": [
"season",
"climate",
"checklist",
"note"
],
"properties": {
"note": {
"type": "string",
"description": "Item count and preventive-only caveat"
},
"season": {
"enum": [
"spring",
"summer",
"fall",
"winter"
],
"type": "string",
"description": "Season the checklist covers"
},
"climate": {
"enum": [
"hot",
"cold",
"mixed"
],
"type": "string",
"description": "Climate the checklist is tuned for"
},
"checklist": {
"type": "array",
"items": {
"type": "object",
"required": [
"area",
"items"
],
"properties": {
"area": {
"type": "string",
"description": "Area name, e.g. 'Tires'"
},
"items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Checks for this area"
}
}
},
"description": "Checks grouped by area"
}
}
}{
"title": "Seasonal checklist",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 225 ms
- 95th percentile latency
- 225 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 225 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http serviceschedule-mcp https://service-schedule.magicteams.ai/mcpCodex
codex mcp add serviceschedule-mcp --url https://service-schedule.magicteams.ai/mcpCursor
{
"mcpServers": {
"serviceschedule-mcp": {
"url": "https://service-schedule.magicteams.ai/mcp"
}
}
}Cline
{
"mcpServers": {
"serviceschedule-mcp": {
"type": "streamableHttp",
"url": "https://service-schedule.magicteams.ai/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"serviceschedule-mcp": {
"type": "http",
"url": "https://service-schedule.magicteams.ai/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http serviceschedule-mcp https://service-schedule.magicteams.ai/mcpClaude Desktop
https://service-schedule.magicteams.ai/mcpWindsurf
{
"mcpServers": {
"serviceschedule-mcp": {
"serverUrl": "https://service-schedule.magicteams.ai/mcp"
}
}
}Let your agent find its tools
Find servers like ServiceSchedule MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.