Skip to main content
Glama

Server Details

Audits AI-crawler access, structured data and llms.txt on a site, and drafts the fixes.

Ownership verified
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP ยท MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct verb+target: page-level crawlability audit, cross-source NAP consistency, llms.txt generation, JSON-LD generation, and JSON-LD validation. The main potential confusion is between audit_ai_readiness and validate_structured_data (both cite spec rules for JSON-LD) and between audit_ai_readiness and check_entity_consistency (both touch on NAP appearing in markup vs visible page), but descriptions clearly separate live-page auditing from local validation and multi-source comparison.

Naming Consistency5/5

All five names follow a clean verb_noun pattern (audit_, check_, generate_, generate_, validate_) with consistent snake_case and descriptive objects. No mixing of conventions or vague verbs.

Tool Count5/5

Five tools is well-scoped for an AI-search-readiness kit, and each covers a distinct capability (audit, compare, generate llms.txt, generate schema, validate schema) with no redundant entries. Nothing feels padded or missing at the count level.

Completeness4/5

The set covers a solid lifecycle for structured data and AI-crawler readiness: audit, generate, validate, and cross-source consistency. Minor gaps remain, such as no tool to generate or fix robots.txt directives and no Organization/non-LocalBusiness schema generator, though agents can work around these with the existing tools.

Available Tools

5 tools
audit_ai_readinessAudit AI search readinessA
Read-onlyIdempotent
Inspect

Audit one public web page for what AI answer engines and their crawlers rely on. Reads the page plus its site's robots.txt, llms.txt and sitemap, then reports: for each AI crawler and control token (OAI-SearchBot, ChatGPT-User, GPTBot, Claude-SearchBot, Claude-User, ClaudeBot, PerplexityBot, Perplexity-User, Googlebot, Google-Extended, Applebot, Applebot-Extended) whether robots.txt allows it on this page under RFC 9309 matching; noindex and nosnippet directives; JSON-LD validity against the schema.org vocabulary and Google's LocalBusiness rules; whether the name, phone and address in the markup also appear on the visible page; llms.txt format; canonical tag; and sitemap. Every finding cites the public spec or vendor document behind it, with the date it was read. Results are cached for 10 minutes.

NameRequiredDescriptionDefault
urlYesThe page to audit, such as example.com or https://example.com/locations/denver. Public http and https only.
detailNo"summary" (default) lists only findings that warn, fail or inform; "full" includes passing findings with their sources.summary

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/open-world behavior, so the bar is lower, yet the description adds real value: it discloses the read-only inputs (page, robots.txt, llms.txt, sitemap), that findings cite public specs with read dates, and a 10-minute caching window. It stops short of describing output shape or failure modes on unreachable pages.

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 sentence, and the long enumeration of checks is dense but largely earns its place by telling the agent what the report contains. It is a single sprawling sentence-list with some items that could be compressed, keeping it just below ideal.

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?

With no output schema, the description must carry the return value, and it does so by enumerating the findings it reports and noting the 10-minute cache. It is nearly complete for a complex audit tool, with only the concrete response format left unstated.

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 both url and the detail enum are already fully documented with examples and defaults. The description adds no additional meaning about the parameters (e.g., how detail interacts with caching), so the baseline 3 applies.

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?

States a specific verb and resource ('Audit one public web page') and enumerates precisely what it inspects, so an agent knows exactly what the tool produces. It does not, however, distinguish itself from siblings like validate_structured_data and check_entity_consistency, whose checks it clearly subsumes.

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 is implied by the scoped framing ('one public web page') and the composite nature of the audit, but there is no explicit when-to-use, when-not-to-use, or routing to the sibling tools. An agent must infer that this is the broad audit rather than a targeted check.

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

check_entity_consistencyCheck entity consistencyA
Read-onlyIdempotent
Inspect

Compare a business's name, phone, street, city, region and postal code across up to 8 sources, such as its website, Google Business Profile, Facebook page and directory listings. For each source give a url to read (JSON-LD first, then tap-to-call links and page text) and/or the facts shown on it; supplied facts win, and are needed for sites that block automated readers. Formats are normalized ("123 North Main Street, Suite 4" matches "123 N Main St Ste 4", "(406) 555-0100" matches "+1 406-555-0100"), then each field is reported as consistent, variant or mismatch, with the exact fixes. Give business to compare against a canonical record instead of the majority.

NameRequiredDescriptionDefault
businessNoThe canonical name, phone and address every source should match.
profilesYes

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld annotations: discloses the read strategy (JSON-LD first, then tap-to-call links and page text), that supplied facts win and are required for sites blocking automated readers, and the normalization rules with concrete examples. It also describes the per-field verdict model (consistent/variant/mismatch) and that fixes are returned.

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 the comparison action and keeps to one dense paragraph where each sentence adds a distinct behavior (sources, input strategy, normalization, output, override). It is a little packed and some ideas are compressed into comma-chained clauses, but little is wasted.

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 nested-object tool with no output schema, the description covers input strategy, normalization, verdict vocabulary and that exact fixes are returned, which is enough to call it correctly. Minor gaps remain around ordering, limits (the 8-source cap is only implied by 'up to 8'), and how conflicting supplied facts are reported.

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 only 50%, so the description must compensate, and it does: it clarifies that each profile may carry a url, supplied facts, or both, that supplied facts override scraped values, and what the optional business object does (canonical override instead of majority). Format normalization examples further clarify acceptable input shapes, though the individual address field mappings are left to the schema.

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 and resource with scope: compare name, phone, street, city, region and postal code across up to 8 named source types. It is clearly distinguishable from siblings like validate_structured_data or generate_local_business_schema, which handle single-page validation or generation rather than cross-source comparison.

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 is implied by the mechanics ('For each source give a url... and/or the facts shown on it') and it does give one conditional: supply business to compare against a canonical record instead of the majority. However, it never states when to prefer this tool over the sibling audit/validate tools, so the agent must infer the routing.

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

generate_llms_txtGenerate llms.txtA
Read-onlyIdempotent
Inspect

Write an llms.txt file in the llmstxt.org format: an H1 with the site name, a blockquote summary, optional details, H2 sections of "- title: note" links, and an Optional section for secondary pages. Give url to build it from the live site (home page, sitemap, and up to 30 pages' own titles and meta descriptions, honoring the site's robots.txt and skipping noindex pages), or give site_name and sections to build it from your own facts; supplied fields override what is read from the site. The result is checked against the format before it is returned. Nothing is published.

NameRequiredDescriptionDefault
urlNoA public site to read, such as example.com.
detailsNoOptional markdown notes between the summary and the link sections. Headings are not allowed there.
summaryNoOne or two sentences for the blockquote.
sectionsNoH2 file lists, each with links.
max_pagesNoHow many pages to read from the site, 1 to 30. Default 20.
site_nameNoThe H1. Required when url is not given.
optional_linksNoSecondary links for the Optional section.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, openWorld and non-destructive, and the description still adds real behavioral facts: robots.txt is honored, noindex pages are skipped, at most 30 pages are read, output is format-checked before return, and 'Nothing is published.' The 'up to 30 pages' phrasing is slightly loose against max_pages default 20, but it is not a contradiction.

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 with what gets produced (the file format) before the input modes, and every clause carries information. It is a dense paragraph rather than a broken-out structure, which costs a little scannability but wastes no 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?

With no output schema, the description implies the result is a validated llms.txt ready to be returned or used, which is enough for correct invocation. It stops short of describing the actual return payload shape, the one remaining detail an agent might want.

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%, so the baseline is 3, but the description adds genuine meaning the schema cannot convey: url and site_name/sections are alternative construction modes, and 'supplied fields override what is read from the site' defines precedence among them. That precedence rule is absent from the schema.

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 and artifact ('Write an llms.txt file in the llmstxt.org format') and spells out the exact structure it produces. This is unambiguously distinct from siblings like validate_structured_data or audit_ai_readiness, which consume rather than generate artifacts.

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?

Clearly explains the two input modes: 'give url to build it from the live site' versus 'give site_name and sections to build it from your own facts,' plus the override rule when both are supplied. It gives strong in-tool routing guidance but never contrasts itself with the sibling tools, so the agent gets no external when-not guidance.

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

generate_local_business_schemaGenerate LocalBusiness schemaA
Read-onlyIdempotent
Inspect

Turn a local business's facts into schema.org JSON-LD. Chooses the most specific LocalBusiness subtype from business_type (for example "roofing company" becomes RoofingContractor) or takes schema_type as given, writes only properties schema.org defines for that type, formats hours, phone and 24 hour or closed days the way Google documents, then validates the output against the schema.org vocabulary. Returns the JSON-LD, a ready-to-paste script tag, the type chosen with alternatives, and cited notes on anything left out. No network access; nothing is published.

NameRequiredDescriptionDefault
urlNoThe business website or location page.
logoNoLogo image URL.
nameYesBusiness name as shown on the storefront, website and Google profile.
emailNo
hoursNoRegular opening hours. Days not listed read as closed.
imagesNo
same_asNoOfficial profile URLs that identify the business: Google Business Profile, Facebook, LinkedIn, Yelp, Wikidata.
foundersNo
latitudeNo
menu_urlNoFood businesses only.
servicesNoServices offered, written as Offer items.
longitudeNo
open_24_7NoTrue when the business is open 24 hours every day. Overrides hours.
telephoneNoPrimary customer phone number. North American numbers are written as +1-AAA-BBB-CCCC.
area_servedNoPlaces served: plain names, or objects with a type (City, State, AdministrativeArea, Country, Place) and an optional Wikidata or Wikipedia URL in same_as.
descriptionNo
postal_codeNo
price_rangeNoSuch as "$$" or "$100-$300". Under 100 characters.
schema_typeNoAn exact schema.org LocalBusiness subtype, or up to three, such as "Plumber". Overrides business_type.
business_typeNoPlain words for what the business is, such as "plumber", "dental office" or "coffee shop".
founding_dateNoYYYY-MM-DD.
address_regionNoState, province or region, such as "MT".
serves_cuisineNoFood businesses only.
street_addressNo
address_countryNoTwo-letter ISO country code, such as "US".
address_localityNoCity or town.
payment_acceptedNo
seasonal_closuresNoClosed periods, dates as YYYY-MM-DD.
currencies_acceptedNoISO 4217 codes such as USD.
hide_street_addressNoTrue for a service-area business that does not serve customers at its address.
accepts_reservationsNoFood businesses only.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld=false, idempotent and non-destructive, so the safety profile is covered. The description adds real value beyond that: it names the full return payload (JSON-LD, script tag, chosen type with alternatives, cited notes) and explicitly says 'No network access; nothing is published,' which reinforces the openWorld=false hint with concrete context.

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?

Four dense sentences, front-loaded with the core verb+resource and ending with the non-side-effect guarantee. Every clause earns its place, though the single run-on flow could be broken into shorter segments for faster scanning.

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?

No output schema exists, and the description correctly fills that gap by enumerating what is returned. For a 31-parameter, no-annotation-gaps generation tool it covers purpose, processing and side effects well; only the undocumented parameter subset and error/edge-case behavior remain unaddressed.

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?

With 31 params at 71% schema coverage, the description adds meaning beyond the schema by explaining precedence (business_type is resolved to a specific subtype unless schema_type is given) and how hours, phone and 24-hour/closed days are normalized the way Google documents. It does not cover the remaining ~29% of undocumented parameters (e.g. hide_street_address, accepts_reservations), so it falls short of full compensation.

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 transformation (local business facts -> schema.org JSON-LD) with the exact subtype-selection and formatting behaviors it performs. An agent can tell this apart from the read-only audit/validate siblings because the description makes clear this generates and self-validates JSON-LD rather than checking existing markup.

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?

The description implies usage through the business_type vs schema_type branch and the self-validation step, so the context is inferable. However, it never states when to reach for this tool versus validate_structured_data or check_entity_consistency, and offers no prerequisites or exclusions.

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

validate_structured_dataValidate structured dataA
Read-onlyIdempotent
Inspect

Validate pasted JSON-LD against the schema.org vocabulary (every type, property, domain, range and enumeration value) and Google's documented rules for LocalBusiness and Organization markup: required name and address, recommended properties, hh:mm:ss hours, 5 decimal coordinates, priceRange length, self-serving reviews, sameAs. Accepts one block, several blocks, or the script tags around them. Each issue cites its source. No network access.

NameRequiredDescriptionDefault
json_ldYesJSON-LD text. Script tags are stripped; several script blocks are each validated.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld=false; the description reinforces the safety profile with 'No network access' and adds genuinely new behavioral context: validation is deterministic against cited sources ('Each issue cites its source'). It stops short of describing issue severity or output shape.

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?

One dense sentence with the purpose front-loaded, followed by a rule inventory. The long enumeration of checks is justified because it defines the tool's scope, though it could be trimmed slightly without losing meaning.

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 single-parameter, no-output-schema tool, the description enumerates the validation rule set, states accepted input forms, and hints at the return ('each issue cites its source'). Nothing essential is missing, though the issue object's structure is left unspecified.

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 coverage is 100% and the single parameter's description already explains script-tag stripping and multi-block handling, so the description's matching sentence is largely redundant. Baseline 3 for a fully documented single parameter.

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?

Specific verb+resource ('Validate pasted JSON-LD against the schema.org vocabulary and Google's rules') with the validation scope spelled out. It is clearly distinct from siblings like generate_local_business_schema or check_entity_consistency, which produce or compare markup rather than validate it.

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?

Input-format guidance is present ('Accepts one block, several blocks, or the script tags around them'), which tells the agent what to pass. However, there is no explicit when-to-use statement or routing against siblings (e.g., validate before/after generate_local_business_schema), so usage is only implied.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedaudit_ai_readiness
    • First observedcheck_entity_consistency
    • First observedgenerate_llms_txt
    • First observedgenerate_local_business_schema
    • First observedvalidate_structured_data

Publisher details

Operator
Modern Mustard Seed ยท Publisher source
Vendor relationship
First-party
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables auditing websites for AI/LLM readiness and generating fixes such as robots.txt rules, llms.txt, JSON-LD schema, and meta tags, plus checking brand and domain citations through natural language.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables users to audit websites and online stores for generative and answer-engine readiness, generate deployable llms.txt and llms-full.txt files, JSON-LD schema, and AI crawler rules, analyze robots access for AI bots, and extract clean page content for LLM use.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Runs AI visibility (GEO/AEO) audits on websites, checking AI crawler access, schema markup, llms.txt, and content signals, with optional full PDF report.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources