{
  "$schema": "https://blackcatinformatics.ca/schemas/mcp-compat/v1.json",
  "site": "patrickaudley.com",
  "name": "Patrick Colm Audley",
  "endpoint": "/mcp",
  "transport": "streamable-http",
  "webmcp_script": "/webmcp.js",
  "policy": "/.well-known/agent-policy.json",
  "deploy_hash": "60382e3fc4819d53cc4087ee843042fb776ccc3f00670d66889adac752592ab2",
  "tools": [
    {
      "name": "get_identity",
      "description": "Return canonical person identity, URLs, profiles, and identifiers.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      }
    },
    {
      "name": "get_cv",
      "description": "Return CV and resume resources in JSON, Markdown, plain text, HTML, and PDF forms.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      }
    },
    {
      "name": "get_publications",
      "description": "Return publication metadata and canonical publication pages.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      }
    },
    {
      "name": "get_projects",
      "description": "Return selected project and open-source work from canonical site data.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      }
    },
    {
      "name": "search_site",
      "description": "Search the indexed canonical site corpus using Workers AI embeddings and Cloudflare Vectorize.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "query": {
            "description": "Search query for the Patrick Audley corpus.",
            "minLength": 1,
            "type": "string"
          },
          "topK": {
            "description": "Maximum number of matching chunks to use.",
            "maximum": 12,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      }
    },
    {
      "name": "answer_question",
      "description": "Answer questions about Patrick Audley from retrieved canonical context with citations.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "question": {
            "description": "Question to answer from the Patrick Audley corpus.",
            "minLength": 1,
            "type": "string"
          },
          "topK": {
            "description": "Maximum number of matching chunks to use.",
            "maximum": 12,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "question"
        ],
        "type": "object"
      }
    },
    {
      "name": "cite_claim",
      "description": "Resolve a claim about Patrick Audley to the preferred public source.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      }
    },
    {
      "name": "prepare_contact",
      "description": "Prepare a factual contact brief without inventing claims or endorsements.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      }
    },
    {
      "name": "site_health",
      "description": "Return deploy, sitemap, canonical, and response-header diagnostics.",
      "read_only": true,
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      }
    }
  ],
  "resources": [
    {
      "name": "llms",
      "url": "/llms.txt",
      "type": "text/plain",
      "description": "Concise LLM context."
    },
    {
      "name": "llms-full",
      "url": "/llms-full.txt",
      "type": "text/plain",
      "description": "Full LLM context."
    },
    {
      "name": "linked-data",
      "url": "/index.jsonld",
      "type": "application/ld+json",
      "description": "Canonical JSON-LD graph."
    },
    {
      "name": "shacl-shapes",
      "url": "/.well-known/shacl.ttl",
      "type": "text/turtle",
      "description": "SHACL shapes for validating the RDF graph."
    },
    {
      "name": "shex-schema",
      "url": "/.well-known/shex.shex",
      "type": "text/shex",
      "description": "ShEx schema for the RDF graph."
    },
    {
      "name": "markdown",
      "url": "/index.md",
      "type": "text/markdown",
      "description": "Main page as Markdown."
    },
    {
      "name": "cv-json",
      "url": "/cv.json",
      "type": "application/json",
      "description": "JSON Resume CV data."
    },
    {
      "name": "cv-markdown",
      "url": "/cv.md",
      "type": "text/markdown",
      "description": "Markdown CV."
    },
    {
      "name": "foaf",
      "url": "/foaf.rdf",
      "type": "application/rdf+xml",
      "description": "FOAF profile."
    },
    {
      "name": "sitemap",
      "url": "/sitemap.xml",
      "type": "application/xml",
      "description": "Public URL inventory."
    },
    {
      "name": "api-catalog",
      "url": "/.well-known/api-catalog",
      "type": "application/linkset+json",
      "description": "Machine endpoint catalog."
    },
    {
      "name": "mcp-manifest",
      "url": "/.well-known/mcp.json",
      "type": "application/json",
      "description": "Static MCP/WebMCP compatibility manifest."
    },
    {
      "name": "webmcp",
      "url": "/webmcp.js",
      "type": "application/javascript",
      "description": "Browser WebMCP tool bootstrap."
    },
    {
      "name": "agent-skills",
      "url": "/.well-known/agent-skills/index.json",
      "type": "application/json",
      "description": "Published agent skill index."
    },
    {
      "name": "signed-artifact-manifest",
      "url": "/.well-known/manifest.txt",
      "type": "text/plain",
      "description": "SHA-256 manifest for signed canonical artifacts."
    },
    {
      "name": "openpgp-key",
      "url": "/.well-known/pgp.txt",
      "type": "application/pgp-keys",
      "description": "OpenPGP public key used to verify signed site artifacts."
    },
    {
      "name": "signing-key-relationship",
      "url": "/.well-known/keys.txt",
      "type": "text/plain",
      "description": "OpenPGP-signed assertion authorizing the Ed25519 HTTP Message Signatures key."
    },
    {
      "name": "signature-suffix",
      "url": ".asc",
      "type": "application/pgp-signature",
      "description": "Every signed canonical source is available at \u003curl\u003e.asc and verifies with the OpenPGP fingerprint above."
    }
  ],
  "note": "Compatibility manifest for static/headless discovery. Chrome WebMCP tools are registered in-page by /webmcp.js."
}
