Skip to main content
Glama

llms.txt registry

llms_list_sources
Read-onlyIdempotent

List known llms.txt documentation sources with their liveness check outcomes, including built-in and user-added entries. Set refresh to poll again and bypass cached results.

Instructions

Known llms.txt sources, each with the outcome of a liveness check.

Built-in (default) sources plus ones added via llms_add_source. Before returning, all of them are polled with a HEAD request that bypasses the cache; outcomes are kept until the machine reboots and no longer than the TTL, so repeated calls don't hit the network. Also returns the names of file variants that llms_index looks for next to the index.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
refreshNoPoll again, ignoring any saved outcomes.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourcesYes
variantsYesfile names that llms_index looks for on a domain
checked_agoYesdata age in seconds; 0 means obtained by this call

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/openWorld, yet the description adds substantial undisclosed behavior: an uncached HEAD liveness poll on every call, outcome retention until reboot bounded by a TTL, the fact that repeated calls skip the network, and that it returns the file-variant names llms_index searches for. That is exactly the extra context annotations cannot express.

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?

Purpose is front-loaded in the first clause, followed by provenance, caching behavior, and return-content notes. Every sentence carries information, though the line breaks and inline code formatting make it slightly denser than needed for a one-parameter read tool.

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, return values need not be enumerated, but the description still clarifies what each entry contains and why stale outcomes may appear. For a simple read-only listing tool with one optional flag and full annotation coverage, nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single refresh parameter is already documented, so the baseline is 3. The description goes beyond it by explaining the consequence of not refreshing (saved outcomes are reused, network is not hit) and what 'ignore saved outcomes' actually means, which clarifies the flag's effect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (known llms.txt sources) and its payload (each with a liveness-check outcome), plus the provenance split between built-in and llms_add_source-generated entries. It distinguishes itself reasonably from siblings like llms_add_source/llms_remove_source, though it never states the action as an explicit verb ('lists').

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: it tells you the list contains built-ins plus sources added via llms_add_source, and that refresh forces a re-poll. There is no explicit 'use this when you want X, not llms_search/llms_index' routing, so the agent must infer the trigger from the sibling set.

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