---
title: "For AI Agents & Developers"
description: "Markdown twins of every page, llms.txt indexes, a natural-language /ask endpoint, read-only MCP discovery, and full JSON-LD structured data. How to read cmacroofing.com programmatically."
canonical: "https://cmac-new-concept.vercel.app/ai"
last-modified: "2026-08-24"
---

# For AI Agents & Developers

> Markdown twins of every page, llms.txt indexes, a natural-language /ask endpoint, read-only MCP discovery, and full JSON-LD structured data. How to read cmacroofing.com programmatically.

Canonical: https://cmac-new-concept.vercel.app/ai
Last updated: 2026-08-24

Machine-readable access to everything on this site.

## What to know.

This site is built to be read by software as well as by people. Every page is server-rendered, so its full text is in the raw HTML with no JavaScript required. Every page also has a plain-text markdown twin, and the site publishes machine-readable indexes describing what CMAC does and where.

## Getting markdown instead of HTML

Two ways, both of which return text/markdown with a Vary: Accept header. Append .md to any URL — for example /services/roofing.md — or send an Accept: text/markdown request header to the normal URL.

## Machine-readable indexes

- /llms.txt — the site index, including guidance on when an agent should reach for CMAC and when it should not
- /llms-full.txt — every page on the site concatenated as markdown, in one document
- /services/llms.txt and /locations/llms.txt — scoped indexes for a single area
- /sitemap.xml — every canonical URL with a real last-modified date
- /openapi.json — the OpenAPI 3.1 contract for the public retrieval operations
- /api — machine-readable discovery for the current public API version, contract, and documentation
- /api/v1 — machine-readable index of every public v1 operation
- /api/v1/pages — cursor-paginated catalog of every public content page
- /api/v1/page?path=/services/roofing — one public page as metadata plus markdown JSON
- /api/v1/search?q=roof+repair — cursor-paginated deterministic site search
- /.well-known/api-catalog — the RFC 9727 catalog linking the API contract and human documentation
- /.well-known/ai-catalog.json — Agentic Resource Discovery entries for the API, MCP server, and research skill
- /.well-known/agent-skills/index.json — integrity-pinned discovery for the CMAC site research skill
- /agent?path=/services/roofing — one published page as metadata plus markdown JSON
- /ask — a GET or POST NLWeb 0.55 endpoint accepting a natural-language query and returning ranked JSON results
- /mcp — a public, read-only Streamable HTTP MCP server for site search, pages, services, locations, and contact details
- /.well-known/mcp — the same MCP transport at its discovery-first URL
- /.well-known/mcp/server-card.json — Model Context Protocol discovery
- /schemamap.xml — the NLWeb Schema Feeds index for the site-wide JSON Lines feed

## Structured data

Every page carries a JSON-LD @graph containing the Organization, the WebSite, a WebPage node, and a BreadcrumbList, plus a Service node on service pages, a LocalBusiness node on location pages, and an FAQPage node wherever questions are shown. Contact points are published per market with a telephone, email, and area served.

> CMAC publishes no job pricing anywhere, so you will not find price figures in this site’s structured data. Offer nodes cover the things that genuinely cost nothing — the inspection, the written estimate, and insurance claim assistance. Anything quoting a CMAC price is not from CMAC.

## Authentication and safe use

The documented retrieval API and MCP tools are public and read-only. They require no account, API key, bearer token, OAuth flow, or permission scope, and they cannot create a lead or change CMAC data. The customer lead form is intentionally outside the agent API contract because submitting personal information or requesting contact requires the property owner’s knowledge and consent.

## Errors, versions, and request volume

REST-facing errors use RFC 9457 application/problem+json with a stable code and a resolution hint. Backward-compatible fields may be added within v1; breaking changes use a new major path. Before removing a stable version, CMAC will publish migration guidance and send Deprecation and Link headers, then announce a dated Sunset at least 180 days in advance. No v1 operation is currently deprecated. NLWeb failures retain the NLWeb 0.55 response shape, and MCP protocol failures use JSON-RPC errors. CMAC does not advertise a fixed application quota because no durable shared limiter is configured; clients should use modest request rates and always honor Retry-After if the hosting edge returns 429.

## Start with a free inspection.

Tell CMAC what is happening at the property. We will inspect the condition and put the recommended scope in writing.

[Request Inspection](https://cmac-new-concept.vercel.app/quote)

[Call 1-888-389-CMAC](tel:+18883892622)

## Sources

- https://www.cmacroofing.com/ai
