{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://thecaninecoachnm.com/api/public/mcp/schema.json",
  "title": "Canine Coach MCP tool contracts",
  "description": "Input and output JSON Schemas for every tool exposed by the Canine Coach MCP server at /mcp.",
  "server": {
    "name": "canine-coach-website",
    "title": "Canine Coach Website",
    "version": "0.1.0",
    "endpoint": "https://thecaninecoachnm.com/mcp",
    "transport": "Streamable HTTP (JSON-RPC 2.0)",
    "auth": {
      "type": "oauth2.1",
      "protectedResourceMetadata": "https://thecaninecoachnm.com/.well-known/oauth-protected-resource"
    }
  },
  "tools": [
    {
      "name": "list_services",
      "title": "List training programs",
      "description": "List every dog training program The Canine Coach offers, with a short summary and who each program is best for.",
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "services": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "A Canine Coach training program.",
              "properties": {
                "slug": {
                  "type": "string",
                  "enum": [
                    "puppy-training",
                    "obedience-training",
                    "behavior-modification",
                    "off-leash-training",
                    "in-home-training",
                    "dog-nanny"
                  ],
                  "description": "Stable identifier for the program."
                },
                "name": {
                  "type": "string",
                  "description": "Display name of the program."
                },
                "path": {
                  "type": "string",
                  "description": "Path to the program page on the website."
                },
                "summary": {
                  "type": "string",
                  "description": "What the program covers."
                },
                "bestFor": {
                  "type": "string",
                  "description": "The dogs and families the program suits best."
                }
              },
              "required": [
                "slug",
                "name",
                "path",
                "summary",
                "bestFor"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "services"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "get_service",
      "title": "Get a training program",
      "description": "Get full details for one Canine Coach training program by its slug (for example 'puppy-training' or 'dog-nanny').",
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "minLength": 1,
            "enum": [
              "puppy-training",
              "obedience-training",
              "behavior-modification",
              "off-leash-training",
              "in-home-training",
              "dog-nanny"
            ],
            "description": "Program slug. One of: puppy-training, obedience-training, behavior-modification, off-leash-training, in-home-training, dog-nanny"
          }
        },
        "required": [
          "slug"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "service": {
            "type": "object",
            "description": "A Canine Coach training program.",
            "properties": {
              "slug": {
                "type": "string",
                "enum": [
                  "puppy-training",
                  "obedience-training",
                  "behavior-modification",
                  "off-leash-training",
                  "in-home-training",
                  "dog-nanny"
                ],
                "description": "Stable identifier for the program."
              },
              "name": {
                "type": "string",
                "description": "Display name of the program."
              },
              "path": {
                "type": "string",
                "description": "Path to the program page on the website."
              },
              "summary": {
                "type": "string",
                "description": "What the program covers."
              },
              "bestFor": {
                "type": "string",
                "description": "The dogs and families the program suits best."
              }
            },
            "required": [
              "slug",
              "name",
              "path",
              "summary",
              "bestFor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "service"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "search_faq",
      "title": "Search the FAQ",
      "description": "Search The Canine Coach FAQ for answers about consultations, pricing, session counts, locations, dog ages, reactivity, methods, and service areas. Omit the query to get every FAQ.",
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Optional keyword to filter questions and answers."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "A frequently asked question and its answer.",
              "properties": {
                "question": {
                  "type": "string"
                },
                "answer": {
                  "type": "string"
                }
              },
              "required": [
                "question",
                "answer"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "results"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "get_contact_info",
      "title": "Get contact details",
      "description": "Get The Canine Coach contact details, service area, hours, and how to book the free in-home consultation.",
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "description": "Contact details, service area, and booking information.",
            "additionalProperties": true
          }
        },
        "required": [
          "contact"
        ],
        "additionalProperties": false
      }
    }
  ]
}