{
  "$schema": "https://modelcontextprotocol.io/schemas/mcp-discovery.json",
  "name": "PropertyLab Academy MCP",
  "version": "1.0.0",
  "description": "Web-MCP capabilities exposed by academy.propertylab.ro. Agents can read program data and trigger enrollment/application actions without scraping the DOM.",
  "publisher": {
    "name": "Property Lab Academy",
    "url": "https://academy.propertylab.ro",
    "contact": "academy@propertylab.ro"
  },
  "runtime": {
    "type": "web",
    "global": "window.PropertyLabMCP",
    "mountedOn": [
      "https://academy.propertylab.ro/programs/:slug",
      "https://academy.propertylab.ro/apply"
    ]
  },
  "capabilities": [
    {
      "name": "getProgram",
      "scope": "program",
      "description": "Returns the full ProgramContext for the currently viewed program (slug, title, price, duration, capacity, seats).",
      "returns": "https://academy.propertylab.ro/mcp/program.schema.json#/$defs/ProgramContext"
    },
    {
      "name": "getPrice",
      "scope": "program",
      "description": "Returns price, currency and subscription flag.",
      "returns": "https://academy.propertylab.ro/mcp/program.schema.json#/$defs/Price"
    },
    {
      "name": "getAvailability",
      "scope": "program",
      "description": "Returns capacity, seats taken/left, next start date and availability status (open|waitlist|unscheduled).",
      "returns": "https://academy.propertylab.ro/mcp/program.schema.json#/$defs/Availability"
    },
    {
      "name": "enroll",
      "scope": "program",
      "description": "Triggers the enrollment flow. Returns a redirect URL the agent should follow.",
      "returns": "https://academy.propertylab.ro/mcp/program.schema.json#/$defs/EnrollAction"
    },
    {
      "name": "downloadBrochure",
      "scope": "program",
      "description": "Returns a download URL for the program brochure, or { action: 'unavailable' } when none is published.",
      "returns": "https://academy.propertylab.ro/mcp/program.schema.json#/$defs/DownloadAction"
    },
    {
      "name": "applyToProgram",
      "scope": "careers",
      "description": "Submits a structured candidate application (name, email, phone, city, experience, motivation, cvUrl). Mirrors POST applications + notify-new-application edge function.",
      "parameters": "https://academy.propertylab.ro/mcp/program.schema.json#/$defs/ApplyPayload",
      "returns": "https://academy.propertylab.ro/mcp/program.schema.json#/$defs/ApplyResult"
    }
  ],
  "endpoints": {
    "ssr": "https://srqqibtfgvjejsmrkemp.supabase.co/functions/v1/share-program/{slug}",
    "ssrTemplate": true,
    "schema": "https://academy.propertylab.ro/mcp/program.schema.json",
    "sitemap": "https://academy.propertylab.ro/sitemap.xml",
    "llms": "https://academy.propertylab.ro/llms.txt"
  },
  "license": "https://academy.propertylab.ro/legal/terms"
}
