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

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum 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.
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

TableJSON 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.
totalBytesNoFull 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.
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 / 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."
  2. 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."
  3. 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"
      +}
  4. 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."
  5. 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, …)."
  6. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With readOnlyHint already declaring a safe read, the description still adds real context: it summarizes the actual policy semantics (ai-input yes with attribution, ai-train=no, contact), notes paging behavior for large files, and states the negative-scope constraint "DOES NOT return page bodies", which is the key mis-selection risk for the similarly named get_ai_page.

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-loaded WHAT/USE/DOES-NOT structure with the purpose first and the routing advice second; dense but every clause earns its place. Slightly run-on with fragments ("Optional offset/limit page large files"), but no filler.

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?

An output schema exists, so return-shape detail is not required, and the description covers purpose, exclusions, alternatives and paging. Fully callable as written; only the parameter behavior is deferred 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% and the schema already documents offset/limit, clamping to 1..10000, nextOffset paging and the 0-based line indexing. The description only points at the schema ("see parameters / nextOffset in schema"), adding no semantics of its own, so the 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 (Fetch) and resource (/.well-known/ai.txt), defines its content (site-wide crawl/training policy with the ai-input/ai-train/contact fields), and names the siblings it is not — get_ai_page and get_discovery — so an agent can distinguish it 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?

Gives explicit when-to-use ("policy before quoting") and explicit alternatives with the condition that selects them: prefer this over get_ai_page for per-URL fulltext, and over get_discovery unless a generic file window is needed. Nothing is left to inference.

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