CanAgentUse tools

UCP Suite

Validate Universal Commerce Protocol discovery, then test product search, carts, checkout links, and merchant handoff flows.

MCP Playground

Connect to remote MCP servers, inspect tools and resources, test prompts, auth, headers, notifications, and JSON-RPC responses.

A2A Playground

Inspect Agent Cards, validate advertised endpoints, and prepare safe requests for agent-to-agent workflows.

Agent Website Viewer

Enter a public URL and see the roles, names, landmarks, controls, and blockers that shape how AI agents understand the page.

SCANNED
Jul 14, 2026, 10:41 PM
VISIBILITY
Public
Rescan Report
Share Report
Copy Report Link
Export Report
60/100

OVERALL SCORE

Level 3, Bot-Aware

Moderate readiness for AI agents
AIDiscoverability64%Agent Easeof Use60%Security& Trust67%GEO, AIO, AEO49%SEO100%Performance55%Accessibility60%
  • AI Discoverability 64 out of 100
  • Agent Ease of Use 60 out of 100
  • Security & Trust 67 out of 100
  • GEO, AIO and AEO 49 out of 100
  • SEO 100 out of 100
  • Performance 55 out of 100
  • Accessibility 60 out of 100

CAPTURED SCREENSHOT

Captured website desktop screenshot

What AI sees of your website

Data Connectors | John McLaughlin | Substack favicon

Data Connectors | John McLaughlin | Substack

Since 1999, Data Connectors has been facilitating relationships between senior executives who are looking for solutions and the vendors who provide them. Our community encompasses more than 650,000 professionals. Click to read Data Connect...

Open Agent View

Next step

Turn this report into a fix workflow

3 failed checks are ready to move into MCP or CLI remediation. Generate a repair prompt, connect the scanner to your coding agent, or open the integration docs before your next rescan.

Fix with MCP / CLI
Detailed report scores grouped by capability area
MetricScoreStatusPassedFailedWarningEvidence
AI Discoverability
64
Needs work2531View details
Discoverability
67
Needs work800
Content Readiness
46
Priority fix1231View details
Bot Access Control
75
Mostly ready500
Agent Ease of Use
60
Needs work511View details
Auth
51
Needs work200
Skill Discovery
53
Needs work111View details
Google Agentic Browsing
100
Strong200
GEO, AIO and AEO
49
Priority fix400
GEO Readiness
Not Applicable
Not Applicable100
AIO Readiness
Not Applicable
Not Applicable200
AEO Readiness
Not Applicable
Not Applicable100
SEO
100
Strong1000
SEO
100
Strong1000
Security & Trust
67
Needs work1522View details
Security & Trust
67
Needs work1522View details
Performance
55
Needs work1100
Performance
55
Needs work1100

Prioritized recommendations

Issues ranked by score impact

3 items need attention

AI DiscoverabilityContent ReadinessEstablished

Content freshness signals

Content freshness signals is missing or incomplete.

100 Fail

Needs attention

Content freshness signals

Failed check
01

Issue

Content freshness signals are incomplete: missing any valid freshness date in Last-Modified, Schema.org, Open Graph, Dublin Core, generic meta, or sitemap lastmod.

Details

02

Why it matters

Freshness signals help agents, crawlers, and search systems decide whether content is current enough to cite, summarize, cache, or compare against newer sources.

Check name

Content freshness signals

Score

0/100

Status

fail

Category

Content Readiness

Maturity

Established

Goal

Expose modified and published dates for freshness-aware retrieval, citation, and ranking.

Result

Content freshness signals is missing or incomplete.

Validation steps

  1. Validate Last-Modified header

    No valid Last-Modified HTTP header was found.

    Last-Modified freshness signal is missing or invalid
  2. Validate structured freshness dates

    No Schema.org freshness dates were found.

    Structured freshness dates are missing or invalid
  3. Validate metadata freshness dates

    No Open Graph, Dublin Core, or generic meta freshness date was found.

    Metadata freshness dates are missing or invalid
  4. Corroborate with sitemap lastmod

    Add a sitemap entry with a valid lastmod for the canonical page URL when sitemap corroboration is useful.

    Sitemap lastmod corroboration is missing
Evidence log4 steps · 16 lines
Validate Last-Modified header [fail]! No valid Last-Modified HTTP header was found.INFOValidate Last-Modified headerINFOReading Last-Modified response headerFAILCheck Last-Modified header is present and parseable actual="missing" expected="valid" alternateDates=[]FAILLast-Modified header is missing or invalidValidate structured freshness dates [fail]! No Schema.org freshness dates were found.INFOValidate structured freshness datesINFOCollecting Schema.org freshness dates from JSON-LD, Microdata, and RDFaFAILCheck structured freshness date count actual=0 expected="> 0" invalidDateCount=0 formats={} alternateDates=[]FAILNo structured freshness dates foundValidate metadata freshness dates [fail]! No Open Graph, Dublin Core, or generic meta freshness date was found.INFOValidate metadata freshness datesINFOCollecting Open Graph, Dublin Core, and generic meta freshness datesFAILCheck metadata freshness date count actual=0 expected="> 0" metaDateCount=0 invalidDateCount=0 alternateDates=[]FAILNo metadata freshness dates foundCorroborate with sitemap lastmod [warning]INFOCorroborate with sitemap lastmodINFODiscovering sitemap candidates and matching the scanned page URL candidateCount=2 attempts=2WARNCheck matching sitemap lastmod actual="no match" expected="valid match when available" robotsStatusCode=200WARNNo matching sitemap lastmod found after sitemap attempts attempts=2

Security & TrustSecurity & TrustEstablished

Content-Security-Policy

Content-Security-Policy failed at "Evaluate fetch baseline".

50 Fail

Needs attention

Content-Security-Policy

Failed check
01

Issue

CSP does not define default-src; several fetch directives may have no restrictive fallback.

Details

02

Why it matters

Content Security Policy reduces the impact of injection bugs by limiting where scripts, styles, frames, forms, and other browser resources can load or execute.

Check name

Content-Security-Policy

Score

50/100

Status

fail

Category

Security & Trust

Maturity

Established

Goal

Constrain browser resource loading and script execution with an enforcing Content-Security-Policy header.

Result

Content-Security-Policy failed at "Evaluate fetch baseline".

Validation steps

  1. Evaluate fetch baseline

    CSP does not define default-src; several fetch directives may have no restrictive fallback.

    CSP fetch baseline is too broad or missing
  2. Evaluate script execution

    No script-src or default-src directive constrains script execution.

    CSP script execution policy is unsafe
  3. Review hardening directives

    CSP is missing recommended hardening directives: object-src, base-uri, form-action.

    CSP hardening directives are missing or weak
  4. Review CSP reporting

    CSP does not define a reporting endpoint.

    CSP reporting is missing or incomplete
Evidence log4 steps · 16 lines
Evaluate fetch baseline [fail]! CSP does not define default-src; several fetch directives may have no restrictive fallback.INFOEvaluate fetch baselineINFOEvaluate resource loading fallback explicitFetchDirectives=[]FAILCompare fetch baseline actual="0 explicit fetch directives" expected="restricted default-src or broad explicit fetch coverage" issue="CSP does not define default-src; several fetch directives may have no restrictive fallback."FAILCSP does not define default-src; several fetch directives may have no restrictive fallback.Evaluate script execution [fail]! No script-src or default-src directive constrains script execution.INFOEvaluate script executionINFOInspect effective script directive FAILCompare script execution posture actual={"hasNonce":false,"hasHash":false,"hasStrictDynamic":false,"hasUnsafeInline":false,"hasUnsafeEval":false,"hasWildcardHost":false,"hasBroadScheme":false,"dangerousSchemes":[]} expected="constrained script sources without unsafe execution allowances" issue="No script-src or default-src directive constrains script execution."FAILNo script-src or default-src directive constrains script execution.Review hardening directives [warning]! CSP is missing recommended hardening directives: object-src, base-uri, form-action.INFOReview hardening directivesINFOInspect CSP hardening directives frameAncestors=["'self'","https://*.substack.com","https://substack.com"] formCount=2WARNCompare recommended hardening coverage actual=["object-src","base-uri","form-action"] expected="no missing object-src/base-uri/form-action requirements" issue="CSP is missing recommended hardening directives: object-src, base-uri, form-action."WARNCSP is missing recommended hardening directives: object-src, base-uri, form-action.Review CSP reporting [warning]! CSP does not define a reporting endpoint.INFOReview CSP reportingINFOInspect CSP reporting directives reportOnlyHeaderPresent=false reportOnlyDirectives=[]WARNCompare violation reporting configuration actual="no reporting endpoint" expected="report-to or report-uri present" issue="CSP does not define a reporting endpoint."WARNCSP does not define a reporting endpoint.

Agent Ease of UseSkill DiscoveryEmerging recommendation

DNS-AID Agent Discovery

DNS-AID Agent Discovery failed at "Validate HTTPS/SVCB shape".

39 Fail

Needs attention

DNS-AID Agent Discovery

Failed check
01

Issue

One or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.

Details

02

Why it matters

DNS-AID lets agents discover index, A2A, and other agent entrypoints before fetching HTTP metadata. HTTPS/SVCB records provide the service-binding substrate, while DNSSEC can authenticate the discovery answer when available.

Check name

DNS-AID Agent Discovery

Score

61/100

Status

fail

Category

Skill Discovery

Maturity

Emerging recommendation

Goal

Publish DNS-AID HTTPS/SVCB records under _agents for DNS-based agent entrypoint discovery.

Result

DNS-AID Agent Discovery failed at "Validate HTTPS/SVCB shape".

Validation steps

  1. Validate HTTPS/SVCB shape

    One or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.

    DNS-AID HTTPS/SVCB records are malformed
    Malformed record issues
    [
      {
        "ownerName": "_index._agents.dataconnectors.substack.com",
        "rrtype": "HTTPS",
        "ttl": 60,
        "mode": "unknown",
        "targetName": "33",
        "params": [
          {
            "key": "00",
            "value": "present"
          },
          {
            "key": "01",
            "value": "present"
          },
          {
            "key": "00",
            "value": "present"
          },
          {
            "key": "00",
            "value": "present"
          },
          {
            "truncated": true,
            "omittedCount": 29,
            "originalCount": 33
          }
        ],
        "mandatory": [],
        "alpn": [],
        "endpointIssue": "missing endpoint",
        "unknownParams": [
          "00",
          "01",
          "00",
          "00",
          {
            "truncated": true,
            "omittedCount": 29,
            "originalCount": 33
          }
        ],
        "parseWarnings": [
          "SvcPriority is missing or not numeric."
        ],
        "source": "cloudflare-doh-json",
        "raw": "\\# 33 00 01 00 00 01 00 06 02 68 33 02 68 32 00 06 00 10 26 06 47 00 97 62 fa 98 a7 76 00 00 5d 48 c0 23"
      },
      {
        "ownerName": "_a2a._agents.dataconnectors.substack.com",
        "rrtype": "HTTPS",
        "ttl": 60,
        "mode": "unknown",
        "targetName": "33",
        "params": [
          {
            "key": "00",
            "value": "present"
          },
          {
            "key": "01",
            "value": "present"
          },
          {
            "key": "00",
            "value": "present"
          },
          {
            "key": "00",
            "value": "present"
          },
          {
            "truncated": true,
            "omittedCount": 29,
            "originalCount": 33
          }
        ],
        "mandatory": [],
        "alpn": [],
        "endpointIssue": "missing endpoint",
        "unknownParams": [
          "00",
          "01",
          "00",
          "00",
          {
            "truncated": true,
            "omittedCount": 29,
            "originalCount": 33
          }
        ],
        "parseWarnings": [
          "SvcPriority is missing or not numeric."
        ],
        "source": "cloudflare-doh-json",
        "raw": "\\# 33 00 01 00 00 01 00 06 02 68 33 02 68 32 00 06 00 10 26 06 47 00 83 b2 fa 98 a7 76 00 00 5d 48 c0 23"
      }
    ]
  2. Check DNSSEC authentication evidence

    DNSSEC authentication evidence was not visible for the DNS-AID labels or hostname.

    DNSSEC authentication evidence is missing
Evidence log2 steps · 18 lines
Validate HTTPS/SVCB shape [fail]! One or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.INFOValidate HTTPS/SVCB shapeFAILCompare parsed DNS-AID record count actual=2 expected="> 0"FAILCompare ServiceMode record count actual=0 expected="> 0"FAILDNS-AID record has parse/shape warnings ownerName="_index._agents.dataconnectors.substack.com" rrtype="HTTPS" mode="unknown" warnings=["SvcPriority is missing or not numeric."]FAILDNS-AID record has parse/shape warnings ownerName="_a2a._agents.dataconnectors.substack.com" rrtype="HTTPS" mode="unknown" warnings=["SvcPriority is missing or not numeric."]FAILOne or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.Check DNSSEC authentication evidence [warning]! DNSSEC authentication evidence was not visible for the DNS-AID labels or hostname.INFOCheck DNSSEC authentication evidenceWARNCompare DNSSEC authenticated-data flag actual=false expected=trueWARNCompare visible DNSSEC material actual=false expected=trueWARNResolver did not confirm authenticated DNSSEC data name="_index._agents.dataconnectors.substack.com" rrtype="HTTPS" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_index._agents.dataconnectors.substack.com" rrtype="SVCB" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_a2a._agents.dataconnectors.substack.com" rrtype="HTTPS" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_a2a._agents.dataconnectors.substack.com" rrtype="SVCB" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_index._agents.dataconnectors.substack.com" rrtype="DNSKEY" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_a2a._agents.dataconnectors.substack.com" rrtype="DNSKEY" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="dataconnectors.substack.com" rrtype="DNSKEY" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="substack.com" rrtype="DNSKEY" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNDNSSEC authentication evidence was not visible for the DNS-AID labels or hostname.

Sign in to see 38 other issues and the full report

Create a free account to unlock every issue, evidence details, exports, and higher free limits.

Fix with MCP or CLI

Use this report as the handoff into remediation. Generate a coding-agent prompt with the failing checks attached, or jump to the MCP and CLI setup docs before your next rescan.

Fix with MCP / CLI

Score history