Agent Ready Cloudflare logo

Agent Ready Cloudflare

Community
fabricioctelles
agent-ready-cloudflare

Audit and improve website readiness for AI agents using the Cloudflare "Is It Agent Ready?" scanner (isitagentready.com). Covers scanning via API, interpreting results, generating implementation prompts, and fixing every check. Use when the user mentions "agent ready", "isitagentready", "AI agent scan", "agent readiness", "agent-ready score", "MCP server card", "agent skills index", "markdown for agents", "content signals", "web bot auth", "agent discovery", "RFC 9727", "RFC 8288", "RFC 9728", "SEP-1649", "WebMCP", "ARD", "ai-catalog", "x402", "UCP", "ACP", or wants to make a website discoverable and usable by AI agents.

Overview

Publisherfabricioctelles
Repositoryskills
Skill nameagent-ready-cloudflare
Stars
87
Forks
7
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by fabricioctelles on GitHub. Read the source before you install it.

Installation

Install the Agent Ready Cloudflare AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/fabricioctelles/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skills/agent-ready-cloudflare .claude/skills/agent-ready-cloudflare
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Agent Ready Cloudflare in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Agent Ready Cloudflare on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Agent Ready Cloudflare is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Agent Ready — Cloudflare Scanner

Audit any website for AI agent readiness, generate actionable fix prompts, and implement improvements to increase the agent-ready score.


0. Operational Flow

Follow this flow every time this skill is activated:

Step 1 — Get the domain

If the user did not provide a domain, ask:

Which domain do you want to scan on isitagentready.com?

Step 2 — Scan via API

bash
curl -s -X POST 'https://isitagentready.com/api/scan' \
  -H 'Content-Type: application/json' \
  -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36' \
  -H 'Referer: https://isitagentready.com/' \
  -H 'Origin: https://isitagentready.com' \
  -d '{"url":"https://DOMAIN/","enabledChecks":["robotsTxt","sitemap","linkHeaders","dnsAid","markdownNegotiation","robotsTxtAiRules","contentSignals","webBotAuth","apiCatalog","oauthDiscovery","oauthProtectedResource","authMd","mcpServerCard","a2aAgentCard","agentSkills","webMcp","ard","x402","mpp","ucp","acp","ap2"]}'

Replace DOMAIN with the target domain.

Step 3 — Generate the Markdown report

Use the API response to build a report with this structure:

markdown
# Agent Ready Scan — {domain}

> **Score:** Level {level} — {levelName}
> **Scanned:** {scannedAt}
> **Link:** [View online](https://isitagentready.com/{domain})

## Summary

| Category | Score |
|----------|-------|
| Discoverability | {passed}/{total} |
| Content | {passed}/{total} |
| Bot Access Control | {passed}/{total} |
| API, Auth, MCP & Skill Discovery | {passed}/{total} |
| Commerce (Optional) | {passed}/{total} |

## Details

### Discoverability ({passed}/{total})

-**robots.txt** — {message}
-**sitemap.xml** — {message}
  (... for each check ...)

### (... repeat for each category ...)

## 🔧 How to Implement — Agent Prompts

(... one block per failing check, see Step 4 ...)

## Next Level

**Level {nextLevel.target} — {nextLevel.name}**

To reach the next level, implement:
- {nextLevel.requirements[].description}

Step 4 — Generate "How to Implement" prompts

For every check with status: "fail" or status: "neutral", generate a prompt block using the Prompt Templates in Section 8 below. The prompt combines:

  1. The Goal and Fix from the template (static per check)
  2. The Issue from the API response (checks.{category}.{check}.message)
  3. The Skill URL pointing to the sub-skill
  4. The Docs links to the relevant RFCs/specs

Format each prompt as a fenced code block the user can copy-paste into a coding agent:

markdown
#### ❌ {check name}

**Issue:** {message from API}

```
Goal: {goal from template}

Issue: {message from API}

Fix: {fix from template}

Skill: https://isitagentready.com/.well-known/agent-skills/{skill-folder}/SKILL.md

Docs: {docs URLs from template}
```

> 📖 Reference: [{skill-folder}/SKILL.md]({skill-folder}/SKILL.md)

Step 5 — Deliver

Present the full Markdown report to the user. If they want to save it to a file, write it to the requested path.


1. What It Checks

Discoverability (4 checks)

CheckAPI KeyPass criteria
robots.txtrobotsTxtReturns 200 with text/plain containing at least one User-agent directive
sitemap.xmlsitemap/sitemap.xml returns valid XML, or Sitemap directive found in robots.txt
Link headerslinkHeadersHomepage includes Link headers with agent-useful relations (service-desc, api-catalog, etc.)
DNS-AIDdnsAidSVCB/HTTPS records found under _agents namespace via DNS-over-HTTPS (Cloudflare → Google fallback)

Content (1 check)

CheckAPI KeyPass criteria
Markdown for AgentsmarkdownNegotiationAccept: text/markdown returns Content-Type: text/markdown

Bot Access Control (3 checks)

CheckAPI KeyPass criteria
AI bot rulesrobotsTxtAiRulesrobots.txt contains User-agent entries for known AI bots (GPTBot, Claude-Web, Google-Extended, etc.)
Content SignalscontentSignalsrobots.txt contains Content-Signal directives with ai-train/search/ai-input
Web Bot AuthwebBotAuth/.well-known/http-message-signatures-directory exists with valid JWKS (informational — neutral does not affect score)

API, Auth, MCP & Skill Discovery (9 checks)

CheckAPI KeyPass criteria
API CatalogapiCatalog/.well-known/api-catalog returns valid linkset+json with API entries
OAuth/OIDCoauthDiscovery/.well-known/openid-configuration or oauth-authorization-server with valid OAuth metadata
OAuth Protected ResourceoauthProtectedResource/.well-known/oauth-protected-resource with resource and authorization_servers
Auth.mdauthMd/auth.md exists with valid H1 heading containing "auth.md"; optionally PRM + AS metadata
MCP Server CardmcpServerCardValid card at /.well-known/mcp/server-card.json, server-cards.json, or mcp.json with serverInfo.name
A2A Agent Carda2aAgentCard/.well-known/agent-card.json with name, version, and supportedInterfaces
Agent Skills IndexagentSkills/.well-known/agent-skills/index.json with valid skills array (legacy /.well-known/skills/ also accepted)
WebMCPwebMcpPage exposes MCP tools via navigator.modelContext.provideContext()
ARDard/.well-known/ai-catalog.json with specVersion, host, and non-empty entries

Commerce — Optional (5 checks, scored only if e-commerce signals detected)

CheckAPI KeyPass criteria
x402x402API routes return HTTP 402 with valid x402 payment headers
MPPmpp/openapi.json with x-payment-info extensions on payable operations (Machine Payment Protocol)
UCPucp/.well-known/ucp with protocol_version and services
ACPacp/.well-known/acp.json with protocol.name, api_base_url, transports, capabilities.services
AP2ap2A2A Agent Card includes AP2 extension with role information

2. Levels

LevelNameRequirements
0Not ReadyDoes not meet Level 1 criteria
1Basic Web PresencePass 2 of 3: robots.txt, sitemap, link headers
2Bot-AwareLevel 1 + both: AI bot rules AND Content Signals in robots.txt
3Agent-ReadableLevel 2 + markdown content negotiation
4Agent-IntegratedLevel 3 + 1 of 4: MCP Server Card, A2A Agent Card, Agent Skills, API Catalog
5Agent-NativeLevel 4 + 2 of 3: Web Bot Auth, all integrations, auth metadata (OAuth or Auth.md)

3. API Reference

Endpoint

POST https://isitagentready.com/api/scan
Content-Type: application/json

Required Headers (Cloudflare protection)

User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36
Referer: https://isitagentready.com/
Origin: https://isitagentready.com

Request Body

json
{
  "url": "https://example.com/",
  "enabledChecks": [
    "robotsTxt", "sitemap", "linkHeaders", "dnsAid",
    "markdownNegotiation",
    "robotsTxtAiRules", "contentSignals", "webBotAuth",
    "apiCatalog", "oauthDiscovery", "oauthProtectedResource", "authMd",
    "mcpServerCard", "a2aAgentCard", "agentSkills", "webMcp", "ard",
    "x402", "mpp", "ucp", "acp", "ap2"
  ]
}

All checks are optional — pass only the ones you want to run.

Set "format": "agent" to get a markdown response with fix instructions instead of JSON (useful for piping directly to an LLM).

MCP Server

The scanner is also available as an MCP server:

https://isitagentready.com/mcp

Call the scan_site tool with a url parameter. See scan-site/SKILL.md.

Discovered Endpoints (isitagentready.com itself)

The scanner practices what it preaches. These are its own agent-ready endpoints:

EndpointContent
/.well-known/api-catalogRFC 9727 linkset with scan API and MCP server entries
/.well-known/mcp/server-card.jsonMCP Server Card (Streamable HTTP transport)
/.well-known/mcp.jsonSame MCP Server Card (alternate path)
/.well-known/agent-skills/index.json24 skills in Agent Skills Discovery v0.2.0 format
/llms.txtLLM-friendly overview of the scanner
/llms-full.txtFull documentation — canonical reference for all 22 checks, pass criteria, and level system
/api/healthHealth check ({"status":"ok"})
/mcpStreamable HTTP MCP server with scan_site tool

The API Catalog links the scan API to its documentation (/llms-full.txt), its service description (/.well-known/mcp/server-card.json), and its health endpoint (/api/health).

Response Structure

json
{
  "url": "https://example.com",
  "scannedAt": "2026-04-18T13:10:58.788Z",
  "level": 1,
  "levelName": "Basic Web Presence",
  "isCommerce": false,
  "commerceSignals": [],
  "nextLevel": {
    "target": 2,
    "name": "Bot-Aware",
    "requirements": [
      {
        "check": "contentSignals",
        "description": "...",
        "shortPrompt": "...",
        "prompt": "Full implementation prompt...",
        "specUrls": ["https://..."],
        "skillUrl": "https://isitagentready.com/.well-known/agent-skills/.../SKILL.md"
      }
    ]
  },
  "checks": {
    "<category>": {
      "<checkKey>": {
        "status": "pass|fail|neutral",
        "message": "Human-readable conclusion",
        "durationMs": 42,
        "evidence": [
          {
            "action": "fetch|parse|conclude",
            "label": "GET /robots.txt",
            "request": { "url": "...", "method": "GET" },
            "response": {
              "status": 200,
              "headers": { "content-type": "..." },
              "bodyPreview": "..."
            },
            "finding": {
              "outcome": "positive|negative|neutral",
              "summary": "..."
            }
          }
        ]
      }
    }
  }
}

Status Values

StatusIconMeaning
passCheck passed
failAction needed
neutralNot applicable / informational

4. Web Interface vs API

FeatureAPIWeb UI
Score & Level
Check status + message
Evidence (audit details)✅ Full✅ Same
"How to implement" prompts⚠️ Only nextLevel (1 prompt)✅ All failing checks
Skill URLs⚠️ Only nextLevel✅ All checks

This is why this skill includes the full prompt templates below — to reconstruct the web-quality prompts from API data.


5. Batch Scanning

For multiple domains, add a 2-second delay between requests. Write results incrementally to avoid data loss:

python
import json, time, urllib.request

HEADERS = {
    "Content-Type": "application/json",
    "User-Agent": "Mozilla/5.0 ...",
    "Referer": "https://isitagentready.com/",
    "Origin": "https://isitagentready.com"
}
CHECKS = ["robotsTxt","sitemap","linkHeaders","dnsAid","markdownNegotiation",
          "robotsTxtAiRules","contentSignals","webBotAuth","apiCatalog",
          "oauthDiscovery","oauthProtectedResource","authMd","mcpServerCard",
          "a2aAgentCard","agentSkills","webMcp","ard","x402","mpp","ucp","acp","ap2"]

for domain in domains:
    body = json.dumps({"url": f"https://{domain}/", "enabledChecks": CHECKS}).encode()
    req = urllib.request.Request("https://isitagentready.com/api/scan",
                                data=body, headers=HEADERS)
    with urllib.request.urlopen(req, timeout=90) as resp:
        data = json.loads(resp.read())
    # process data...
    time.sleep(2)

6. Sub-Skills (Implementation Guides)

Discoverability

Content

Bot Access Control

API, Auth, MCP & Skill Discovery

Commerce (Optional)

Meta


7. Priority Order for Maximum Impact

  1. robots.txt + sitemap.xml → Level 1
  2. Content Signals in robots.txt → Level 2
  3. Markdown for Agents + Link headers → toward Level 3
  4. MCP Server Card + Agent Skills Index → toward Level 4
  5. OAuth discovery + API Catalog → full agent interoperability

8. Prompt Templates per Check

These templates replicate the "How to implement — paste into your coding agent" prompts from the web UI. When generating the report (Step 4), use the {issue} placeholder with the actual message from the API response.

robotsTxt

Goal: Publish /robots.txt with clear crawl rules

Issue: {issue}

Fix: Create /robots.txt at the site root with explicit User-agent directives and allow/disallow rules for key paths. Ensure it is plain text and returns 200.

Skill: https://isitagentready.com/.well-known/agent-skills/robots-txt/SKILL.md

Docs: https://www.rfc-editor.org/rfc/rfc9309

Sub-skill: robots-txt/SKILL.md

sitemap

Goal: Publish /sitemap.xml with canonical URLs

Issue: {issue}

Fix: Generate /sitemap.xml listing canonical URLs, keep it updated on publish, and reference it from /robots.txt.

Skill: https://isitagentready.com/.well-known/agent-skills/sitemap/SKILL.md

Docs: https://www.sitemaps.org/protocol.html

Sub-skill: sitemap/SKILL.md

linkHeaders

Goal: Include Link response headers for agent discovery (RFC 8288)

Issue: {issue}

Fix: Add Link response headers to your homepage that point agents to useful resources. For example: Link: </.well-known/api-catalog>; rel="api-catalog" to advertise your API catalog, or Link: </docs/api>; rel="service-doc" for API documentation. See RFC 8288 for the Link header format and IANA Link Relations for registered relation types.

Skill: https://isitagentready.com/.well-known/agent-skills/link-headers/SKILL.md

Docs: https://www.rfc-editor.org/rfc/rfc8288, https://www.rfc-editor.org/rfc/rfc9727#section-3

Sub-skill: link-headers/SKILL.md

markdownNegotiation

Goal: Return HTML responses as markdown when agents request it

Issue: {issue}

Fix: Enable Markdown for Agents so requests with Accept: text/markdown return a markdown version of your HTML response while HTML stays the default for browsers. Confirm the response uses Content-Type: text/markdown (and x-markdown-tokens if available).

Skill: https://isitagentready.com/.well-known/agent-skills/markdown-negotiation/SKILL.md

Docs: https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/

Sub-skill: markdown-negotiation/SKILL.md

robotsTxtAiRules

Goal: Add User-agent rules for AI crawlers like GPTBot, Claude-Web, and others

Issue: {issue}

Fix: Add explicit User-agent entries for AI crawlers (GPTBot, OAI-SearchBot, Claude-Web, Google-Extended) with allow/disallow rules that match your policy.

Skill: https://isitagentready.com/.well-known/agent-skills/ai-rules/SKILL.md

Docs: https://www.rfc-editor.org/rfc/rfc9309, https://developers.cloudflare.com/ai-crawl-control/

Sub-skill: ai-rules/SKILL.md

contentSignals

Goal: Declare AI content usage preferences with Content Signals in robots.txt

Issue: {issue}

Fix: Add Content-Signal directives to your robots.txt declaring preferences for ai-train, search, and ai-input. For example:
Content-Signal: ai-train=no, search=yes, ai-input=no

Skill: https://isitagentready.com/.well-known/agent-skills/content-signals/SKILL.md

Docs: https://contentsignals.org/, https://datatracker.ietf.org/doc/draft-romm-aipref-contentsignals/

Sub-skill: content-signals/SKILL.md

webBotAuth

Goal: Let your site identify itself as a bot with Web Bot Auth

Issue: {issue}

Fix: Publish a JWKS at /.well-known/http-message-signatures-directory so your site can identify itself when it sends bot or agent requests. Receiving sites can use it to verify those signed requests.

Skill: https://isitagentready.com/.well-known/agent-skills/web-bot-auth/SKILL.md

Docs: https://datatracker.ietf.org/wg/webbotauth/about/, https://developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth/

Sub-skill: web-bot-auth/SKILL.md

apiCatalog

Goal: Publish an API catalog for automated API discovery (RFC 9727)

Issue: {issue}

Fix: Create /.well-known/api-catalog returning application/linkset+json with a "linkset" array. Each entry should include an "anchor" URL for the API and link relations for service-desc (OpenAPI spec), service-doc (documentation), and status (health endpoint). See RFC 9727 Appendix A for examples.

Skill: https://isitagentready.com/.well-known/agent-skills/api-catalog/SKILL.md

Docs: https://www.rfc-editor.org/rfc/rfc9727, https://www.rfc-editor.org/rfc/rfc9264

Sub-skill: api-catalog/SKILL.md

oauthDiscovery

Goal: Publish OAuth/OIDC discovery metadata so agents can authenticate with your APIs

Issue: {issue}

Fix: If your site has protected APIs, publish /.well-known/openid-configuration (for OpenID Connect) or /.well-known/oauth-authorization-server (for pure OAuth 2.0) with your issuer, authorization_endpoint, token_endpoint, jwks_uri, and grant_types_supported. This allows AI agents to programmatically discover how to authenticate.

Skill: https://isitagentready.com/.well-known/agent-skills/oauth-discovery/SKILL.md

Docs: http://openid.net/specs/openid-connect-discovery-1_0.html, https://www.rfc-editor.org/rfc/rfc8414

Sub-skill: oauth-discovery/SKILL.md

oauthProtectedResource

Goal: Publish OAuth Protected Resource Metadata so agents can discover how to authenticate

Issue: {issue}

Fix: Publish /.well-known/oauth-protected-resource with your resource identifier, authorization_servers (list of OAuth/OIDC issuer URLs that can issue tokens for this resource), and scopes_supported. This tells agents how to obtain access tokens for your protected APIs.

Skill: https://isitagentready.com/.well-known/agent-skills/oauth-protected-resource/SKILL.md

Docs: https://www.rfc-editor.org/rfc/rfc9728

Sub-skill: oauth-protected-resource/SKILL.md

mcpServerCard

Goal: Publish an MCP Server Card for agent discovery

Issue: {issue}

Fix: Serve an MCP Server Card (SEP-1649) at /.well-known/mcp/server-card.json with serverInfo (name, version), transport endpoint, and capabilities. The schema is being standardized at https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127

Skill: https://isitagentready.com/.well-known/agent-skills/mcp-server-card/SKILL.md

Docs: https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127

Sub-skill: mcp-server-card/SKILL.md

agentSkills

Goal: Publish an agent skills discovery index

Issue: {issue}

Fix: Publish a skills discovery index at /.well-known/agent-skills/index.json (per the Agent Skills Discovery RFC v0.2.0). Include a $schema field, and a skills array where each entry has name, type, description, url, and a sha256 digest.

Skill: https://isitagentready.com/.well-known/agent-skills/agent-skills/SKILL.md

Docs: https://github.com/cloudflare/agent-skills-discovery-rfc, https://agentskills.io/

Sub-skill: agent-skills/SKILL.md

webMcp

Goal: Support WebMCP to expose site tools to AI agents via the browser

Issue: {issue}

Fix: Implement the WebMCP API by calling navigator.modelContext.provideContext() with tool definitions that expose your site's key actions to AI agents. Each tool needs a name, description, inputSchema (JSON Schema), and an execute callback function.

Skill: https://isitagentready.com/.well-known/agent-skills/webmcp/SKILL.md

Docs: https://webmachinelearning.github.io/webmcp/, https://developer.chrome.com/blog/webmcp-epp

Sub-skill: webmcp/SKILL.md

ard

Goal: Publish an ARD capability manifest at /.well-known/ai-catalog.json

Issue: {issue}

Fix: Serve /.well-known/ai-catalog.json with Content-Type application/json, HTTP 200, and Access-Control-Allow-Origin: *. Include specVersion, a host object (displayName + identifier), and a non-empty entries array. Each entry needs identifier, displayName, type, exactly one of url or data, and 2-5 representativeQueries. Use urn:air:<fqdn>:<namespace>:<name> for entry identifiers.

Skill: https://isitagentready.com/.well-known/agent-skills/ard/SKILL.md

Docs: https://agenticresourcediscovery.org/, https://github.com/Agent-Card/ai-catalog

Sub-skill: ard/SKILL.md

x402

Goal: Support x402 protocol for agent-native HTTP payments

Issue: {issue}

Fix: Add x402 payment middleware to your API routes to enable AI agents to pay for access via HTTP. Use @x402/express, @x402/hono, or @x402/next middleware with a facilitator URL and wallet address. Protected routes will return HTTP 402 with payment requirements that agents can fulfill automatically.

Skill: https://isitagentready.com/.well-known/agent-skills/x402/SKILL.md

Docs: https://x402.org, https://github.com/coinbase/x402, https://docs.x402.org

Sub-skill: x402/SKILL.md

ucp

Goal: Enable content payments via Universal Commerce Protocol

Issue: {issue}

Fix: Serve /.well-known/ucp with protocol version, services, capabilities, and endpoints, and ensure spec URLs and schemas are reachable.

Skill: https://isitagentready.com/.well-known/agent-skills/ucp/SKILL.md

Docs: https://ucp.dev/specification/overview/

Sub-skill: ucp/SKILL.md

acp

Goal: Publish ACP discovery metadata so agents can discover your commerce API

Issue: {issue}

Fix: Serve /.well-known/acp.json at the origin root with protocol.name "acp", protocol.version, api_base_url, supported transports, and capabilities.services so agents can discover your ACP implementation without creating a checkout session first.

Skill: https://isitagentready.com/.well-known/agent-skills/acp/SKILL.md

Docs: https://agenticcommerce.dev, https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/pull/137

Sub-skill: acp/SKILL.md

a2aAgentCard

Goal: Publish an A2A Agent Card for agent-to-agent discovery

Issue: {issue}

Fix: Serve JSON at /.well-known/agent-card.json with name, version, description, supportedInterfaces (service URL and transport), capabilities, and skills (each with id, name, description). See the A2A Protocol Specification for the full schema.

Skill: https://isitagentready.com/.well-known/agent-skills/a2a-agent-card/SKILL.md

Docs: https://a2a-protocol.org/latest/specification/, https://a2a-protocol.org/latest/topics/agent-discovery/

Sub-skill: a2a-agent-card/SKILL.md

dnsAid

Goal: Publish DNS for AI Discovery (DNS-AID) records for DNS-based agent discovery

Issue: {issue}

Fix: Publish SVCB or HTTPS records under your domain's _agents namespace (e.g. _a2a._agents.example.com or _index._agents.example.com). Use alpn and port SvcParamKeys with mandatory=alpn,port. Use numeric keyNNNNN names for experimental custom parameters until registered. Sign zones with DNSSEC.

Skill: https://isitagentready.com/.well-known/agent-skills/dns-aid/SKILL.md

Docs: https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-dnsaid/, https://www.rfc-editor.org/info/rfc9460

Sub-skill: dns-aid/SKILL.md

authMd

Goal: Publish Auth.md agent registration discovery metadata

Issue: {issue}

Fix: Serve /auth.md from the site root as Markdown with an H1 heading containing "auth.md". Include OAuth Protected Resource Metadata at /.well-known/oauth-protected-resource and Authorization Server metadata. Add an agent_auth block with skill, register_uri, and registration methods. If OAuth is not available, keep /auth.md self-contained with audience, registration endpoints, and credential use.

Skill: https://isitagentready.com/.well-known/agent-skills/auth-md/SKILL.md

Docs: https://auth-md.com

Sub-skill: auth-md/SKILL.md

mpp

Goal: Support MPP (Machine Payment Protocol) for agent-native HTTP payments

Issue: {issue}

Fix: Serve /openapi.json at the site root with HTTP 200. Include x-payment-info extensions on payable operations declaring intent (charge or session), method (tempo, stripe, lightning, card), and amount. Optionally include currency, description, and top-level x-service-info with categories.

Skill: https://isitagentready.com/.well-known/agent-skills/mpp/SKILL.md

Docs: https://mpp.dev, https://paymentauth.org/draft-payment-discovery-00.txt

Sub-skill: mpp/SKILL.md

llmsTxt

Goal: Publish an LLM-friendly overview at /llms.txt

Issue: {issue}

Fix: Serve /llms.txt as plain text (UTF-8) with HTTP 200. Start with an H1 title line, include a short summary paragraph, and link to the most important content sections for agents. Optionally link to /llms-full.txt for expanded content.

Skill: https://isitagentready.com/.well-known/agent-skills/llms-txt/SKILL.md

Docs: https://llmstxt.org/

Sub-skill: llms-txt/SKILL.md

llmsFullTxt

Goal: Publish expanded LLM content at /llms-full.txt

Issue: {issue}

Fix: Serve /llms-full.txt as plain text (UTF-8) with HTTP 200. Include structured, detailed content suitable for LLM ingestion covering key topics, APIs, and documentation. Link to it from your /llms.txt file.

Skill: https://isitagentready.com/.well-known/agent-skills/llms-full-txt/SKILL.md

Docs: https://llmstxt.org/

Sub-skill: llms-full-txt/SKILL.md

ap2

Goal: Declare AP2 support in your A2A Agent Card for agent payments

Issue: {issue}

Fix: Add AP2 extension to your A2A Agent Card at /.well-known/agent-card.json with your role (merchant, shopper, etc.) so agents can discover your payment capabilities.

Docs: https://ap2-protocol.org/

Frequently asked questions

What does the Agent Ready Cloudflare AI skill do?

Audit and improve website readiness for AI agents using the Cloudflare "Is It Agent Ready?" scanner (isitagentready.com). Covers scanning via API, interpreting results, generating implementation prompts, and fixing every check. Use when the user mentions "agent ready", "isitagentready", "AI agent scan", "agent readiness", "agent-ready score", "MCP server card", "agent skills index", "markdown for agents", "content signals", "web bot auth", "agent discovery", "RFC 9727", "RFC 8288", "RFC 9728", "SEP-1649", "WebMCP", "ARD", "ai-catalog", "x402", "UCP", "ACP", or wants to make a website discov...

Why use Agent Ready Cloudflare on TypingMind?

Because you install it once and use it with any model. Agent Ready Cloudflare is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Agent Ready Cloudflare in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/fabricioctelles/skills/tree/main/skills/agent-ready-cloudflare. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Agent Ready Cloudflare?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Agent Ready Cloudflare?

As many as you like. As long as a model supports skills, you can use Agent Ready Cloudflare with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Agent Ready Cloudflare AI skill free?

Yes. It is published on GitHub by fabricioctelles under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇