Skip to main content
Glama

ikeytz - Schlüsseldienst Ludwigsburg

Get Ai Txt

get_ai_txt
Read-only

WHAT: Fetch /.well-known/ai.txt — site-wide crawl/training policy (ai-input yes with attribution, ai-train=no, contact). USE for policy before quoting. Prefer this over get_ai_page (per-URL ai-pages fulltext) and over get_discovery unless you need a generic file window. Optional offset/limit page large files — see parameters / nextOffset in schema. DOES NOT return page bodies.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of lines to return after offset. Omit or null = if remaining payload ≤~30KB return all remaining lines; if larger, return first ~30KB window + nextOffset (O9). Explicit limit keeps 1..10000 line window (MCP caps unchanged — not forced to 30KB). Meta also as trailing # MCP-META lines in summary.
offsetNo0-based line index into the fetched UTF-8 file (split on \n). 0 = first line. Omit = 0. Combined with limit = a sliding window. Use nextOffset from the previous result to page. Does not count bytes; one line can be a long URL.

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.
pathNoPublic path on www, e.g. /llms.txt or /.well-known/ai.txt
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.
limitNoApplied line limit, or null if the caller omitted limit.
whichNoResolved discovery id after alias fold (llms, sitemap-txt, ard, ai-catalog, …).
localeNoLocale actually used for URLs (args.locale or de).
offsetNoApplied 0-based line offset.
relatedNoAlways includes https://www.ikeytz.com/llms.txt. Geo tools also include https://maps.ikeytz.com/llms.txt.
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.
totalUrlsNohttp(s) lines in the loaded file (full count when public/ read succeeds).
truncatedNotrue if load hit a byte cap OR offset+limit left more lines. Also mirrored in trailing # MCP-META lines in summary.
nextOffsetNooffset + returnedLines when more lines remain in the loaded file; else null. Pass as the next offset. Also in # MCP-META.
totalBytesNoUncompressed UTF-8 byte length of the discovery file (decoded body). Content-Length is used only for identity responses when it is ≥ body size (full file if the load cap truncated). Gzip wire Content-Length is ignored. Also in # MCP-META.
totalCharsNoCharacter length of the downloaded body before applying discoveryFetchMax (may equal totalBytes for ASCII).
totalLinesNoLine count of the loaded file (full public/ file when available).
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.
returnedUrlsNoLines in this window that start with http(s)://
bytesReturnedNoUTF-8 byte length of the returned body window (before # MCP-META).
returnedLinesNoHow many lines are in summary/body this call (before # MCP-META).
fetchTruncatedNotrue if discoveryFetchMax cut the load (line-boundary safe). Large discovery files (sitemap-xml ~12MB, llms-keywords ~55MB, llms-index ~2MB) must load full so offset/limit can reach EOF.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / totalBytes / description
      Previous value: -"Full origin file size when Content-Length is present (e.g. llms-keywords ~50MB); else character length of the downloaded body before the load cap. Also in # MCP-META."New value: +"Uncompressed UTF-8 byte length of the discovery file (decoded body). Content-Length is used only for identity responses when it is ≥ body size (full file if the load cap truncated). Gzip wire Content-Length is ignored. Also in # MCP-META."
  2. Changed1 schema field changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of lines to return after offset. Omit or null = return every remaining line in the loaded file. Clamped to 1..10000. For sitemap.txt (~9076 http-URLs, Stand 2026-09-22) omit limit to get the full list (or page with offset/limit + nextOffset). For llms-keywords.txt prefer a window; the file is huge. Meta also as trailing # MCP-META lines in summary."New value: +"Maximum number of lines to return after offset. Omit or null = if remaining payload ≤~30KB return all remaining lines; if larger, return first ~30KB window + nextOffset (O9). Explicit limit keeps 1..10000 line window (MCP caps unchanged — not forced to 30KB). Meta also as trailing # MCP-META lines in summary."
  3. Changed1 schema field changed
    • changedOutput schema / properties / fetchTruncated / description
      Previous value: -"true if discoveryFetchMax cut the load (line-boundary safe). sitemap-xml (~12MB) and llms-index (~2MB) must load full; keywords stay capped — use totalBytes."New value: +"true if discoveryFetchMax cut the load (line-boundary safe). Large discovery files (sitemap-xml ~12MB, llms-keywords ~55MB, llms-index ~2MB) must load full so offset/limit can reach EOF."
  4. Changed1 schema field changed
    • changedOutput schema / properties / fetchTruncated / description
      Previous value: -"true if discoveryFetchMax cut the load (line-boundary safe). sitemap-xml must load full (~12MB cap); keywords stay capped — use totalBytes."New value: +"true if discoveryFetchMax cut the load (line-boundary safe). sitemap-xml (~12MB) and llms-index (~2MB) must load full; keywords stay capped — use totalBytes."
  5. Changed3 schema fields changed
    • changedOutput schema / properties / fetchTruncated / description
      Previous value: -"true if a byte cap cut the load (line-boundary safe). Rare for sitemap.txt (reads public/)."New value: +"true if discoveryFetchMax cut the load (line-boundary safe). sitemap-xml must load full (~12MB cap); keywords stay capped — use totalBytes."
    • addedOutput schema / properties / totalBytes
      Added value: +{
      +  "description": "Full origin file size when Content-Length is present (e.g. llms-keywords ~50MB); else character length of the downloaded body before the load cap. Also in # MCP-META.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / totalChars
      Added value: +{
      +  "description": "Character length of the downloaded body before applying discoveryFetchMax (may equal totalBytes for ASCII).",
      +  "type": "number"
      +}
  6. Changed8 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of lines to return after offset. Omit or null = return every remaining line in the fetch window (not the whole disk file if the fetch itself truncated). Clamped to 1..10000. For sitemap.txt (~807 URL lines) omit limit to get the full list. For llms-keywords.txt prefer a window; the file is huge."New value: +"Maximum number of lines to return after offset. Omit or null = return every remaining line in the loaded file. Clamped to 1..10000. For sitemap.txt (~9076 http-URLs, Stand 2026-09-22) omit limit to get the full list (or page with offset/limit + nextOffset). For llms-keywords.txt prefer a window; the file is huge. Meta also as trailing # MCP-META lines in summary."
    • changedOutput schema / properties / bytesReturned / description
      Previous value: -"UTF-8 byte length of the returned body window."New value: +"UTF-8 byte length of the returned body window (before # MCP-META)."
    • addedOutput schema / properties / fetchTruncated
      Added value: +{
      +  "description": "true if a byte cap cut the load (line-boundary safe). Rare for sitemap.txt (reads public/).",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / nextOffset / description
      Previous value: -"offset + returnedLines when more lines remain; else null. Pass as the next offset."New value: +"offset + returnedLines when more lines remain in the loaded file; else null. Pass as the next offset. Also in # MCP-META."
    • changedOutput schema / properties / returnedLines / description
      Previous value: -"How many lines are in summary/body this call."New value: +"How many lines are in summary/body this call (before # MCP-META)."
    • changedOutput schema / properties / totalLines / description
      Previous value: -"Line count of the fetched text (after byte cap)."New value: +"Line count of the loaded file (full public/ file when available)."
    • changedOutput schema / properties / totalUrls / description
      Previous value: -"http(s) lines in the fetched text."New value: +"http(s) lines in the loaded file (full count when public/ read succeeds)."
    • changedOutput schema / properties / truncated / description
      Previous value: -"true if fetch hit a byte cap OR offset+limit left more lines."New value: +"true if load hit a byte cap OR offset+limit left more lines. Also mirrored in trailing # MCP-META lines in summary."
  7. Changed1 schema field changed
    • changedOutput schema / properties / which / description
      Previous value: -"Resolved discovery id after alias fold (llms, sitemap-txt, ai-catalog, …)."New value: +"Resolved discovery id after alias fold (llms, sitemap-txt, ard, ai-catalog, …)."
  8. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare readOnlyHint, so the description must supply the rest. It discloses a negative boundary ('DOES NOT return page bodies') and paging behavior (offset/limit windows, nextOffset carry-forward) beyond the safety hint. It stops short of stating rate limits, auth requirements, or what the policy text authorizes downstream (e.g., quoting obligations), so it is strong rather than complete.

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?

Front-loads WHAT and USE in a compact, telegraphic style with zero filler sentences. The parenthetical enumeration of policy fields is borderline extraneous but still informative, keeping it just shy of a 5.

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 and read-only annotations covering safety, the remaining agent needs are scope, alternatives, negative boundaries, and paging — all present. Nothing required to call this 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 are already fully documented including defaults, ranges, and nextOffset paging. The description only gestures at them ('Optional offset/limit page large files — see parameters / nextOffset in schema'), adding no format or edge-case 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?

Opens with a specific verb and resource ('Fetch /.well-known/ai.txt') plus a scope summary ('site-wide crawl/training policy'), which immediately distinguishes it from per-URL siblings. It also names what the file contains (ai-input/ai-train/contact), so an agent knows the payload semantics without opening anything.

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 an explicit use condition ('USE for policy before quoting') and routes away from two named siblings with the condition that selects each: get_ai_page for per-URL fulltext, get_discovery only when a generic file window is needed. This is exactly the when/when-not/alternative structure the dimension asks for.

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