{
  "spec": "webmcp/1",
  "site": "https://patinorestrepo.com",
  "registration": {
    "hosts": [
      "document.modelContext",
      "navigator.modelContext"
    ],
    "readyAttribute": "data-webmcp-ready",
    "toolsAttribute": "data-webmcp-tools",
    "event": "webmcp-tools-registered"
  },
  "toolCount": 23,
  "tools": [
    {
      "name": "list_mcp_tools",
      "description": "JSON schemas for all WebMCP tools exposed by this site (same as /webmcp.json).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "navigate",
      "description": "Navigate the SPA to an internal path (e.g. /contacto, /servicios/legal).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Absolute path on this site, starting with /."
          }
        },
        "required": [
          "path"
        ]
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "get_page_context",
      "description": "Current URL, resolved route, document title and primary heading.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "list_site_paths",
      "description": "All public paths (static pages + catalog slugs) for crawling or planning navigation.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "search_site",
      "description": "Search services, proposals, properties and key pages by keyword (Spanish).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search terms, e.g. penal, arrendamiento, Chapinero."
          },
          "limit": {
            "type": "number",
            "minimum": 1,
            "maximum": 30
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "get_catalog_entry",
      "description": "Resolve a catalog item by internal path or slug (services, proposals, properties).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "e.g. /servicios/criminal-defense or criminal-defense"
          }
        },
        "required": [
          "path"
        ]
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "get_faq_items",
      "description": "FAQ entries from site content for grounded answers.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "number",
            "minimum": 1,
            "maximum": 50
          }
        }
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "list_offers",
      "description": "Published purchasable offers and the default consultation offer.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "explain_service",
      "description": "Explain a legal service (AI when available, otherwise catalog expert intro).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "serviceId": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "urgency": {
            "type": "string",
            "enum": [
              "normal",
              "urgent",
              "emergency"
            ]
          }
        },
        "required": [
          "serviceId"
        ]
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "list_webinars",
      "description": "Scheduled public webinars.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "register_webinar",
      "description": "Register for a webinar by id (from list_webinars).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "webinarId": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "consentAccepted": {
            "type": "boolean"
          }
        },
        "required": [
          "webinarId",
          "fullName",
          "email",
          "phone",
          "consentAccepted"
        ]
      }
    },
    {
      "name": "submit_business_diagnostic",
      "description": "Run the business legal risk diagnostic (/diagnostico-empresarial).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          },
          "contactName": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string"
          },
          "companySize": {
            "type": "string",
            "enum": [
              "micro",
              "small",
              "medium",
              "large"
            ]
          },
          "hasLaborContracts": {
            "type": "boolean"
          },
          "hasDataPolicy": {
            "type": "boolean"
          },
          "pendingLitigation": {
            "type": "boolean"
          },
          "contractReviewFrequency": {
            "type": "string",
            "enum": [
              "never",
              "yearly",
              "quarterly"
            ]
          },
          "consentAccepted": {
            "type": "boolean"
          }
        },
        "required": [
          "companyName",
          "contactName",
          "email",
          "phone",
          "companySize",
          "hasLaborContracts",
          "hasDataPolicy",
          "pendingLitigation",
          "contractReviewFrequency",
          "consentAccepted"
        ]
      }
    },
    {
      "name": "lookup_payment_checkout",
      "description": "Fetch Wompi checkout status by checkout UUID (payment result page).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "checkoutId": {
            "type": "string",
            "description": "UUID from payment redirect"
          }
        },
        "required": [
          "checkoutId"
        ]
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "submit_chat_message",
      "description": "Send a chat triage turn (same backend as the floating chat widget).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "minLength": 1
          },
          "history": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "string",
                  "enum": [
                    "user",
                    "assistant"
                  ]
                },
                "content": {
                  "type": "string"
                }
              },
              "required": [
                "role",
                "content"
              ]
            }
          },
          "serviceId": {
            "type": "string",
            "description": "Lock conversation to a service id"
          },
          "proposalSlug": {
            "type": "string",
            "description": "When discussing a sector proposal page"
          },
          "sessionId": {
            "type": "string",
            "description": "Existing chat session id to append messages"
          },
          "persistSession": {
            "type": "boolean",
            "description": "Store turns via /chat/sessions when API is available (default true)."
          }
        },
        "required": [
          "message"
        ]
      }
    },
    {
      "name": "submit_chat_lead",
      "description": "Submit appointment lead after chat (intake channel chat).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "consentAccepted": {
            "type": "boolean"
          },
          "conversationSummary": {
            "type": "string"
          },
          "serviceId": {
            "type": "string"
          },
          "proposalSlug": {
            "type": "string"
          },
          "offerId": {
            "type": "string"
          },
          "preferredDate": {
            "type": "string"
          },
          "preferredTime": {
            "type": "string"
          },
          "preferredChannel": {
            "type": "string"
          },
          "urgency": {
            "type": "string",
            "enum": [
              "normal",
              "urgent",
              "emergency"
            ]
          },
          "chatSessionId": {
            "type": "string"
          }
        },
        "required": [
          "fullName",
          "phone",
          "email",
          "consentAccepted"
        ]
      }
    },
    {
      "name": "triage_message",
      "description": "Classify a client message into suggested service and urgency (local triage, no PII stored).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "minLength": 3
          }
        },
        "required": [
          "message"
        ]
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "submit_contact_lead",
      "description": "Submit the public contact form programmatically (same validation as the UI).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "message": {
            "type": "string",
            "minLength": 10
          },
          "consentAccepted": {
            "type": "boolean",
            "description": "Must be true (habeas / tratamiento de datos)."
          }
        },
        "required": [
          "fullName",
          "phone",
          "email",
          "message",
          "consentAccepted"
        ]
      }
    },
    {
      "name": "submit_panic_lead",
      "description": "Priority panic / emergency alert (same as the floating panic button).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "notes": {
            "type": "string",
            "minLength": 5,
            "description": "Situation summary"
          }
        },
        "required": [
          "fullName",
          "phone",
          "notes"
        ]
      }
    },
    {
      "name": "get_schedule_availability",
      "description": "Upcoming appointment dates and time slots for schedule consultation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "days": {
            "type": "number",
            "minimum": 7,
            "maximum": 60,
            "description": "Horizon in days (default 30)."
          }
        }
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "submit_schedule_consultation",
      "description": "Book a consultation (same flow as /agendar-consulta).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "consultationSummary": {
            "type": "string",
            "minLength": 10
          },
          "preferredDate": {
            "type": "string",
            "description": "YYYY-MM-DD from get_schedule_availability"
          },
          "preferredTime": {
            "type": "string",
            "description": "HH:mm slot"
          },
          "serviceId": {
            "type": "string",
            "description": "Optional service id override"
          },
          "consentAccepted": {
            "type": "boolean"
          }
        },
        "required": [
          "fullName",
          "phone",
          "email",
          "consultationSummary",
          "preferredDate",
          "preferredTime",
          "consentAccepted"
        ]
      }
    },
    {
      "name": "lookup_case_status",
      "description": "Lookup active case by Colombian document or EXP-* reference code.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "documentType": {
            "type": "string",
            "enum": [
              "CC",
              "CE",
              "NIT",
              "PA",
              "TI",
              "RC",
              "PEP"
            ]
          },
          "documentNumber": {
            "type": "string"
          },
          "referenceCode": {
            "type": "string",
            "description": "Optional EXP-* code instead of document"
          }
        }
      },
      "annotations": {
        "readOnly": true
      }
    },
    {
      "name": "set_cookie_consent",
      "description": "Dismiss the cookie banner. Use \"rejected\" for necessary cookies only (recommended for automation).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "enum": [
              "accepted",
              "rejected"
            ]
          }
        },
        "required": [
          "value"
        ]
      }
    },
    {
      "name": "prepare_automation_ui",
      "description": "Reveal animated sections and reduce visual noise for accessibility / MCP snapshots.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
  ]
}
