{
    "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
    "version": "1.0",
    "protocolVersion": "2025-06-18",
    "serverInfo": {
        "name": "leonetfils-mcp",
        "title": "Léon et fils MCP Server",
        "version": "1.0.0"
    },
    "description": "MCP server for Léon et fils exposing service metadata and a contact request tool.",
    "documentationUrl": "https://www.leonetfils-plomberie.fr/service-doc.html#mcp",
    "transport": {
        "type": "streamable-http",
        "endpoint": "/mcp"
    },
    "capabilities": {
        "resources": {},
        "tools": {}
    },
    "authentication": {
        "required": false,
        "schemes": []
    },
    "instructions": "Use resources for site and API context, and use submit_contact_request only when the user explicitly wants Léon et fils to be contacted.",
    "resources": [
        {
            "uri": "mcp://server-card.json",
            "name": "server_card",
            "title": "MCP Server Card",
            "description": "Discovery metadata for the Léon et fils MCP server.",
            "mimeType": "application/json"
        },
        {
            "uri": "mcp://service-desc.json",
            "name": "service_desc",
            "title": "Service Description",
            "description": "Machine-readable service description for agents and integrations.",
            "mimeType": "application/json"
        },
        {
            "uri": "mcp://service-doc.html",
            "name": "service_doc",
            "title": "Service Documentation",
            "description": "Human-readable documentation for public APIs and agent endpoints.",
            "mimeType": "text/html"
        },
        {
            "uri": "mcp://contact-request-openapi.json",
            "name": "contact_openapi",
            "title": "Contact API OpenAPI",
            "description": "OpenAPI description for the public and protected contact APIs.",
            "mimeType": "application/json"
        },
        {
            "uri": "mcp://reviews.json",
            "name": "reviews",
            "title": "Customer Reviews",
            "description": "Google review excerpts displayed on the site.",
            "mimeType": "application/json"
        }
    ],
    "tools": [
        {
            "name": "get_service_overview",
            "title": "Get Service Overview",
            "description": "Return structured information about Léon et fils, including contact channels and API endpoints.",
            "inputSchema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "homepage": {
                        "type": "string"
                    },
                    "telephone": {
                        "type": "string"
                    },
                    "contact_form": {
                        "type": "string"
                    },
                    "public_contact_api": {
                        "type": "string"
                    },
                    "secure_contact_api": {
                        "type": "string"
                    },
                    "availability": {
                        "type": "object",
                        "properties": {
                            "hours": {
                                "type": "string"
                            },
                            "days": {
                                "type": "string"
                            },
                            "response_target": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "hours",
                            "days",
                            "response_target"
                        ],
                        "additionalProperties": false
                    }
                },
                "required": [
                    "name",
                    "homepage",
                    "telephone",
                    "contact_form",
                    "public_contact_api",
                    "secure_contact_api",
                    "availability"
                ],
                "additionalProperties": false
            }
        },
        {
            "name": "submit_contact_request",
            "title": "Submit Contact Request",
            "description": "Send a plumbing or heating request to Léon et fils using the same flow as the public contact form.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "Full name of the customer.",
                        "minLength": 2
                    },
                    "phone": {
                        "type": "string",
                        "description": "Phone number for callback.",
                        "minLength": 1
                    },
                    "location": {
                        "type": "string",
                        "description": "City or arrondissement.",
                        "minLength": 2
                    },
                    "message": {
                        "type": "string",
                        "description": "Optional details about the plumbing or heating issue."
                    },
                    "consent": {
                        "type": "boolean",
                        "description": "Must be true to confirm consent."
                    }
                },
                "required": [
                    "name",
                    "phone",
                    "location",
                    "consent"
                ],
                "additionalProperties": false
            },
            "outputSchema": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "message": {
                        "type": "string"
                    },
                    "contact": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "phone": {
                                "type": "string"
                            },
                            "location": {
                                "type": "string"
                            }
                        },
                        "additionalProperties": false
                    },
                    "errors": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "status",
                    "message"
                ],
                "additionalProperties": true
            }
        }
    ],
    "prompts": []
}