Porsche Service Calculator (Garage Kuhn)
Server Details
Next Porsche service date, mileage and scope from public Porsche maintenance plans. Read-only.
- Status
- Healthy
- Uptime
- 99.9% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
The tools have some overlap: search can return a ready calculation when mileage and registration are provided, which overlaps with porsche_service_berechnen. Additionally, porsche_service_berechnen includes a reminder, making it similar to porsche_service_erinnerung. Descriptions clarify differences but boundaries remain fuzzy.
Tool names mix English and German (fetch, search vs. porsche_service_berechnen, porsche_wartungsplaene) and some use a porsche_ prefix while others do not. Verb styles are inconsistent: some are bare verbs (fetch, search) and others are noun-verb compounds. This creates a confusing pattern.
With 5 tools, the server is well-scoped for a Porsche service calculator. Each tool addresses a distinct step: listing plans, searching, fetching details, calculating a service, and generating a reminder. The count is neither too thin nor excessive.
The surface covers the core workflow: listing maintenance plans, searching, fetching full text, calculating the next service with booking link, and creating reminders. A minor gap is that fetch only retrieves search results, not arbitrary plan IDs from the listing, but this is workable.
Available Tools
5 toolsfetchWartungsplan oder Berechnung abrufenARead-onlyIdempotentInspect
Ruft einen Treffer aus search ab: den ganzen Porsche-Wartungsplan (alle Arbeiten je Service und Zusatzwartung, Wortlaut Porsche mit Seitenzahl, Quelle) oder eine Berechnung. Fetches a search result: a full Porsche maintenance plan or a calculation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | id aus search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the return content in detail - the complete plan with all work per service plus Zusatzwartung, original Porsche wording, page number and source - which matters given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the same content is stated twice, once in German and once in English, which effectively doubles the length without adding meaning. It is not fatally bloated, but the bilingual duplication is not fully earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter fetch tool with annotations that cover the safety profile and no output schema, the description supplies the necessary return-content details (full plan vs. calculation, source and page references). It is complete enough to call correctly, with only minor room for authentication or retrieval-behavior notes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter 'id' is documented in the schema as 'id aus search', so the baseline is 3. The description reinforces that the id identifies a search hit but adds no format, type, or sourcing detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it retrieves ('Ruft ... ab') one hit from search, returning either a full Porsche maintenance plan or a calculation. It ties itself to the sibling 'search' as the source and names what the fetched object contains, so an agent can distinguish it from search or the other porsche_* tools. It does not explicitly contrast with porsche_wartungsplaene, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'einen Treffer aus search ab' implies the intended workflow (call search first, then fetch a specific hit by id), which is decent implied usage. However there is no explicit when-to-use statement, no when-not, and no direct comparison to the sibling alternative 'search' or 'porsche_wartungsplaene'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
porsche_service_berechnenPorsche-Service berechnenBRead-onlyIdempotentInspect
Berechnet für einen Porsche, welcher Service als Nächstes fällig ist (wann, bei wie vielen km), den Grundumfang und die dann fälligen Zusatzwartungen im Wortlaut von Porsche mit Seitenlink, die folgenden Services und einen Buchungslink der Garage Kuhn, der die Fahrzeugangaben mitbringt. Das Auto als modell (freier Text), baureihe oder plan_id angeben. Enthält eine Erinnerung (Datum, Text, Kalenderdatei). Richtwert ohne Gewähr. Calculates which service a Porsche needs next (when, at what mileage, all tasks in Porsche's wording) with a booking link and a reminder.
| Name | Required | Description | Default |
|---|---|---|---|
| km | Yes | Aktueller km-Stand. Current mileage in km. | |
| modell | No | Statt plan_id oder baureihe: das Auto in freien Worten, z. B. «997 Carrera S», «991.2 GT3 RS», «Cayman GT4», «Cayenne 955 Turbo». Car in free text, e.g. "997 Carrera S". | |
| plan_id | No | Plan-ID aus porsche_wartungsplaene. | |
| baureihe | No | Statt plan_id: Baureihe (911, 911 GT, Boxster und Cayman, Panamera, Cayenne, Macan, Taycan), der Plan wird nach dem Jahr der 1. Inverkehrsetzung gewählt. Model line. | |
| variante | No | Optional: Nummer der Variante aus porsche_wartungsplaene (nur Pläne mit Varianten, z. B. 0 = erste Variante). | |
| km_pro_jahr | No | Optional: Fahrleistung pro Jahr für die Vorschau, Standard 10000. | |
| erstzulassung | Yes | 1. Inverkehrsetzung als JJJJ-MM (Fahrzeugausweis Ziffer 36), auch 03.2009 oder «März 2009», nicht in der Zukunft. First registration, e.g. 2009-03. | |
| letzter_service | No | Optional: Monat des letzten Service als JJJJ-MM, nicht vor der 1. Inverkehrsetzung und nicht in der Zukunft. Ohne Angabe rechnet der Rechner mit Service nach Porsche-Raster. Month of the last service (optional). | |
| letzter_service_km | No | km-Stand beim letzten Service, höchstens der aktuelle km-Stand. Pflicht, wenn letzter_service angegeben ist. |
TDQS
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 clear. The description adds valuable behavioral context beyond annotations: it details returned content (next service timing/mileage, Porsche's wording with page link, following services, Garage Kuhn booking link with vehicle data, reminder with date/text/calendar file) and includes a disclaimer ('Richtwert ohne Gewähr').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, but it is long, bilingual, and somewhat redundant: the English sentence repeats a subset of the German output details and omits several specifics. Parameter guidance and disclaimer are interleaved, reducing structural clarity for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain return values; it does so in detail, covering next service, maintenance scope, links, and reminder contents. With 100% schema coverage for parameters and annotations covering safety, the remaining gap is minor: it does not clarify how this tool relates to sibling porsche_service_erinnerung or whether it creates a reminder versus merely including reminder data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already documented with examples, enums, and constraints. The description only restates the alternative car specification modes ('modell', 'baureihe', 'plan_id') without adding syntax, format, or interaction rules beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Berechnet' / 'Calculates') and resource (Porsche service due next), including output scope: next service timing/mileage, tasks in Porsche wording, booking link, reminder. It distinguishes itself from a simple plan lister by describing computed results, though it does not explicitly name sibling tools like porsche_wartungsplaene as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides parameter input modes (modell, baureihe, plan_id) but no when-to-use guidance, prerequisites, or explicit comparison to sibling tools such as porsche_wartungsplaene or porsche_service_erinnerung. An agent must infer that this tool is for calculating a service schedule rather than fetching plans or managing reminders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
porsche_service_erinnerungService-ErinnerungARead-onlyIdempotentInspect
Liefert eine Service-Erinnerung für einen Porsche: Datum (vier Wochen vor dem nächsten Service nach Porsche-Plan, spätestens nach einem Jahr für den Jahresservice), Titel, Text mit Buchungslink der Garage Kuhn und eine Kalenderdatei (.ics) mit Alarm am Vortag um 9 Uhr. Für Erinnerungen und die Planung von Wartungen. Gleiche Angaben wie porsche_service_berechnen. Returns a service reminder (date, text, calendar file) for a Porsche.
| Name | Required | Description | Default |
|---|---|---|---|
| km | Yes | Aktueller km-Stand. Current mileage in km. | |
| modell | No | Statt plan_id oder baureihe: das Auto in freien Worten, z. B. «997 Carrera S», «991.2 GT3 RS», «Cayman GT4», «Cayenne 955 Turbo». Car in free text, e.g. "997 Carrera S". | |
| plan_id | No | Plan-ID aus porsche_wartungsplaene. | |
| baureihe | No | Statt plan_id: Baureihe (911, 911 GT, Boxster und Cayman, Panamera, Cayenne, Macan, Taycan), der Plan wird nach dem Jahr der 1. Inverkehrsetzung gewählt. Model line. | |
| variante | No | Optional: Nummer der Variante aus porsche_wartungsplaene (nur Pläne mit Varianten, z. B. 0 = erste Variante). | |
| km_pro_jahr | No | Optional: Fahrleistung pro Jahr für die Vorschau, Standard 10000. | |
| erstzulassung | Yes | 1. Inverkehrsetzung als JJJJ-MM (Fahrzeugausweis Ziffer 36), auch 03.2009 oder «März 2009», nicht in der Zukunft. First registration, e.g. 2009-03. | |
| letzter_service | No | Optional: Monat des letzten Service als JJJJ-MM, nicht vor der 1. Inverkehrsetzung und nicht in der Zukunft. Ohne Angabe rechnet der Rechner mit Service nach Porsche-Raster. Month of the last service (optional). | |
| letzter_service_km | No | km-Stand beim letzten Service, höchstens der aktuelle km-Stand. Pflicht, wenn letzter_service angegeben ist. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior, so the description is not required to restate safety. It adds meaningful behavioral detail: the reminder date is computed four weeks before the next service, at latest one year for the annual service, and the output includes a calendar file with an alarm the day before at 9 AM. It does not describe error handling or edge cases, but the core behavior is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and output details, so an agent can quickly understand the tool. It is somewhat redundant because the final English sentence repeats the core purpose already stated in German, but the structure remains efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given nine parameters, no output schema, and rich annotations, the description does a good job of explaining what is returned: date, title, text, booking link, and calendar file. It also explains the date calculation rule. It does not resolve the complex relationship among modell, plan_id, baureihe, and variante, but the schema descriptions cover those parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all nine parameters thoroughly, including enums, formats, and constraints. The description adds no parameter-level meaning beyond that, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns a service reminder for a Porsche, including concrete outputs such as date, title, text, booking link, and an .ics calendar file. It references the sibling porsche_service_berechnen, but does not clearly explain why an agent should choose this tool over that sibling beyond mentioning reminders and maintenance planning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Für Erinnerungen und die Planung von Wartungen' gives an implied usage context, but there is no explicit when-to-use or when-not-to-use guidance relative to porsche_service_berechnen or the other siblings. The comparison to porsche_service_berechnen is ambiguous because it says 'same details' rather than distinguishing the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
porsche_wartungsplaenePorsche-Wartungspläne im Service-Rechner der Garage KuhnARead-onlyIdempotentInspect
Listet die Porsche-Wartungspläne, mit denen der Service-Rechner der Garage Kuhn AG rechnet: Plan-ID, Baureihen, Zeitraum, Herausgeber (Porsche Schweiz oder Deutschland), Generation und Varianten mit Nummer. Optional nach Baureihe filtern. Lists the Porsche maintenance plans used by the Garage Kuhn service calculator.
| Name | Required | Description | Default |
|---|---|---|---|
| baureihe | No | Nur Pläne dieser Baureihe. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered structurally. The description adds useful context by listing what the plan records contain and tying the data to the service calculator, but discloses nothing about result size, ordering, or completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the field list, and the optional filter is stated last. It is somewhat padded by a German/English duplication that restates the same fact and repeats "Garage Kuhn", but the size is still reasonable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates well by enumerating the returned fields. For a single-optional-parameter read tool whose annotations carry the safety profile, this is nearly complete; only sorting/pagination expectations are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter (baureihe) is documented with an enum in the schema. The description only restates that filtering by Baureihe is optional, adding no syntax or semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Listet") plus resource ("Porsche-Wartungspläne") and enumerates the returned fields (Plan-ID, Baureihen, Zeitraum, Herausgeber, Generation, Varianten). It clearly identifies this as a reference-data lookup for the Garage Kuhn service calculator, but does not explicitly distinguish it from siblings like search or porsche_service_berechnen.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: it surfaces the maintenance plans behind the service calculator, and notes the filter is optional. There is no explicit when-to-use or when-to-prefer-a-sibling (e.g. porsche_service_berechnen) guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchPorsche-Wartungspläne suchenARead-onlyIdempotentInspect
Sucht Porsche-Wartungspläne der Garage Kuhn nach Modell oder Baureihe (z. B. «997», «Macan 2016», «Cayman GT4»). Stehen km und 1. Inverkehrsetzung in der Anfrage («997 Carrera, 96000 km, 03.2009»), kommt zuerst die fertige Berechnung. Treffer mit fetch abrufen. Searches Porsche maintenance plans by model; with mileage and first registration in the query it returns a ready calculation first. Use fetch for the full text.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Suchtext, z. B. «997 Carrera S 96000 km 03.2009». |
TDQS
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 genuinely useful behavior beyond that: search returns a pre-computed result when the query contains km and first registration, and only hits are returned so fetch is required for full text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and resource, then workflow guidance; every sentence carries information. The German content is restated almost verbatim in English, which is deliberate for bilingual users but is still duplication that costs some tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, annotation-rich search tool with no output schema, the description covers input format, special input behavior, and the follow-up fetch step. It stops short of describing the hit list shape or result limits, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema coverage, so the baseline is 3. The description adds real meaning by showing a richer example query ('997 Carrera, 96000 km, 03.2009') and explaining that embedding mileage and a date changes the result type, which the schema description does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Sucht Porsche-Wartungspläne ... nach Modell oder Baureihe') with concrete query examples, and notes that a ready calculation is returned when mileage and first registration are present. It routes the agent to fetch for full text, though it does not contrast with the sibling porsche_wartungsplaene or porsche_service_berechnen explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: search by model/series, and include km plus first registration to get the finished calculation first. It also states the retrieval step ('Treffer mit fetch abrufen'), establishing the search-then-fetch workflow. No explicit when-not-to-use or named alternatives among the other siblings.
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.
5 tool updates
- First observed
fetch - First observed
porsche_service_berechnen - First observed
porsche_service_erinnerung - First observed
porsche_wartungsplaene - First observed
search
Related MCP Connectors
Read vehicle records, service history and reminder settings. OAuth access via supported clients.
Car maintenance due dates, cost estimates and seasonal checklists. Free.
Recalls, known issues, and honest maintenance costs for any US-market vehicle since 1990.
Mechanic-grade used-car listing verdicts: risk score, failure points, repair costs, fair price.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables read-only access to BMW CarData for vehicle maintenance, tire pressure, and 12V battery status, with caching and local history to stay within the daily API quota.1236 PyPIMIT
- AlicenseNot gradedqualityCmaintenanceMCP server for consulting DEKRA vehicle assessment reports (LCD - Damage Classification) from an official source. Enables AI assistants to retrieve vehicle damage classification data through a single read-only tool.MIT
- AlicenseNot gradedqualityCmaintenanceEnables consultation of vehicle documents from an official source via a single read-only tool, with prepaid per-query pricing and compatibility across MCP clients.MIT
- AlicenseNot gradedqualityDmaintenanceEnables managing personal vehicle history including mileage, maintenance, expenses, reminders, and document references through MCP tools and resources, all stored locally in SQLite.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.