agenticweb.wiki

podscan.fm agentic web readiness

A Manifest validity: 50% (3/6 valid, 9 errors, 22 warnings) · Surface score 55 (coverage 40 + breadth 15 + conformance 0). 9 standards observed across 4 of 9 steps; 6 manifests present (+ robots.txt), 9 errors, 22 warnings. Checked 2026-10-25 18:31:49 UTC. This grades the agent-facing files published at podscan.fm, not the organisation's products.

Badge for a README: ![agentic web grade](https://agenticweb.wiki/badge/podscan.fm.svg) · JSON · Markdown · Re-check now

Coverage by step

01 DiscoverRFC 972702 Identifynothing observed03 PermitContent Signals Policy, AI Crawler User-Agent Tokens in robots.txt, OAuth Protected Resource and Authorization Server Metadata (as used for agent authorization)04 Readllms.txt, Markdown for Agents05 ActAgent Skills06 Coordinatenothing observed07 Paynothing observed08 Presentnothing observed

Manifests

ManifestResultFindings
Agentic Resource Discovery
/.well-known/ard.json
absent HTTP 404
AI Catalog well-known file
/.well-known/ai-catalog.json
absent HTTP 404
MCP Server Cards (SEP-2127)
/.well-known/mcp/server-card.json
errors
  • name missing
  • version missing
  • description missing
  • Content-Type is application/json; SEP-2127 says serve application/mcp-server-card+json
  • pre-final card shape (url/transport/tools); the final SEP-2127 card uses name, version, description and remotes[]
  • $schema is not https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json
  • remotes missing: a card with no remotes gives clients nothing to connect to
  • no Access-Control-Allow-Origin: * (required for browser clients)
  • no ETag
View valid /mcp/server-card template for podscan.fm
{
  "$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
  "name": "fm.podscan/podscan",
  "title": "Podscan",
  "version": "1.0.0",
  "description": "Podscan and what it offers to agents",
  "websiteUrl": "https://podscan.fm/",
  "icons": [
    {
      "src": "https://podscan.fm/icon.png",
      "mimeType": "image/png",
      "sizes": [
        "180x180"
      ]
    }
  ],
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://podscan.fm/mcp",
      "supportedProtocolVersions": [
        "2025-11-25",
        "2025-06-18",
        "2025-03-26"
      ]
    }
  ]
}
Agent2Agent Protocol
/.well-known/agent.json
errors
  • name missing
  • version missing
  • url missing (or supportedInterfaces in the 1.0 shape)
  • skills missing or not an array
  • description missing (required in A2A 1.0)
  • supportedInterfaces missing; A2A 1.0 cards declare interfaces there (url, protocolBinding, protocolVersion) and the top-level url is the 0.3 shape
  • defaultInputModes missing
  • defaultOutputModes missing
  • protocolVersion missing; clients cannot tell which A2A revision the card follows
  • provider missing (organization, url)
  • served at /.well-known/agent.json; A2A 0.3+ reads /.well-known/agent-card.json
View valid /.well-known/agent-card.json template for podscan.fm
{
  "name": "Podscan",
  "description": "Podscan and what it offers to agents",
  "version": "1.0.0",
  "provider": {
    "organization": "Podscan",
    "url": "https://podscan.fm/"
  },
  "documentationUrl": "https://podscan.fm/AGENTS.md",
  "supportedInterfaces": [
    {
      "url": "https://podscan.fm/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "url": "https://podscan.fm/a2a",
  "protocolVersion": "1.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "answer",
      "name": "Answer questions",
      "description": "Answer questions about Podscan.",
      "tags": [
        "qa"
      ],
      "examples": [
        "What does Podscan do?"
      ]
    }
  ],
  "securitySchemes": {},
  "securityRequirements": []
}
llms.txt
/llms.txt
valid
AGENTS.md
/AGENTS.md
absent HTTP 404
Agent Skills
/.well-known/agent-skills/index.json
valid
  • skills[0].digest missing
  • skills[1].digest missing
  • skills[2].digest missing
  • skills[3].digest missing
  • skills[4].digest missing
  • skills[5].digest missing
  • skills[6].digest missing
api-catalog: A Well-Known URI and Link Relation to Help Discovery of APIs
/.well-known/api-catalog
valid
AI Crawler User-Agent Tokens in robots.txt
/robots.txt
disallow-only
  • robots.txt names AI crawlers (GPTBot, ClaudeBot, Claude-Web, anthropic-ai, Google-Extended) only to Disallow: / — blocks AI agents rather than enabling them
  • no Agentmap: line (optional convention pointing agents at /.well-known/ard.json)
security.txt (RFC 9116)
/.well-known/security.txt
absent HTTP 404
auth.md
/auth.md
errors
  • none of the auth.md mechanism names found (identity_assertion, service_auth, anonymous)
View valid /auth.md template for podscan.fm
# Authenticating to Podscan as an agent

This file is the agent-auth skill for podscan.fm. It is linked from the authorization server's metadata (`agent_auth.skill`).

## Discovery
1. Call the API. A `401` carries `WWW-Authenticate: Bearer resource_metadata="https://podscan.fm/.well-known/oauth-protected-resource"`.
2. Read `/.well-known/oauth-protected-resource` (RFC 9728) for `resource` and `authorization_servers`.
3. Read the authorization server's `/.well-known/oauth-authorization-server` (RFC 8414); the `agent_auth` block lists the endpoints below.

## Methods we accept
- `identity_assertion`: you hold a session for a user and can mint an ID-JAG with `aud` = our `resource`. Preferred.
- `service_auth`: you only know the user's email. A claim ceremony (6-digit code) is required.
- `anonymous`: no user. Immediate limited scopes; the user can claim later.

## Register
POST `agent_auth.identity_endpoint` with `{"type": "<method>", ...}`; exchange the returned `identity_assertion` at the token endpoint for an access token.

## Scopes
- `api.read`: read
- `api.write`: write (claimed registrations only)

## Rules
- Show the user our name and the scopes before asserting their identity.
- Keep `claim_token` in memory only.
- Revocation events arrive as Security Event Tokens at your registered events endpoint.
Open Knowledge Format
/okf/index.md
absent HTTP 404

What an agent can call

Standards observed

Cheapest next steps

  1. Agentic Resource Discovery: a catalog at /.well-known/ard.json lets agents discover your APIs, MCP servers and data in one fetch (emerging spec — publish only if you run the underlying endpoints; generate via MCP template({"id": "ard", "domain": "podscan.fm"}))
  2. AGENTS.md: instructions for coding agents working on or with the site
    Generate starter /AGENTS.md for podscan.fm
    # Podscan for agents
    
    Podscan and what it offers to agents
    
    ## Read the data, not the HTML
    - Index: https://podscan.fm/llms.txt
    - API description: https://podscan.fm/openapi.json
    - Discovery catalog: https://podscan.fm/.well-known/ard.json
    
    ## Calling
    - MCP server (Streamable HTTP): https://podscan.fm/mcp
    - Rate limits and authentication: describe them here
    
    ## Conventions
    - How to cite or attribute content
    - What not to do (no scraping of /account/, no automated sign-ups, etc.)
    
    Contact: security@podscan.fm
    
  3. security.txt (RFC 9116): RFC 9116 contact and expiry, read by agents and people
    Generate starter /.well-known/security.txt for podscan.fm
    Contact: mailto:security@podscan.fm
    Expires: 2027-09-20T18:31:49Z
    Canonical: https://podscan.fm/.well-known/security.txt
    Preferred-Languages: en
    Policy: https://podscan.fm/security-policy
    

Agent pre-flight & practical readiness

Preferred mode: mcp (fallback openapi). Call the MCP endpoint at https://podscan.fm/mcp first. Do not scrape the HTML when a tool can answer.

Fetch: POST https://podscan.fm/mcp POST a JSON-RPC tools/list, or server/discover on the 2026-07-28 revision, before reading HTML.

Practical readability: exa_parsable yes, markdown negotiation yes, render markdown_native, HTML quality high, first content at byte 0, HTML-to-llms.txt token ratio 12.158×.

AI crawler posture: search_allowed_training_blocked · Assistant access: OpenAI partial, Anthropic partial, Google blocked, Perplexity partial, Exa partial.

Readiness subscores: reach 20/20, readability 30/30, capabilities 33/35, conformance 0/15, total 83/100, grade A+.

How the grade is made

+10 per lifecycle step with a standard observed, counting manifests that validate or that the probe rule for the standard recognises (a valid MCP server card counts for MCP; max 90); +3 per observed standard beyond the first two (max 15); conformance +15 (+10 with one manifest) minus 5 per agent-facing manifest with errors, never below 0 (security.txt is reported, not scored). Lifecycle grade: A+ >= 60, A >= 45, B >= 30, C >= 20, D >= 10. Strict 100-point composite (subscores.total_100 / subscores.grade_100): reach_and_policy (20) + readability (30) + capabilities (35) + conformance (15), where A+ >= 80, A >= 65, B >= 45, C >= 28, D >= 15. Errors are specification violations; warnings are best-practice gaps. Only public paths are fetched, without credentials, so standards that need a login (skipped in the probe) are not counted either way. The same report is the validate_manifest tool on the MCP server.

JSON · Markdown · probe rules