A dark technical workstation visualizing roofing services, locations, and structured data connections

CMAC Developer & Agent Resources

Public, read-only access to CMAC’s published knowledge.

  • Veteran-owned
  • Five-state service
  • Free inspection

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.

01SCOPE MODULE

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.

02SCOPE MODULE

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
03SCOPE MODULE

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.

04SCOPE MODULE

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.

05SCOPE MODULE

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.