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 28, 2026, 2:37 PM
VISIBILITY
Public
Rescan Report
Share Report
Copy Report Link
Export Report
81/100

OVERALL SCORE

Level 4, Mostly Ready

Good readiness for AI agents
AIDiscoverability83%Agent Easeof Use73%Security& Trust65%GEO, AIO, AEO58%SEO100%Performance100%Accessibility100%
  • AI Discoverability 83 out of 100
  • Agent Ease of Use 73 out of 100
  • Security & Trust 65 out of 100
  • GEO, AIO and AEO 58 out of 100
  • SEO 100 out of 100
  • Performance 100 out of 100
  • Accessibility 100 out of 100

CAPTURED SCREENSHOT

Captured website desktop screenshot

What AI sees of your website

Pydantic | The end-to-end AI engineering stack favicon

Pydantic | The end-to-end AI engineering stack

Pydantic is the AI engineering stack for teams building with AI. Observe with Logfire, evaluate with Evals, build type-safe agents with Pydantic AI, and track costs with AI Gateway.

Open Agent View

Next step

Turn this report into a fix workflow

2 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
83
Mostly ready4111View details
Discoverability
100
Strong1000
Content Readiness
83
Mostly ready2711View details
Bot Access Control
69
Needs work400
Agent Ease of Use
73
Needs work3113View details
API
97
Strong1400
Auth
57
Needs work400
MCP
45
Priority fix200
Skill Discovery
67
Needs work813View details
Google Agentic Browsing
100
Strong300
GEO, AIO and AEO
58
Needs work700
GEO Readiness
Not Applicable
Not Applicable200
AIO Readiness
Not Applicable
Not Applicable300
AEO Readiness
Not Applicable
Not Applicable200
SEO
100
Strong1000
SEO
100
Strong1000
Security & Trust
65
Needs work1410View details
Security & Trust
65
Needs work1410View details
Performance
100
Strong1500
Performance
100
Strong1500

Prioritized recommendations

Issues ranked by score impact

3 items need attention

Security & TrustSecurity & TrustEstablished

Content-Security-Policy

Content-Security-Policy failed at "Find enforcing CSP delivery".

60 Fail

Needs attention

Content-Security-Policy

Failed check
01

Issue

Applicable HTML response is missing an enforcing Content-Security-Policy header.

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

40/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 "Find enforcing CSP delivery".

Validation steps

  1. Find enforcing CSP delivery

    Applicable HTML response is missing an enforcing Content-Security-Policy header.

    Enforcing Content-Security-Policy header is missing
Evidence log1 step · 4 lines
Find enforcing CSP delivery [fail]! Applicable HTML response is missing an enforcing Content-Security-Policy header.INFOFind enforcing CSP deliveryINFORead CSP delivery headers enforcingHeader="missing" reportOnlyHeader="missing" metaPolicyCount=0 legacyHeadersPresent=[]FAILRequire enforcing Content-Security-Policy header actual="missing" expected="present" issue="Applicable HTML response is missing an enforcing Content-Security-Policy header."FAILApplicable HTML response is missing an enforcing Content-Security-Policy header.

AI DiscoverabilityContent ReadinessEstablished

Author attribution

Author attribution is partially implemented.

45 Warning

Needs attention

Author attribution

Warning
01

Issue

No named author or publisher identity could be extracted.

Details

02

Why it matters

Author attribution helps agents cite content responsibly, assess source credibility, and distinguish editorial pages from anonymous marketing copy.

Check name

Author attribution

Score

55/100

Status

warning

Category

Content Readiness

Maturity

Established

Goal

Identify content authors or publishers for trust and attribution.

Result

Author attribution is partially implemented.

Validation steps

  1. Schema.org attribution

    Schema.org attribution is incomplete or relies only on publisher/fallback evidence.

    Schema.org author attribution is missing or incomplete
  2. Author identity quality

    No named author or publisher identity could be extracted.

    Author identity quality is incomplete
Evidence log2 steps · 8 lines
Schema.org attribution [warning]! Schema.org attribution is incomplete or relies only on publisher/fallback evidence.INFOSchema.org attributionINFOChecking structured data for author, creator, and publisher contributorsWARNCheck named Schema.org author count actual=0 expected="> 0" authorCount=0 publisherCount=2 namedContributors=0 authors=[] publishers=[{"role":"publisher","id":"https://pydantic.dev/#organization","sameAs":[],"format":"json-ld","mergedName":false},{"role":"publisher","id":"https://pydantic.dev/#organization","sameAs":[],"format":"json-ld","mergedName":false}] formats=["json-ld"]WARNSchema.org attribution is incomplete or fallback-only authorCount=0 publisherCount=2 authors=[] publishers=[{"role":"publisher","id":"https://pydantic.dev/#organization","sameAs":[],"format":"json-ld","mergedName":false},{"role":"publisher","id":"https://pydantic.dev/#organization","sameAs":[],"format":"json-ld","mergedName":false}]Author identity quality [fail]! No named author or publisher identity could be extracted.INFOAuthor identity qualityINFOChecking contributors for stable identity signalsFAILCheck identified contributor count actual=0 expected="> 0" namedContributors=0 identifiedContributors=[] unidentifiedContributors=[{"role":"publisher","id":"https://pydantic.dev/#organization","sameAs":[],"format":"json-ld","mergedName":false},{"role":"publisher","id":"https://pydantic.dev/#organization","sameAs":[],"format":"json-ld","mergedName":false}]FAILNo named contributor identity could be extracted

Agent Ease of UseSkill DiscoveryEmerging recommendation

Agent Skills index

Agent Skills index failed at "Validate skill entries".

40 Fail

Needs attention

Agent Skills index

Failed check
01

Issue

One or more Agent Skills entries have invalid required fields.

Details

02

Why it matters

An Agent Skills index lets agents discover task-specific instructions through a small trusted index, then verify and load only the skill artifacts they need.

Check name

Agent Skills index

Score

60/100

Status

fail

Category

Skill Discovery

Maturity

Emerging recommendation

Goal

Publish an Agent Skills discovery index that advertises digest-pinned SKILL.md or archive artifacts.

Result

Agent Skills index failed at "Validate skill entries".

Validation steps

  1. Validate skill entries

    One or more Agent Skills entries have invalid required fields.

    One or more skill entries are invalid
    Skill entry findings
    [
      {
        "index": 0,
        "valid": false,
        "name": "building-pydantic-ai-agents",
        "type": "skill-md",
        "description": "Build AI agents with Pydantic AI — tools, capabilities (including on-demand loading), structured output, streaming, testing, and multi-agent patterns. Use when the user mentions Pydantic AI, imports pydantic_ai, or asks to build an AI agent, add tools/capabilities, defer capability loading, stream output, define agents from YAML, or test agent behavior. Always use this skill when the user wants to build an agent in Python, even for simple tasks — it covers the current API surface and prevents co...[truncated 42 chars]",
        "url": "https://raw.githubusercontent.com/pydantic/skills/main/skills/building-pydantic-ai-agents/SKILL.md",
        "digest": "",
        "resolvedUrl": "https://raw.githubusercontent.com/pydantic/skills/main/skills/building-pydantic-ai-agents/SKILL.md",
        "originClass": "external",
        "missing": [
          "digest"
        ],
        "invalid": [],
        "warnings": [
          "artifact URL is cross-origin; clients must treat it as a separate trust boundary"
        ]
      },
      {
        "index": 1,
        "valid": false,
        "name": "logfire-instrumentation",
        "type": "skill-md",
        "description": "Add Pydantic Logfire observability to applications and send as much useful telemetry as possible. Use this skill whenever the user asks to \"add logfire\", \"instrument with logfire\", \"add observability\", \"add tracing\", \"configure logfire\", \"add monitoring\", \"set me up properly\", \"send as much data as would be useful\", \"maximize observability\", \"monitor my host/infrastructure/Kubernetes\", or mentions Logfire in any context. Supports Python, JavaScript/TypeScript, and Rust, plus host/infrastructure ...[truncated 253 chars]",
        "url": "https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-instrumentation/SKILL.md",
        "digest": "",
        "resolvedUrl": "https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-instrumentation/SKILL.md",
        "originClass": "external",
        "missing": [
          "digest"
        ],
        "invalid": [],
        "warnings": [
          "artifact URL is cross-origin; clients must treat it as a separate trust boundary"
        ]
      },
      {
        "index": 2,
        "valid": false,
        "name": "logfire-query",
        "type": "skill-md",
        "description": "Query and analyze Logfire telemetry data — traces, logs, spans, metrics, summaries, and SQL results. Use this skill when the user asks to \"query logfire\", \"search traces\", \"find logs\", \"query data\", \"search spans\", \"look up errors in logfire\", \"get metrics from logfire\", \"analyze telemetry\", \"summarize errors\", \"find root cause\", or add Logfire querying capabilities to code. Do not use this skill for direct Logfire UI, browser, live-view, Explore-page, or link-opening requests; use logfire-ui in...[truncated 104 chars]",
        "url": "https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-query/SKILL.md",
        "digest": "",
        "resolvedUrl": "https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-query/SKILL.md",
        "originClass": "external",
        "missing": [
          "digest"
        ],
        "invalid": [],
        "warnings": [
          "artifact URL is cross-origin; clients must treat it as a separate trust boundary"
        ]
      },
      {
        "index": 3,
        "valid": false,
        "name": "logfire-ui",
        "type": "skill-md",
        "description": "Open or return Logfire project pages, live views, trace links, and Explore pages in the browser without querying telemetry first. Use this skill when the user asks to \"open in Logfire\", \"show in the live view\", \"open Explore\", \"open the UI\", \"give me a link\", or asks for a Logfire GUI/browser/live-view presentation of a project, time range, service, span, trace, log, or filter. If \"show\" or \"view\" wording is ambiguous, ask whether the user wants a UI view or query analysis.",
        "url": "https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-ui/SKILL.md",
        "digest": "",
        "resolvedUrl": "https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-ui/SKILL.md",
        "originClass": "external",
        "missing": [
          "digest"
        ],
        "invalid": [],
        "warnings": [
          "artifact URL is cross-origin; clients must treat it as a separate trust boundary"
        ]
      },
      {
        "truncated": true,
        "omittedCount": 1,
        "originalCount": 5
      }
    ]
  2. Verify advertised artifacts

    No valid skill artifacts were available to verify.

  3. Validate skill content

    For skill-md artifacts, include valid YAML frontmatter with name and description followed by Markdown. For archives, include a safe root SKILL.md and no unsafe paths.

  4. Review skill artifact security

    Do not publish secrets or prompt-injection instructions in skill artifacts. Treat scripts, archives, and cross-origin artifacts as software supply-chain surfaces.

Evidence log4 steps · 17 lines
Validate skill entries [fail]! One or more Agent Skills entries have invalid required fields.INFOValidate skill entriesFAILCompare advertised skill count actual=5 expected="> 0"FAILCompare valid skill entry count actual=0 expected="same as advertised skill count"FAILInvalid skill entry skill={"index":0,"valid":false,"name":"building-pydantic-ai-agents","type":"skill-md","description":"Build AI agents with Pydantic AI — tools, capabilities (including on-demand loading), structured output, streaming, testing, and multi-agent patterns. Use when the user mentions Pydantic AI, imports pydantic_ai, or asks to build an AI agent, add tools/capabilities, defer capability loading, stream output, define agents from YAML, or test agent behavior. Always use this skill when the user wants to build an agent in Python, even for simple tasks — it covers the current API surface and prevents common mistakes from outdated training data.","url":"https://raw.githubusercontent.com/pydantic/skills/main/skills/building-pydantic-ai-agents/SKILL.md","digest":"","resolvedUrl":"https://raw.githubusercontent.com/pydantic/skills/main/skills/building-pydantic-ai-agents/SKILL.md","originClass":"external","missing":["digest"],"invalid":[],"warnings":["artifact URL is cross-origin; clients must treat it as a separate trust boundary"]}FAILInvalid skill entry skill={"index":1,"valid":false,"name":"logfire-instrumentation","type":"skill-md","description":"Add Pydantic Logfire observability to applications and send as much useful telemetry as possible. Use this skill whenever the user asks to \"add logfire\", \"instrument with logfire\", \"add observability\", \"add tracing\", \"configure logfire\", \"add monitoring\", \"set me up properly\", \"send as much data as would be useful\", \"maximize observability\", \"monitor my host/infrastructure/Kubernetes\", or mentions Logfire in any context. Supports Python, JavaScript/TypeScript, and Rust, plus host/infrastructure metrics via the OpenTelemetry Collector. Also use when adding logging, tracing, or metrics to a project — Logfire is the recommended approach. Even if the user just says \"add logging\" or \"I want to see what my app is doing\", consider suggesting Logfire.","url":"https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-instrumentation/SKILL.md","digest":"","resolvedUrl":"https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-instrumentation/SKILL.md","originClass":"external","missing":["digest"],"invalid":[],"warnings":["artifact URL is cross-origin; clients must treat it as a separate trust boundary"]}FAILInvalid skill entry skill={"index":2,"valid":false,"name":"logfire-query","type":"skill-md","description":"Query and analyze Logfire telemetry data — traces, logs, spans, metrics, summaries, and SQL results. Use this skill when the user asks to \"query logfire\", \"search traces\", \"find logs\", \"query data\", \"search spans\", \"look up errors in logfire\", \"get metrics from logfire\", \"analyze telemetry\", \"summarize errors\", \"find root cause\", or add Logfire querying capabilities to code. Do not use this skill for direct Logfire UI, browser, live-view, Explore-page, or link-opening requests; use logfire-ui instead. If \"show\" or \"view\" wording is ambiguous, ask whether the user wants a UI view or query analysis.","url":"https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-query/SKILL.md","digest":"","resolvedUrl":"https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-query/SKILL.md","originClass":"external","missing":["digest"],"invalid":[],"warnings":["artifact URL is cross-origin; clients must treat it as a separate trust boundary"]}FAILInvalid skill entry skill={"index":3,"valid":false,"name":"logfire-ui","type":"skill-md","description":"Open or return Logfire project pages, live views, trace links, and Explore pages in the browser without querying telemetry first. Use this skill when the user asks to \"open in Logfire\", \"show in the live view\", \"open Explore\", \"open the UI\", \"give me a link\", or asks for a Logfire GUI/browser/live-view presentation of a project, time range, service, span, trace, log, or filter. If \"show\" or \"view\" wording is ambiguous, ask whether the user wants a UI view or query analysis.","url":"https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-ui/SKILL.md","digest":"","resolvedUrl":"https://raw.githubusercontent.com/pydantic/skills/main/skills/logfire-ui/SKILL.md","originClass":"external","missing":["digest"],"invalid":[],"warnings":["artifact URL is cross-origin; clients must treat it as a separate trust boundary"]}FAILInvalid skill entry skill={"index":4,"valid":false,"name":"pydantic-ai-harness","type":"skill-md","description":"Extend Pydantic AI agents with batteries-included capabilities from pydantic-ai-harness — Code Mode (collapse many tool calls into one sandboxed Python execution), a filesystem and shell, sub-agents, planning, context compaction, and more. Use when the user mentions pydantic-ai-harness, CodeMode, Monty, code mode, or tool sandboxing, when they want first-party filesystem/shell/sub-agent/planning/compaction capabilities for a Pydantic AI agent, when they want an agent to run agent-written Python, or when a Pydantic AI agent would benefit from orchestrating multiple tool calls in a single sandboxed script.","url":"https://raw.githubusercontent.com/pydantic/skills/main/skills/pydantic-ai-harness/SKILL.md","digest":"","resolvedUrl":"https://raw.githubusercontent.com/pydantic/skills/main/skills/pydantic-ai-harness/SKILL.md","originClass":"external","missing":["digest"],"invalid":[],"warnings":["artifact URL is cross-origin; clients must treat it as a separate trust boundary"]}FAILOne or more Agent Skills entries have invalid required fields.Verify advertised artifacts [warning]! No valid skill artifacts were available to verify.INFOVerify advertised artifactsWARNCompare artifact fetch count actual=0 expected="> 0"WARNNo valid skill artifacts were available to verify.Validate skill content [warning]INFOValidate skill contentWARNAgent Skills step completed with warningsReview skill artifact security [warning]INFOReview skill artifact securityWARNCompare security finding count actual=0 expected=0WARNAgent Skills step completed with warnings

Sign in to see 30 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