{
  "$comment": "Sketch of what a live MCP server must declare to serve the Fresh MCP app (ralph/PLAN.md F6; see mcp-app/README.md). The ui://fresh/section resource body is fresh-section.html. Tool names match js/webmcp-adapter.js so an action invoked in the app maps to the same site capability. The server itself is backend work and does not live in this static repo.",
  "name": "fresh-dental",
  "version": "0.1.0",
  "description": "Fresh Dental Solutions — practice info, services, and appointment capabilities for MCP hosts.",
  "resources": [
    {
      "uri": "ui://fresh/section",
      "name": "Fresh morphic section",
      "description": "Sandboxed-iframe UI template that renders one Fresh bones node and calls tools back over MCP Apps JSON-RPC (ui/ready, ui/render, tools/call).",
      "mimeType": "text/html",
      "_meta": { "source": "mcp-app/fresh-section.html" }
    }
  ],
  "tools": [
    {
      "name": "describe_site",
      "description": "Return the machine-readable manifest of what Fresh Dental Solutions can show and do.",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false }
    },
    {
      "name": "set_intent",
      "description": "Declare the visitor's intent (general, cosmetic, restorative, pediatric, cost, booking, emergency) so composed UI reflects it.",
      "inputSchema": {
        "type": "object",
        "properties": { "topic": { "type": "string", "enum": ["general", "cosmetic", "restorative", "pediatric", "cost", "booking", "emergency"] } },
        "required": ["topic"],
        "additionalProperties": false
      }
    },
    {
      "name": "search_knowledge",
      "description": "Search the Fresh Dental knowledge base (data/kb.js catalog over kb/*.md articles). Returns matching articles as {slug, title, summary, category, topics, minutes}.",
      "inputSchema": {
        "type": "object",
        "properties": { "query": { "type": "string", "description": "Free-text search over titles, summaries, and topics; empty lists everything." } },
        "additionalProperties": false
      }
    },
    {
      "name": "read_article",
      "description": "Read one knowledge-base article as markdown, by slug (the canonical source at kb/<slug>.md).",
      "inputSchema": {
        "type": "object",
        "properties": { "slug": { "type": "string", "description": "Article slug from search_knowledge, e.g. dental-emergencies." } },
        "required": ["slug"],
        "additionalProperties": false
      },
      "_meta": { "ui": { "resourceUri": "ui://fresh/section" } }
    },
    {
      "name": "fresh_book",
      "description": "Schedule Appointment — booking capability.",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "_meta": { "ui": { "resourceUri": "ui://fresh/section" } }
    },
    {
      "name": "fresh_view_services",
      "description": "Our Services — browse general, cosmetic, restorative, and pediatric dentistry.",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "_meta": { "ui": { "resourceUri": "ui://fresh/section" } }
    },
    {
      "name": "fresh_call",
      "description": "Call (503) 555-FRESH.",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false }
    },
    {
      "name": "fresh_emergency_help",
      "description": "Emergency assistance — escalate an urgent dental problem to a human.",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false }
    },
    {
      "name": "fresh_learn_about",
      "description": "Learn More About Us — practice story, values, and team.",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "_meta": { "ui": { "resourceUri": "ui://fresh/section" } }
    },
    {
      "name": "fresh_submit_appointment",
      "description": "Request Appointment — submit a booking request. Field requirements mirror bones.actions[submit-appointment].requires.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": { "type": "string", "description": "Full Name" },
          "email": { "type": "string", "description": "Email Address" },
          "phone": { "type": "string", "description": "Phone Number" },
          "date": { "type": "string", "description": "Preferred Date (YYYY-MM-DD)" },
          "time": { "type": "string", "description": "Preferred Time slot, 8:00 AM through 5:00 PM on the hour" },
          "service": { "type": "string", "description": "Routine Checkup | Emergency Care | Cosmetic Consultation | Restorative Treatment | Pediatric Dentistry | Other" },
          "patientType": { "type": "string", "description": "New Patient | Existing Patient" },
          "insurance": { "type": "string", "description": "Yes | No | Not Sure" },
          "message": { "type": "string", "description": "Additional Information" }
        },
        "required": ["name", "email", "phone", "date", "time", "service", "patientType"],
        "additionalProperties": false
      },
      "_meta": { "ui": { "resourceUri": "ui://fresh/section" } }
    }
  ]
}
