{
  "$schema": "https://modelcontextprotocol.io/schema/server-card.json",
  "name": "Alex Patterson Speaker Kit MCP Server",
  "serverInfo": {
    "name": "alexpatterson-speaker-kit-mcp",
    "version": "2.0.0"
  },
  "description": "Unauthenticated Model Context Protocol (MCP) server for Alex Patterson's executive DevRel hub, conference speaker bios, talk abstracts, Sanity CDN headshots, and speaking ledger.",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://dev.alexpatterson.dev/mcp"
  },
  "mcpServers": {
    "main": {
      "url": "https://dev.alexpatterson.dev/mcp",
      "name": "Alex Patterson Speaker Kit MCP Server",
      "description": "Fetch speaker bios, talk abstracts, Sanity CDN headshots, and conference speaking ledger with no authentication required.",
      "transport": "streamable-http"
    }
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {
      "subscribe": false,
      "listChanged": false
    },
    "prompts": {
      "listChanged": false
    }
  },
  "auth": {
    "type": "none"
  },
  "tools": [
    {
      "name": "get_speaker_profile",
      "title": "Get Alex Patterson Speaker Profile",
      "description": "Retrieve Alex Patterson's executive DevRel profile, credentials (Sanity.io, CodingCat.dev, Google Developer Expert, AWS), location, home airport, booking links, and all 6 bio variations (short/medium/full in 3rd and 1st person).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "get_speaker_bio",
      "title": "Get Speaker Bio by Length & Perspective",
      "description": "Retrieve a specific conference speaker bio for Alex Patterson by length ('short' ~50w, 'medium' ~120w, 'full' ~200w) and perspective ('third' or 'first'), with word and character counts.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "length": {
            "type": "string",
            "enum": [
              "short",
              "medium",
              "full"
            ],
            "description": "Bio length: 'short' (50w), 'medium' (120w), or 'full' (200w executive). Defaults to 'medium'."
          },
          "perspective": {
            "type": "string",
            "enum": [
              "third",
              "first"
            ],
            "description": "Narrative perspective: 'third' (3rd person conference default) or 'first' (1st person). Defaults to 'third'."
          }
        }
      }
    },
    {
      "name": "list_talk_abstracts",
      "title": "List Ready-to-Run Talk Abstracts",
      "description": "List Alex Patterson's active conference talk and workshop abstracts with format (keynote, workshop, talk), tags, abstract text, and audience takeaways.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "all",
              "keynote",
              "workshop",
              "talk"
            ],
            "description": "Optional talk format filter. Defaults to 'all'."
          },
          "query": {
            "type": "string",
            "description": "Optional keyword search across title, tags, and abstract (e.g. 'MCP', 'Sanity', 'Cloudflare', 'Astro', 'Gemini')."
          }
        }
      }
    },
    {
      "name": "list_headshots",
      "title": "List Official High-Res Speaker Headshots",
      "description": "Retrieve official high-resolution Sanity CDN speaker headshots for Alex Patterson with precomputed 1:1 square (1200x1200) and 16:9 landscape (1920x1080) WebP and PNG transformation URLs.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "1:1",
              "16:9"
            ],
            "description": "Preferred aspect ratio ('1:1' or '16:9')."
          },
          "format": {
            "type": "string",
            "enum": [
              "webp",
              "png"
            ],
            "description": "Preferred image encoding ('webp' or 'png')."
          }
        }
      }
    },
    {
      "name": "list_speaking_ledger",
      "title": "Query Chronological Speaking Ledger",
      "description": "List Alex Patterson's conference keynotes, workshops, GDE summits, and speaking engagements (strictly excluding routine blog/podcast posts).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "eventFormat": {
            "type": "string",
            "enum": [
              "All",
              "In-Person",
              "Virtual",
              "Hybrid"
            ],
            "description": "Filter by event delivery format."
          },
          "role": {
            "type": "string",
            "enum": [
              "All",
              "Keynote",
              "Workshop Host",
              "Speaker",
              "Panelist"
            ],
            "description": "Filter by speaking role."
          },
          "query": {
            "type": "string",
            "description": "Optional search keyword across event name, talk title, or location."
          },
          "limit": {
            "type": "integer",
            "description": "Max number of events to return (default: 25)."
          }
        }
      }
    },
    {
      "name": "get_full_speaker_kit",
      "title": "Get Complete Speaker Kit JSON",
      "description": "Fetch the complete programmatic speaker kit (profile, all 6 bios, talk abstracts, Sanity CDN headshots, and speaking ledger).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
  ],
  "resources": [
    {
      "uri": "speaker-kit://profile",
      "name": "Alex Patterson Speaker Profile & Bios",
      "description": "Executive profile, credentials, social links, and 6 bio variations.",
      "mimeType": "application/json"
    },
    {
      "uri": "speaker-kit://talks",
      "name": "Ready-to-Run Conference Talk Abstracts",
      "description": "Active conference keynote, workshop, and breakout session abstracts.",
      "mimeType": "application/json"
    },
    {
      "uri": "speaker-kit://headshots",
      "name": "High-Res Sanity CDN Speaker Headshots",
      "description": "Official speaker headshots with Sanity Image Pipeline parameters.",
      "mimeType": "application/json"
    },
    {
      "uri": "speaker-kit://ledger",
      "name": "Conference & DevRel Speaking Ledger",
      "description": "Chronological ledger of conferences, workshops, and GDE summits.",
      "mimeType": "application/json"
    }
  ]
}