{
  "name": "Kenovar",
  "description": "The machine-readiness analyst: audits how machines discover, understand, trust, select and invoke a website or agent, across SEO, AEO, GEO and agent readiness. Ask Kenovar, or call a tool.",
  "url": "https://kenovar.com/api/run",
  "version": "1.0.0",
  "protocolVersion": "0.3.0",
  "preferredTransport": "HTTP+JSON",
  "provider": {
    "organization": "Heliacon LLC",
    "url": "https://heliacon.com"
  },
  "documentationUrl": "https://kenovar.com/learn",
  "iconUrl": "https://kenovar.com/favicon.svg",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "securitySchemes": {
    "projectKey": {
      "type": "apiKey",
      "in": "header",
      "name": "X-Kenovar-Key",
      "description": "A verified-site project key (tk_...) for site-wide and twin tools. Public per-URL tools need no auth."
    }
  },
  "skills": [
    {
      "id": "audit",
      "name": "Site & page audit",
      "description": "Audit a URL or whole site for SEO, AEO and GEO - a composite page-readiness score with a fix for each issue, stack-ranked by page.",
      "tags": [
        "seo",
        "aeo",
        "geo",
        "audit",
        "health"
      ],
      "examples": [
        "audit https://example.com",
        "score every page of my site"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "answerability",
      "name": "Answerability",
      "description": "Score how retrievable a page is for the questions people ask an AI answer engine, passage by passage.",
      "tags": [
        "aeo",
        "answerability",
        "retrieval",
        "rag"
      ],
      "examples": [
        "is my pricing page answerable?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "link_graph",
      "name": "Link graph & PageRank",
      "description": "Compute the internal link graph and PageRank; find orphans, redirects, mis-canonicals and the exact links to add.",
      "tags": [
        "internal-linking",
        "pagerank",
        "crawl",
        "orphans"
      ],
      "examples": [
        "show my internal link graph",
        "which pages are buried?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "intent_gap",
      "name": "Intent gap",
      "description": "What a bot reads a site as being about vs what you want people to find, plus queries to optimise for ranked by opportunity.",
      "tags": [
        "content",
        "keywords",
        "intent",
        "geo"
      ],
      "examples": [
        "what should I write next?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "edge_seo",
      "name": "Response headers",
      "description": "Audit response headers and the CDN edge: cache, compression, security headers, header-level canonical and X-Robots-Tag.",
      "tags": [
        "edge",
        "headers",
        "cdn",
        "performance"
      ],
      "examples": [
        "audit my edge/CDN config"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "schema_check",
      "name": "Schema check",
      "description": "Validate schema.org / JSON-LD structured data against the fields engines need for rich results.",
      "tags": [
        "schema",
        "structured-data",
        "json-ld"
      ],
      "examples": [
        "validate my Product schema"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "sitemap",
      "name": "Sitemap & feeds",
      "description": "Audit the XML sitemap and other feeds: declared in robots, valid, lastmod coverage, size limits.",
      "tags": [
        "sitemap",
        "feeds",
        "crawl"
      ],
      "examples": [
        "audit my sitemap"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "agent_readiness",
      "name": "Agent readiness",
      "description": "Audit an agent's machine readiness: is its A2A Agent Card discoverable, legible, trusted and invocable by other agents? Found, understood, selected, invoked.",
      "tags": [
        "a2a",
        "mcp",
        "agent-readiness",
        "machine-readiness",
        "agentic-commerce"
      ],
      "examples": [
        "audit my agent for agentic commerce",
        "is my Agent Card discoverable?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "topsy",
      "name": "Ask the analyst",
      "description": "Ask Kenovar, the machine-readiness analyst, for recommendations grounded in the site's own crawl and the Kenovar corpus. Cites its sources.",
      "tags": [
        "analyst",
        "recommendations",
        "chat"
      ],
      "examples": [
        "what are my top 3 fixes?",
        "why is this page not being cited?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "signatures": [
    {
      "protected": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpPU0UiLCJraWQiOiJrZW5vdmFyLTEifQ",
      "signature": "tHU0RJ0_tXvucLMv_xIbZOD7KwySJ251fLmObUrNtmSMQJs52Awc0e8Uk9ANo9qBopqnHnCOAVMkBwHh_s1_Aw"
    }
  ]
}