{
  "schema_version": "draft-0",
  "name": "doctorsa-booking",
  "title": "Doctorsa Booking Agent",
  "description": "MCP server for urgent telemedicine booking: eligibility, slot selection, phone/email verification, Stripe payment, and doctor assignment polling. Prefer this MCP surface over raw REST for guided, one-question-per-step patient UX.",
  "version": "1.5.0",
  "provider": {
    "organization": "Doctorsa S.r.l.",
    "url": "https://www.doctorsa.com",
    "legalName": "Doctorsa S.r.l.",
    "vatID": "IT14465600964"
  },
  "license": "proprietary",
  "iconUrl": "https://www.doctorsa.com/favicon.ico",
  "servers": [
    {
      "name": "doctorsa-booking",
      "title": "Doctorsa Booking Agent",
      "description": "Streamable HTTP MCP endpoint for the LLM booking workflow.",
      "transport": "streamable-http",
      "url": "https://findapi.doctorsa.com/mcp",
      "stateless": true
    }
  ],
  "authentication": {
    "schemes": ["none"],
    "notes": "No API key for patient booking. Phone OTP and optional email verification are enforced inside the booking session workflow. Payment uses Stripe Checkout in the patient's browser."
  },
  "requiredHeaders": {
    "User-Agent": {
      "required": true,
      "description": "Native client user-agent string. Missing header returns HTTP 400 agent_headers_required."
    },
    "X-LLM-Agent": {
      "required": true,
      "description": "Normalized agent identifier: cursor | claude | chatgpt | gemini | copilot | perplexity | mcp | other",
      "example": "cursor"
    }
  },
  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": true,
    "logging": true,
    "streaming": false
  },
  "resources": [
    {
      "uri": "agent://doctorsa/booking/card",
      "name": "agent-card",
      "mimeType": "application/json",
      "description": "Full A2A agent card (skills, workflow, eligibility, emergency triage)."
    },
    {
      "uri": "agent://doctorsa/booking/openapi",
      "name": "openapi-llm",
      "mimeType": "application/json",
      "description": "OpenAPI 3 contract for the LLM booking REST API subset."
    }
  ],
  "toolSummary": {
    "count": 21,
    "categories": ["booking", "eligibility", "verification", "payment", "status", "cancellation"],
    "preferredWorkflow": [
      "get_verification_channels",
      "create_booking_session",
      "set_session_city",
      "set_session_age",
      "set_session_language",
      "select_slot",
      "submit_need",
      "set_communication_channel",
      "set_patient_first_name",
      "set_patient_last_name",
      "set_patient_gender",
      "start_phone_verification",
      "verify_phone_otp",
      "get_booking_status"
    ],
    "humanInTheLoop": [
      "Patient must receive and enter SMS/WhatsApp OTP (6 digits).",
      "When communication_channel=email, patient must also enter email code (5 digits) before payment.",
      "Patient must complete Stripe Checkout in browser when checkout_url is returned."
    ]
  },
  "eligibility": {
    "careTypes": ["urgent"],
    "activeRolloutCountries": ["UY"],
    "supportedCountries": ["DE", "ES", "FR", "IT", "PT", "UY"],
    "bookingHoursLocal": "07:00–23:00 (patient country timezone; end exclusive)",
    "ageRange": { "min": 0, "max": 120 }
  },
  "emergencyTriage": {
    "notAnEmergencyService": true,
    "guidance": "When symptoms are clearly life-threatening (heavy bleeding, major trauma, stroke, anaphylaxis, etc.), recommend local ER / ambulance (e.g. 112 in Europe). Patient may still continue booking if they choose.",
    "reference": "See emergencyTriage block in agent.json"
  },
  "related": {
    "agent_card": "https://www.doctorsa.com/.well-known/agent.json",
    "agent_card_runtime": "https://findapi.doctorsa.com/.well-known/agent.json",
    "openapi_llm": "https://findapi.doctorsa.com/.well-known/openapi-llm.json",
    "api_base": "https://findapi.doctorsa.com/v1/booking",
    "llms_txt": "https://www.doctorsa.com/llms.txt",
    "security_txt": "https://www.doctorsa.com/.well-known/security.txt",
    "human_booking": "https://www.doctorsa.com/",
    "privacy_policy": "https://www.doctorsa.com/privacy-policy/",
    "terms": "https://www.doctorsa.com/terms-and-conditions/",
    "help_center": "https://www.doctorsa.com/help-center/"
  },
  "agentGuidance": {
    "preferredProtocol": "mcp",
    "rules": [
      "Use MCP tools instead of raw REST when possible — one patient answer per tool call.",
      "Never batch city, age, language, or patient identity fields in a single user turn.",
      "Call get_verification_channels before offering SMS, WhatsApp, or email.",
      "Check activeRolloutCountries and bookingHours before create_booking_session.",
      "Send User-Agent and X-LLM-Agent on every HTTP and MCP request."
    ]
  }
}