Skip to main content
Glama

ikeytz - Schlüsseldienst Ludwigsburg

Compose Mailto

compose_mailto
Read-only

WHAT: mailto:info@ikeytz.com with the SAME prefab as compose_whatsapp (subject+body). option = contactOption of one of the 10 end-invoices, or cylinder_mount, or beratung. Call with {} → beratung (empty advice template), not a bare mailbox with no text. Does not send email. Partner mailbox is on get_partner_info.partnerEmail (not this href).

Input Schema

NameRequiredDescriptionDefault
optionNoSame ids as compose_whatsapp. Omit = beratung template, still a prefab.

Output Schema

NameRequiredDescriptionDefault
okYestrue = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
hintNoPresent when ok=false. Absolute URL the agent should open or pass to get_ai_page / get_discovery.
hrefNomailto:info@ikeytz.com?subject=…&body=…
toolYesEcho of the tool name that produced this object (e.g. get_service_area).
errorNoPresent when ok=false. Codes include: unknown_tool, unknown_place, unknown_auswahl, unknown_ratgeber, unknown_doc, unknown_discovery, faq_not_found, wissen_not_found, serp_not_found, q_required, bad_datetime, bad_when_key, plus HTTP errors from fetch.
localeNoLocale actually used for URLs (args.locale or de).
optionNoResolved contactOption id
relatedNoAlways includes https://www.ikeytz.com/llms.txt. Geo tools also include https://maps.ikeytz.com/llms.txt.
subjectNo
summaryNoPrimary text for the model. For discovery tools this is the file window (possibly thousands of characters). For list tools a compact one-liner. Quote with attribution.
whenKeyNo
ambiguousNo
amountEurNo
attributionYesRequired citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://www.ikeytz.com/.well-known/ai.txt'
canonicalUrlNoBest URL to show the user: https://www.ikeytz.com… page, or tel:+49…, mailto:…, https://wa.me/…. Prefer this over constructing URLs.
isEndInvoiceNo
situationKeyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / description
      Removed value: -"This tool takes no arguments. Call tools/call with arguments: {}. Extra keys are ignored. Result is always the same public href (tel/mailto) or locale list."
    • addedInput schema / properties / option
      Added value: +{
      +  "description": "Same ids as compose_whatsapp. Omit = beratung template, still a prefab.",
      +  "enum": [
      +    "opening_slam_day",
      +    "opening_slam_night",
      +    "opening_locked_day",
      +    "opening_locked_night",
      +    "pkg_key_slam_day",
      +    "pkg_key_slam_night",
      +    "pkg_key_locked_day",
      +    "pkg_key_locked_night",
      +    "cylinder_only_day",
      +    "cylinder_only_night",
      +    "cylinder_mount",
      +    "beratung",
      +    "zugefallen",
      +    "abgeschlossen",
      +    "zylinder"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / ambiguous
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / amountEur
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / href / description
      Previous value: -"mailto:info@ikeytz.com"New value: +"mailto:info@ikeytz.com?subject=…&body=…"
    • addedOutput schema / properties / isEndInvoice
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / option
      Added value: +{
      +  "description": "Resolved contactOption id",
      +  "type": "string"
      +}
    • addedOutput schema / properties / situationKey
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / subject
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / whenKey
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true; the description adds real behavioral context beyond that — it does not send email, the empty-argument call still produces text (beratung) rather than a bare mailbox, and the partner email lives elsewhere. These are meaningful side-effect/default disclosures, though no rate limits or return shape are discussed.

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

Conciseness4/5

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

Compact and front-loaded: the 'WHAT:' clause leads with the generated target and the reused prefab, then the negative constraints. Telegraphic phrasing ('option = contactOption of one of the 10 end-invoices') is dense but earns its space; no filler sentences.

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?

For a one-parameter, read-only composer with a 100%-covered schema and an output schema (so return format needn't be explained), the description covers default behavior, absence of sending, and the correct alternative source for the partner mailbox. Nothing essential to a correct call 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% and the enum itself documents every value, so the schema carries the parameter burden. The description restates the default ('Omit = beratung') and roughly groups the allowed values, which duplicates rather than extends the schema; the grouping is also loose since it names 12 of the 15 enum members without accounting for zugefallen/abgeschlossen/zylinder.

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+resource (builds a mailto: to info@ikeytz.com using the compose_whatsapp prefab with subject+body) and explicitly contrasts itself with siblings compose_whatsapp and the tel-compose tools, plus clarifies what it is NOT (not the partner mailbox seen on get_partner_info). An agent can distinguish it from every sibling without opening a schema.

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

Usage Guidelines4/5

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

Gives concrete invocation guidance: the option must be one of the listed prefab ids, and calling with {} yields the beratung advice template rather than an empty mailbox. It also rules out use for the partner mailbox. It never states explicitly when to choose this over compose_whatsapp/compose_tel_mobile, so a 5 is not warranted.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources