Skip to main content
Glama

Draft llms.txt

llms_txt_draft
Read-onlyIdempotent

Draft a starter llms.txt (Markdown: # name, > one-line summary, key page links, contact) from business details, to publish at the site root so AI agents get a curated summary. Use when a site has no llms.txt. Do NOT use for crawler access rules (use robots_txt_for_ai) or schema.org markup (use schema_jsonld_sample).

Input Schema

NameRequiredDescriptionDefault
key_pagesNoOptional important pages listed under '## Key pages'. Each needs title and url.
descriptionYesOne sentence on what you offer and for whom, used as the '> ' summary, e.g. 24/7 emergency plumbers serving Austin, TX.
business_nameYesBusiness or site name used as the '# ' title, e.g. Reddy Plumbing.
contact_emailNoOptional contact email listed under '## Contact', e.g. hello@example.com.

Output Schema

NameRequiredDescriptionDefault
tipsYesTips for keeping llms.txt useful.
llms_txtYesGenerated llms.txt Markdown content.
disclaimerYesInformational disclaimer: crawler behaviour can change, verify against provider docs.
publish_atYesWhere to publish the file (site root, text/plain).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / business_name / description
      Previous value: -"Business or site name"New value: +"Business or site name used as the '# ' title, e.g. Reddy Plumbing."
    • changedInput schema / properties / contact_email / description
      Previous value: -"Contact email"New value: +"Optional contact email listed under '## Contact', e.g. hello@example.com."
    • changedInput schema / properties / description / description
      Previous value: -"One sentence about what you offer"New value: +"One sentence on what you offer and for whom, used as the '> ' summary, e.g. 24/7 emergency plumbers serving Austin, TX."
    • changedInput schema / properties / key_pages / description
      Previous value: -"Key pages"New value: +"Optional important pages listed under '## Key pages'. Each needs title and url."
    • removedInput schema / properties / key_pages / items / additionalProperties
      Removed value: -false
    • changedInput schema / properties / key_pages / items / properties / note / description
      Previous value: -"What the page covers"New value: +"Optional short note shown after the link, e.g. Pricing and areas served."
    • changedInput schema / properties / key_pages / items / properties / title / description
      Previous value: -"Page title"New value: +"Link text, e.g. Services."
    • changedInput schema / properties / key_pages / items / properties / url / description
      Previous value: -"Page URL"New value: +"Absolute page URL, e.g. https://example.com/services."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "disclaimer": {
      +      "description": "Informational disclaimer: crawler behaviour can change, verify against provider docs.",
      +      "type": "string"
      +    },
      +    "llms_txt": {
      +      "description": "Generated llms.txt Markdown content.",
      +      "type": "string"
      +    },
      +    "publish_at": {
      +      "description": "Where to publish the file (site root, text/plain).",
      +      "type": "string"
      +    },
      +    "tips": {
      +      "description": "Tips for keeping llms.txt useful.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "llms_txt",
      +    "publish_at",
      +    "tips",
      +    "disclaimer"
      +  ],
      +  "type": "object"
      +}
  2. Changed10 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / business_name / description
      Previous value: -"Business or site name used as the '# ' title, e.g. Reddy Plumbing."New value: +"Business or site name"
    • changedInput schema / properties / contact_email / description
      Previous value: -"Optional contact email listed under '## Contact', e.g. hello@example.com."New value: +"Contact email"
    • changedInput schema / properties / description / description
      Previous value: -"One sentence on what you offer and for whom, used as the '> ' summary, e.g. 24/7 emergency plumbers serving Austin, TX."New value: +"One sentence about what you offer"
    • changedInput schema / properties / key_pages / description
      Previous value: -"Optional important pages listed under '## Key pages'. Each needs title and url."New value: +"Key pages"
    • addedInput schema / properties / key_pages / items / additionalProperties
      Added value: +false
    • changedInput schema / properties / key_pages / items / properties / note / description
      Previous value: -"Optional short note shown after the link, e.g. Pricing and areas served."New value: +"What the page covers"
    • changedInput schema / properties / key_pages / items / properties / title / description
      Previous value: -"Link text, e.g. Services."New value: +"Page title"
    • changedInput schema / properties / key_pages / items / properties / url / description
      Previous value: -"Absolute page URL, e.g. https://example.com/services."New value: +"Page URL"
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "disclaimer": {
      -      "description": "Informational disclaimer: crawler behaviour can change, verify against provider docs.",
      -      "type": "string"
      -    },
      -    "llms_txt": {
      -      "description": "Generated llms.txt Markdown content.",
      -      "type": "string"
      -    },
      -    "publish_at": {
      -      "description": "Where to publish the file (site root, text/plain).",
      -      "type": "string"
      -    },
      -    "tips": {
      -      "description": "Tips for keeping llms.txt useful.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "llms_txt",
      -    "publish_at",
      -    "tips",
      -    "disclaimer"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed8 schema fields changed
    • changedInput schema / properties / business_name / description
      Previous value: -"The name of your business"New value: +"Business or site name used as the '# ' title, e.g. Reddy Plumbing."
    • changedInput schema / properties / contact_email / description
      Previous value: -"Your business's contact email address"New value: +"Optional contact email listed under '## Contact', e.g. hello@example.com."
    • changedInput schema / properties / description / description
      Previous value: -"A brief description of your business"New value: +"One sentence on what you offer and for whom, used as the '> ' summary, e.g. 24/7 emergency plumbers serving Austin, TX."
    • changedInput schema / properties / key_pages / description
      Previous value: -"Array of strings; URLs of key pages on your website"New value: +"Optional important pages listed under '## Key pages'. Each needs title and url."
    • addedInput schema / properties / key_pages / items / properties / note / description
      Added value: +"Optional short note shown after the link, e.g. Pricing and areas served."
    • addedInput schema / properties / key_pages / items / properties / title / description
      Added value: +"Link text, e.g. Services."
    • addedInput schema / properties / key_pages / items / properties / url / description
      Added value: +"Absolute page URL, e.g. https://example.com/services."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "disclaimer": {
      +      "description": "Informational disclaimer: crawler behaviour can change, verify against provider docs.",
      +      "type": "string"
      +    },
      +    "llms_txt": {
      +      "description": "Generated llms.txt Markdown content.",
      +      "type": "string"
      +    },
      +    "publish_at": {
      +      "description": "Where to publish the file (site root, text/plain).",
      +      "type": "string"
      +    },
      +    "tips": {
      +      "description": "Tips for keeping llms.txt useful.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "llms_txt",
      +    "publish_at",
      +    "tips",
      +    "disclaimer"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "llms_txt_content": {
      -      "description": "The generated llms.txt content as a single string.",
      -      "type": "string"
      -    },
      -    "message": {
      -      "description": "A message providing additional information about the status.",
      -      "type": "string"
      -    },
      -    "status": {
      -      "description": "The status of the generation process, e.g., 'success' or 'error'.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "llms_txt_content",
      -    "status"
      -  ],
      -  "type": "object"
      -}New value: +null
  5. Changed4 schema fields changed
    • addedInput schema / properties / business_name / description
      Added value: +"The name of your business"
    • addedInput schema / properties / contact_email / description
      Added value: +"Your business's contact email address"
    • addedInput schema / properties / description / description
      Added value: +"A brief description of your business"
    • addedInput schema / properties / key_pages / description
      Added value: +"Array of strings; URLs of key pages on your website"
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "llms_txt_content": {
      +      "description": "The generated llms.txt content as a single string.",
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "A message providing additional information about the status.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "The status of the generation process, e.g., 'success' or 'error'.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "llms_txt_content",
      +    "status"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive, closed-world), so the bar is lower. The description adds real value by disclosing the nature of the output artifact and its intended deployment location (site root) so AI agents pick up a curated summary. It does not mention any auth or rate-limit behavior, but neither is relevant for a pure generation tool.

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

Conciseness5/5

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

Three sentences, all earning their place: purpose and output shape first, then the use condition, then the exclusions. The format enumeration is front-loaded rather than buried, and there is no filler.

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?

Output schema exists so return values need no explanation, and the schema fully documents parameters. Combined with complete usage routing and an accurate safety profile from annotations, an agent has everything needed to call this correctly.

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 all four parameters (including nested key_pages with title/url/note) are already documented in the schema. The description only gestures at inputs with "from business details" and adds no syntax or format guidance beyond that, 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+resource (draft a starter llms.txt) and even enumerates the artifact's structure (# name, > summary, key page links, contact). It also names the sibling tools it is not (robots_txt_for_ai, schema_jsonld_sample), so an agent can route correctly without opening any schema.

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?

Explicit positive condition ("Use when a site has no llms.txt") plus two explicit exclusions with the correct alternative named for each. This is textbook when/when-not/alternatives guidance.

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