{
 "name": "Agent Ready HTML",
 "kind": "docs",
 "description": "llms.txt Index rows, crawl measures and platform scores of Agent Ready HTML, read-only.",
 "icon": "https://agentreadyhtml.netlify.app/favicon.svg",
 "url": "https://agentreadyhtml.netlify.app/mcp",
 "transport": "streamable-http",
 "serverInfo": {
  "name": "com.agentreadyhtml/mcp",
  "title": "Agent Ready HTML MCP server",
  "version": "1.0.0"
 },
 "capabilities": {
  "tools": true,
  "resources": true
 },
 "auth": "none",
 "documentation": "https://agentreadyhtml.netlify.app/developers/",
 "servers": [
  {
   "name": "com.agentreadyhtml/mcp",
   "url": "https://agentreadyhtml.netlify.app/mcp",
   "transport": "streamable-http",
   "card": "https://agentreadyhtml.netlify.app/mcp/server-card"
  }
 ],
 "tools": [
  {
   "name": "search_llms_index",
   "description": "Lists llms.txt files from the index (domain, Tranco rank, category, platform, grade A to F, size, H1, link counts, whether the home page links it, page URL). Filter by words in the domain or H1, grade, category, platform, minimum links or linked_from_home. Call it to find which sites serve an llms.txt and how it grades; use get_llms_entry for one domain in full.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "q": {
      "type": "string",
      "description": "Words to look for in the domain or the H1 of the file; every word must appear, for example \"stripe\" or \"developer docs\"."
     },
     "grade": {
      "type": "string",
      "enum": [
       "A",
       "B",
       "C",
       "D",
       "F"
      ],
      "description": "Structure grade: A passes all six checks of the llmstxt.org structure, F two or fewer."
     },
     "category": {
      "type": "string",
      "description": "Category of the domain as the index lists it, for example \"Developer Tools\". grade_distribution with group_by category lists them all."
     },
     "platform": {
      "type": "string",
      "description": "Platform the home page declares in its generator tag, for example WordPress, Framer or Astro."
     },
     "min_links": {
      "type": "integer",
      "minimum": 0,
      "description": "Keep files that list at least this many links."
     },
     "linked_from_home": {
      "type": "boolean",
      "description": "true keeps files the home page links; false keeps files it does not link. Files whose home page was not read are left out of both."
     },
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Page size, 1 to 100 (default 20)."
     },
     "cursor": {
      "type": "string",
      "description": "Opaque cursor from next_cursor of the previous page."
     }
    },
    "additionalProperties": false
   }
  },
  {
   "name": "get_llms_entry",
   "description": "Returns one domain from the index: its row (grade, checks passed, size, H1, links, whether the home page links the file), what the grade means, and, when the domain has an entry page, the parsed summary, H2 sections, link hosts and the six structure checks with their detail. Call it after search_llms_index, or with any domain you are checking.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "domain": {
      "type": "string",
      "description": "A domain such as stripe.com, or a URL on it; a leading www. is ignored if the domain is not listed with it."
     }
    },
    "required": [
     "domain"
    ],
    "additionalProperties": false
   }
  },
  {
   "name": "grade_distribution",
   "description": "Returns how many llms.txt files earned each grade (A to F), overall and grouped by category or by platform, with the share that earned an A. Call it for adoption and quality questions across the index, or to list the category and platform names that search_llms_index accepts.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "group_by": {
      "type": "string",
      "enum": [
       "category",
       "platform",
       "none"
      ],
      "default": "category",
      "description": "category (default), platform, or none for the overall counts only."
     },
     "min_files": {
      "type": "integer",
      "minimum": 1,
      "default": 1,
      "description": "Leave out groups with fewer files than this; platform names read from generator tags are many and small, so 5 is a useful floor."
     }
    },
    "additionalProperties": false
   }
  },
  {
   "name": "get_crawl_measure",
   "description": "Lists the crawl measures (count, denominator and percent) for home pages that answered 200: headline figures, by category and by platform, for example the share that serve llms.txt, answer Accept: text/markdown with markdown or return 200 for a made-up path. Filter by group_type, group and words of the measure. Call it for how common a practice is.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "group_type": {
      "type": "string",
      "enum": [
       "headline",
       "category",
       "platform"
      ],
      "description": "headline is the whole crawl; category and platform split it."
     },
     "group": {
      "type": "string",
      "description": "The group name, for example \"Developer Tools\" (a category) or \"WordPress\" (a platform); case-insensitive. Omit group_type to match the name in any type."
     },
     "measure": {
      "type": "string",
      "description": "Words from the measure name; every word must appear, for example \"llms.txt\" or \"markdown\" or \"soft 404\"."
     },
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Page size, 1 to 100 (default 20)."
     },
     "cursor": {
      "type": "string",
      "description": "Opaque cursor from next_cursor of the previous page."
     }
    },
    "additionalProperties": false
   }
  },
  {
   "name": "list_platforms",
   "description": "Lists the 23 platforms (docs platforms, site builders, frameworks, edge products) with their total on the nine-key rubric and each key score (2 on by default, 1 with setup, 0 not offered, n/a). With id, returns one platform with the evidence, source URL and read date for every key; with key, adds that key's evidence to each platform. Call it to compare platforms or to cite one score.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string",
      "description": "Platform id for one platform in full, for example astro, nextjs-app-router or mintlify."
     },
     "type": {
      "type": "string",
      "enum": [
       "docs-platform",
       "site-builder",
       "framework",
       "edge-product"
      ],
      "description": "Keep one kind of platform."
     },
     "key": {
      "type": "string",
      "enum": [
       "initial_html_by_default",
       "real_status_codes",
       "llms_txt_generation",
       "llms_txt_linking",
       "markdown_negotiation",
       "jsonld_output",
       "openapi_exposure",
       "fenced_code",
       "manual_work_needed"
      ],
      "description": "A rubric key to rank by and to show the evidence for, for example markdown_negotiation."
     },
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Page size, 1 to 100 (default 20)."
     },
     "cursor": {
      "type": "string",
      "description": "Opaque cursor from next_cursor of the previous page."
     }
    },
    "additionalProperties": false
   }
  }
 ]
}
