{
  "openapi": "3.0.1",
  "info": {
    "title": "Real Estate MCP API - Dils Portugal",
    "version": "1.1",
    "description": "Contexte MCP Immobilier pour rechercher des biens et soumettre des demandes de contact. - Dils Portugal",
    "termsOfService": "/fr-fr/termes-et-conditions",
    "contact": {
      "name": "Dils Portugal",
      "url": "https://dils.pt/",
      "email": "info.portugal@dils.com"
    },
    "x-company-info": {
      "name": "Dils Portugal",
      "ami": "3497",
      "address": "Avenida da República, 5 – 2º Piso, 1050-185 Lisboa"
    }
  },
  "servers": [
    {
      "url": "https://dils.pt/",
      "description": "Identifiant du serveur MCP"
    }
  ],
  "components": {
    "schemas": {
      "searchToMatchRequest": {
        "type": "object",
        "properties": {
          "businessType": {
            "type": "string",
            "description": "Définit ou renvoie l'identifiant du type d'activité de la propriété"
          },
          "countryName": {
            "type": "string",
            "description": "Nom du pays utilisé comme critère de filtrage. Ce champ doit rester vide lorsque le pays n’est pas identifié."
          },
          "stateName": {
            "type": "string",
            "description": "Nom de la région (district) du bien (obligatoire dans la recherche si la commune n'est pas précisée)."
          },
          "townName": {
            "type": "string",
            "description": "Nom de la commune pour le bien (obligatoire dans la recherche si la région n'est pas précisée)."
          },
          "neighborhoodName": {
            "type": "string",
            "description": "Nom ou identifiant du quartier ou de la paroisse où se situe la propriété."
          },
          "zoneName": {
            "type": "string",
            "description": "Identifiant de la zone géographique utilisé pour filtrer les recherches."
          },
          "masterCategoryIds": {
            "type": "array",
            "description": "Identifiants (IDs) d’un ou plusieurs groupes principaux de catégories de biens immobiliers (ex. : appartements, maisons, entrepôts, terrains, hôtels). Il est obligatoire d’en indiquer au moins un si aucun type spécifique de bien n’est mentionné."
          },
          "categoryIds": {
            "type": "array",
            "description": "Identifiants (ID) d’un ou plusieurs types spécifiques de biens immobiliers (ex. : appartement, maison, entrepôt, terrain, hôtel)."
          },
          "condition": {
            "type": "string",
            "description": "État de conservation."
          },
          "minPrice": {
            "type": "integer",
            "description": "Prix minimum en euros. Remplir lorsque l’utilisateur indique un budget minimum ou une limite inférieure de prix.",
            "format": "int32"
          },
          "maxPrice": {
            "type": "integer",
            "description": "Prix maximum en euros. Remplir lorsque l’utilisateur indique un budget maximum ou une limite supérieure de prix.",
            "format": "int32"
          },
          "minBedrooms": {
            "type": "integer",
            "description": "Nombre minimum de chambres à filtrer",
            "format": "int32"
          },
          "maxBedrooms": {
            "type": "integer",
            "description": "Nombre maximum de chambres à filtrer",
            "format": "int32"
          },
          "bathrooms": {
            "type": "integer",
            "description": "Nombre minimum de salles de bains.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Référence interne du bien utilisée pour l'identification."
          },
          "developmentName": {
            "type": "string",
            "description": "Nom du programme immobilier."
          },
          "developmentFractions": {
            "type": "boolean",
            "description": "Indique si la recherche doit prendre en compte les unités d’un programme immobilier (par exemple des appartements ou des commerces) plutôt que le programme dans son ensemble. Lorsqu’elle est activée, les résultats incluent uniquement les unités associées à un programme."
          },
          "developmentTags": {
            "type": "array",
            "description": "Étiquettes de programmes immobiliers utilisées pour filtrer la recherche."
          },
          "withVideos": {
            "type": "boolean",
            "description": "Recherche uniquement les propriétés disposant de vidéos. À appliquer lorsque l’utilisateur mentionne des expressions telles que 'avec vidéo', 'avec vidéos', 'a vidéo', 'a vidéos', 'voir la vidéo du bien', 'voir vidéo en ligne', etc."
          },
          "withBluePrints": {
            "type": "boolean",
            "description": "Recherche uniquement les propriétés disposant de plans (blueprints). Appliquer lorsque l'utilisateur mentionne 'avec plan', 'a des plans', 'plans de la maison', 'plan de la propriété', 'plan du rez-de-chaussée', 'voir plan', etc."
          },
          "withVirtualVisits": {
            "type": "boolean",
            "description": "Recherche uniquement les biens disposant de visites virtuelles. À appliquer lorsque l'utilisateur mentionne 'visite virtuelle', 'tour virtuel', 'visite 3D', 'tour interactif', 'parcours virtuel', 'expérience virtuelle', 'visualisation virtuelle', 'voir la visite virtuelle en ligne'."
          },
          "with360Photos": {
            "type": "boolean",
            "description": "Recherche uniquement les propriétés disposant de photos 360º. Appliquer lorsque l'utilisateur mentionne 'avec photos 360º', 'a photos 360º', 'avec photos panoramiques', 'a photos panoramiques', 'voir photos 360º en ligne', etc."
          },
          "featuresNames": {
            "type": "array",
            "description": "Caractéristiques du bien, y compris les commodités, services et points d'intérêt à proximité, ainsi que les types de vues pour fournir une description complète et détaillée de la propriété"
          },
          "page": {
            "type": "integer",
            "description": "Numéro de page à retourner dans les résultats de recherche.",
            "format": "int32"
          }
        },
        "description": "Schéma décrivant les paramètres d’entrée pour la recherche immobilière."
      },
      "searchResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "Liste des résultats de la page actuelle, basée sur le nombre d’enregistrements par page.",
            "items": {
              "$ref": "#/components/schemas/DetailResponse"
            }
          },
          "count": {
            "type": "integer",
            "description": "Nombre total de résultats correspondant aux critères de recherche.",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "description": "Numéro de la page actuelle selon les critères de recherche.",
            "format": "int32"
          },
          "totalpages": {
            "type": "integer",
            "description": "Nombre total de pages correspondant aux critères de recherche.",
            "format": "int32"
          },
          "statetownnameequals": {
            "type": "boolean",
            "description": "Indique si le nom du district est identique au nom de la commune."
          },
          "developmentname": {
            "type": "string",
            "description": "Nom du programme ; ce champ est renseigné uniquement si les résultats sont liés à un programme spécifique portant ce nom."
          }
        },
        "description": "Schéma décrivant les paramètres de sortie de la recherche immobilière."
      },
      "detailRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "ID de la propriété pour contact.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Référence interne du bien utilisée pour l'identification."
          },
          "developmentFractions": {
            "type": "boolean",
            "description": "Indique si la recherche doit prendre en compte les unités d’un programme immobilier (par exemple des appartements ou des commerces) plutôt que le programme dans son ensemble. Lorsqu’elle est activée, les résultats incluent uniquement les unités associées à un programme."
          }
        },
        "description": "Schéma décrivant les paramètres d’entrée pour le détail du bien immobilier."
      },
      "detailResponse": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "ID unique de l'annonce immobilière.",
            "format": "int32"
          },
          "propertyType": {
            "type": "string",
            "description": "Type de propriété."
          },
          "condition": {
            "type": "string",
            "description": "État de conservation du bien immobilier."
          },
          "listingReference": {
            "type": "string",
            "description": "Référence du bien affichée dans les résultats de recherche."
          },
          "firstPhoto": {
            "type": "string",
            "description": "URL de la miniature de la première photo du bien."
          },
          "description": {
            "type": "string",
            "description": "Description détaillée du bien immobilier."
          },
          "title": {
            "type": "string",
            "description": "Titre de l'annonce."
          },
          "price": {
            "type": "string",
            "description": "Prix en euros."
          },
          "imiValue": {
            "type": "string",
            "description": "Montant de l'IMI à payer pour le bien, calculé selon la VPT et la réglementation fiscale applicable."
          },
          "business": {
            "type": "string",
            "description": "Type de transaction immobilière."
          },
          "location": {
            "type": "string",
            "description": "Nom de l'emplacement."
          },
          "bedrooms": {
            "type": "integer",
            "description": "Nombre de chambres du bien immobilier.",
            "format": "int32"
          },
          "bathrooms": {
            "type": "integer",
            "description": "Nombre de salles de bains du bien immobilier.",
            "format": "int32"
          },
          "url": {
            "type": "string",
            "description": "URL publique de l'annonce."
          },
          "hasVideos": {
            "type": "boolean",
            "description": "Indique si le bien dispose de vidéos disponibles."
          },
          "hasBluePrints": {
            "type": "boolean",
            "description": "Indique si le bien dispose de plans ou blueprints disponibles."
          },
          "has360Photos": {
            "type": "boolean",
            "description": "Indique si la propriété dispose de photos 360°."
          },
          "hasVirtualVisits": {
            "type": "boolean",
            "description": "Indique si la propriété dispose de visites virtuelles ou de visites guidées virtuelles."
          },
          "features": {
            "description": "Ces clés représentent la description des caractéristiques spécifiques d’un bien immobilier, y compris les attributs physiques et les emplacements pertinents tels qu’une piscine, une vue sur la mer, la proximité des hôpitaux, des écoles et d’autres infrastructures importantes. Ces informations permettent de détailler et qualifier le bien pour améliorer la recherche et l'affichage des résultats selon les préférences de l'utilisateur.",
            "$ref": "#/components/schemas/Dictionary`2"
          }
        },
        "description": "Schéma décrivant les paramètres de sortie du détail du bien immobilier."
      },
      "leadRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "ID de la propriété pour contact.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Référence interne du bien utilisée pour l'identification."
          },
          "name": {
            "type": "string",
            "description": "Nom de l'utilisateur."
          },
          "email": {
            "type": "string",
            "description": "Adresse email de l'utilisateur (obligatoire si aucun numéro de téléphone n'est fourni)."
          },
          "phone": {
            "type": "string",
            "description": "Numéro de téléphone de l'utilisateur (optionnel si l'adresse email est fournie)."
          },
          "phoneCountryCode": {
            "type": "string",
            "description": "Code pays du téléphone incluant le signe plus, par exemple, \"+33\" pour la France, \"+351\" pour le Portugal."
          },
          "message": {
            "type": "string",
            "description": "Message personnalisé de l'utilisateur."
          }
        },
        "description": "Schéma décrivant les paramètres d’entrée pour l’envoi de leads immobiliers."
      },
      "leadResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Statut de l'envoi du formulaire de contact (ex.: succès, erreur)."
          },
          "message": {
            "type": "string",
            "description": "Message décrivant le résultat de l'envoi du formulaire de contact."
          },
          "confirmedLead": {
            "type": "boolean",
            "description": ""
          }
        },
        "description": "Schéma décrivant les paramètres de sortie de l’envoi de leads immobiliers."
      },
      "companyInfoRequest": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Identifiant de l’entreprise/agence à consulter (optionnel, utilise celui de l’entreprise par défaut).",
            "format": "int32"
          }
        },
        "description": "Schéma d'entrée pour la demande d'informations sur l'entreprise"
      },
      "companyInfoWithAgenciesResponse": {
        "type": "object",
        "properties": {
          "headquarters": {
            "description": "Informations sur les coordonnées de contact de l’entreprise relatives au siège.",
            "$ref": "#/components/schemas/CompanyInfoResponse"
          },
          "agencies": {
            "type": "array",
            "description": "Informations sur les coordonnées de contact des agences de l’entreprise.",
            "items": {
              "$ref": "#/components/schemas/CompanyInfoResponse"
            }
          }
        },
        "description": "Schéma de sortie avec les données d'information sur l'entreprise"
      },
      "companyInfoResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Nom de l'entreprise"
          },
          "phone": {
            "type": "string",
            "description": "Numéro de téléphone de l'entreprise"
          },
          "mobile": {
            "type": "string",
            "description": "Numéro de mobile de l'entreprise"
          },
          "email": {
            "type": "string",
            "description": "Adresse email de contact de l'entreprise"
          },
          "address": {
            "type": "string",
            "description": "Adresse de l'entreprise (sans code postal)"
          },
          "district": {
            "type": "string",
            "description": "District où se situe l'entreprise"
          },
          "municipality": {
            "type": "string",
            "description": "Commune où se situe l'entreprise"
          },
          "parish": {
            "type": "string",
            "description": "Freguesia où se situe l'entreprise"
          },
          "zipCode": {
            "type": "string",
            "description": "Code postal de l'adresse de l'entreprise"
          },
          "businessHours": {
            "type": "string",
            "description": "Heures d'ouverture de l'entreprise"
          },
          "googleMapsUrl": {
            "type": "string",
            "description": "Lien direct vers l'emplacement de l'entreprise sur Google Maps"
          }
        },
        "description": "Schéma de sortie avec les données d'information sur l'entreprise"
      },
      "rasorInfoRequest": {
        "type": "object",
        "properties": {
          "rasorName": {
            "type": "string",
            "description": "Nom du conseiller immobilier pour lequel des informations détaillées sont demandées."
          },
          "stateName": {
            "type": "string",
            "description": "Permet de rechercher des conseillers par district."
          },
          "townName": {
            "type": "string",
            "description": "Permet de rechercher des conseillers par commune."
          }
        },
        "description": "Schéma d'entrée pour demander des informations détaillées sur le conseiller immobilier"
      },
      "rasorInfoResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Nom complet du conseiller immobilier."
          },
          "phone": {
            "type": "string",
            "description": "Numéro de téléphone fixe du conseiller immobilier."
          },
          "mobile": {
            "type": "string",
            "description": "Numéro de téléphone portable du conseiller immobilier."
          },
          "observations": {
            "type": "string",
            "description": "Observations supplémentaires relatives au conseiller immobilier."
          },
          "email": {
            "type": "string",
            "description": "Adresse e-mail du conseiller immobilier."
          },
          "address": {
            "type": "string",
            "description": "Adresse complète du conseiller immobilier ou du bureau."
          },
          "city": {
            "type": "string",
            "description": "Commune où le consultant exerce son activité."
          },
          "parish": {
            "type": "string",
            "description": "Paroisse où le consultant exerce son activité."
          },
          "spokenLanguages": {
            "type": "array",
            "description": "Liste des langues parlées par le consultant."
          },
          "socialProfiles": {
            "type": "array",
            "description": "Liste des liens vers les profils ou pages sociales du consultant.",
            "items": {
              "$ref": "#/components/schemas/SocialProfile"
            }
          },
          "avatar": {
            "type": "string",
            "description": "Image de l'avatar associé au consultant."
          },
          "listingUrl": {
            "type": "string",
            "description": "URL de la page affichant tous les biens attribués ou liés au consultant, offrant un accès direct à la liste complète des biens concernés."
          },
          "detailUrl": {
            "type": "string",
            "description": "Page présentant l’ensemble des informations de l’agent, y compris ses coordonnées, son profil professionnel et les biens qui lhe sont associés."
          }
        },
        "description": "Schéma de sortie avec des informations détaillées sur le conseiller immobilier"
      },
      "imiRequest": {
        "type": "object",
        "properties": {
          "townName": {
            "type": "string",
            "description": "Nom de la commune où se trouve le bien. Ce champ est obligatoire pour l'identification géographique et la détermination du taux d'IMI. Exemple : \"Lisbonne\", \"Porto\", \"Sintra\", \"Albufeira\"."
          },
          "taxableValue": {
            "type": "number",
            "description": "Valeur patrimoniale imposable du bien (VPT), telle qu’enregistrée auprès de l’Autorité Fiscale portugaise. Il s’agit de la valeur fiscale officielle servant de base au calcul de l’IMI. Elle doit être un nombre décimal positif exprimé en euros. Exemple : \"185000.00\".",
            "format": "decimal"
          },
          "dependentsNumber": {
            "type": "integer",
            "description": "Nombre de personnes à charge dans le foyer fiscal du contribuable pour l’année de référence. Cela inclut les enfants, les parents âgés ou d’autres personnes légalement reconnues pouvant donner droit à une réduction ou exonération de l’IMI. Valeurs valides : entier ≥ 0. Exemple : \"2\".",
            "format": "int32"
          },
          "isUrban": {
            "type": "boolean",
            "description": "Indique si le bien est classé comme urbain ou rural. Les biens urbains sont soumis à l’IMI, tandis que les biens ruraux peuvent être soumis à des règles fiscales différentes. Exemple : true/false."
          }
        },
        "description": "Schéma d'entrée utilisé pour demander le calcul de la taxe municipale sur les propriétés (IMI) d'un bien immobilier."
      },
      "imiResponse": {
        "type": "object",
        "properties": {
          "townName": {
            "type": "string",
            "description": "Nom de la commune considéré pour le calcul de l'IMI"
          },
          "taxableValue": {
            "type": "string",
            "description": "Valeur patrimoniale imposable (VPT) prise en compte pour le calcul de l'IMI, exprimée en euros"
          },
          "dependentsNumber": {
            "type": "string",
            "description": "Nombre de personnes à charge comptabilisées pour les avantages appliqués dans le calcul de l'IMI"
          },
          "isUrban": {
            "type": "string",
            "description": "Indication si le bien est urbain ou rural, pris en compte pour le calcul de l'IMI"
          },
          "imiValue": {
            "type": "string",
            "description": "Valeur finale de l’IMI (Impôt Municipal sur les Immeubles) calculée à partir des données fournies."
          },
          "imiTaxValue": {
            "type": "string",
            "description": "Taux utilisé pour le calcul de l'IMI."
          },
          "dependentDiscount": {
            "type": "string",
            "description": "Valeur de la réduction basée sur le nombre de personnes à charge."
          },
          "dataYear": {
            "type": "integer",
            "description": "Année de référence des taux utilisés pour le calcul de l'IMI.",
            "format": "int32"
          }
        },
        "description": "Schéma de sortie fournissant le résultat du calcul de l'IMI, incluant des informations détaillées sur le montant à payer."
      },
      "servicesInfoRequest": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Identifiant de l’entreprise/agence à consulter (optionnel, utilise celui de l’entreprise par défaut).",
            "format": "int32"
          }
        },
        "description": "Résumé des services disponibles, y compris leur objectif et leur application pour les clients."
      },
      "servicesInfoResponse": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Identifiant unique de l’entreprise associée au catalogue de services.",
            "format": "int32"
          },
          "companyName": {
            "type": "string",
            "description": "Nom de l’entreprise qui fournit le catalogue de services."
          },
          "categories": {
            "type": "array",
            "description": "Liste des catégories de services disponibles, organisées par profil client.",
            "items": {
              "$ref": "#/components/schemas/ServiceCategory"
            }
          }
        },
        "description": "Résumé des services fournis au client, y compris les détails, la portée et l’application."
      }
    }
  },
  "paths": {
    "/mcp/search": {
      "get": {
        "summary": "Rechercher des annonces immobilières en utilisant des filtres tels que la localisation, le prix, le type et l’état.",
        "description": "Rechercher des annonces immobilières en utilisant des filtres tels que la localisation, le prix, le type et l’état.",
        "operationId": "mcpSearch",
        "parameters": [
          {
            "name": "BusinessType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Définit ou renvoie l'identifiant du type d'activité de la propriété (Acheter, Cession de Fonds de Commerce, Location). Si non indiqué dans la recherche, Vente sera utilisée par défaut"
          },
          {
            "name": "CountryName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Nom du pays utilisé comme critère de filtrage. Ce champ doit rester vide lorsque le pays n’est pas identifié., (est requis)"
          },
          {
            "name": "StateName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Nom de la région (district) du bien (obligatoire dans la recherche si la commune n'est pas précisée)., (est requis)"
          },
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Nom de la commune pour le bien (obligatoire dans la recherche si la région n'est pas précisée)."
          },
          {
            "name": "NeighborhoodName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Nom ou identifiant du quartier ou de la paroisse où se situe la propriété."
          },
          {
            "name": "ZoneName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Identifiant de la zone géographique utilisé pour filtrer les recherches."
          },
          {
            "name": "MasterCategoryIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Identifiants (IDs) d’un ou plusieurs groupes principaux de catégories de biens immobiliers (ex. : appartements, maisons, entrepôts, terrains, hôtels). Il est obligatoire d’en indiquer au moins un si aucun type spécifique de bien n’est mentionné."
          },
          {
            "name": "CategoryIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Identifiants (ID) d’un ou plusieurs types spécifiques de biens immobiliers (ex. : appartement, maison, entrepôt, terrain, hôtel)."
          },
          {
            "name": "Condition",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "État de conservation. (À démolir ou reconstruire, À rénover, Acheter, Avec programme d'encouragement à la rénovation, Bon état, En construction, En projet, Neuf, Non Applicable, Réhabilité, Rénové, Réservé)"
          },
          {
            "name": "MinPrice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Prix minimum en euros. Remplir lorsque l’utilisateur indique un budget minimum ou une limite inférieure de prix."
          },
          {
            "name": "MaxPrice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Prix maximum en euros. Remplir lorsque l’utilisateur indique un budget maximum ou une limite supérieure de prix."
          },
          {
            "name": "MinBedrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Nombre minimum de chambres à filtrer"
          },
          {
            "name": "MaxBedrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Nombre maximum de chambres à filtrer"
          },
          {
            "name": "Bathrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Nombre minimum de salles de bains."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Référence interne du bien utilisée pour l'identification."
          },
          {
            "name": "DevelopmentName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Nom du programme immobilier."
          },
          {
            "name": "DevelopmentFractions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Indique si la recherche doit prendre en compte les unités d’un programme immobilier (par exemple des appartements ou des commerces) plutôt que le programme dans son ensemble. Lorsqu’elle est activée, les résultats incluent uniquement les unités associées à un programme."
          },
          {
            "name": "DevelopmentTags",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Étiquettes de programmes immobiliers utilisées pour filtrer la recherche. (Algarve - Destaque Home Empreendimento, Alojamento local - licença, Atlantic Villas, Atualização_2, Casa Sapo Sim, Cascais - Destaque Home Empreendimento, CE (not), Co Exclusivo , Com notas, comissao 3%, comissão 4%, comissão 5%, comissão 6%, Comporta - Destaque Home Empreendimento, Concl 2019, Concl 2020, Concl 2021, Concl 2022, Concl 2023, Concl 2024, concl 2025, Concl 2026, Concl 2027, concl 2028, concl 2029, Concluido, Condomínio Fechado, Destaque, Destaque-Carrossel, Dils Porto Foz, ego teste, Empreendimento Algarve, Empreendimento Cascais, Empreendimento Comporta, Empreendimento Lisboa, Empreendimento Porto, Empreendimento Setúbal, EQUIPA RETAIL DILS, Exclusivo, Exportar_Habiihub, Idealista - Emp. Destacado, Idealista - Tarifa Plana, Idealista Sim, Imovirtual Sim, Isenção de IMT, Lisboa - Destaque Home Empreendimento, Lojas_Site, LU - já tem, Nâo Casa Sapo, Não Exportar, Não Idealista, Não Imovirtual, Não Olx, Não Portais Generalistas, Não Portais Internacionais, Não Portais Nacionais, Não Redes Sociais, não super casa, Oeiras - Destaque Home Empreendimento, PH ok, Placa Castelhana, Placa Dils, Porto - Destaque Home Empreendimento, Preço sob consulta, Properstar Sim, Rendimento Garantido, Site, Site - Empreend. Comercialização, Site - Empreend. Portfolio, Site Destaque-Luxo, Site Destaque-Rendimento, Site Destaque-Terraços e Jardins, Site Empreendimentos - Imóveis, Site HP - empreendimento grande, Site HP - Empreendimentos, Site HP - Top Choice, Site Pág. Empreend. Grande, Supercasa Emp. Destacado, Supercasa sim, Visita virtual, vista, vista cidade, vista mar, vista rio, x 1 de Maio, x 141 Gomes, x 1965 Cidade Jardim, x Afonso Cordeiro 85, x Aires Gouveia, x Ajuda Riverview, x Alagoa, x ALBA100, x Alcântara Gardens, x Alcântara Riverside, x Alea, x Alecrim 53, x Alegria 284, x Alfama 83, x Alfândega 80, x Alfarroba Condominium, x Aliados 9, x Alive Riverside, x Alma Gardens, x Alma Hills, x Alma Living, x Alma Luz, x Almada 109, x Almada 170, x Almar Bridge, x Almirante Reis 67A, x Althea, x Alto do Tejo, x Alure, x Alva, x Alvares Cabral 127, x Alvôr: The Breeze, x Amoreiras Villas, x AMR39, x Antas Atrium, x Antas Atrium II, x Antas Prime, x Antiga Fábrica do Prado, X Anza Boa Hora Living, x Arco d'Olide, x Areeiro Select, x Aroeira Collections: Apartamentos, x Aroeira Collections: Hotel, x Aroeira Collections: Moradias, x Aroeira Collections: Villas, x Arriaga 41, x Atelier, x Atlante, x Atlantic Villas, x Atrium - Faro, x Attico, X Aura, x Aurificia, x Aurios, x Avant Garden, x Avenidas Novas 15 (DS15), x Azo, x Azuaga 68, x AZUYA, x B779, x Bahuto, x Baía Residence, x Barroca 8, x Beach Walk Residences, x Beato Quarter, x Bloom Living, x Bloomia, x Blue House, x Boavista 255, x Boavista 5205, x Boavista 7, x Boavista Garden, x Boavista II, x Bom Jardim Complex, X Bom Sucesso, x Bonjardim, x Bonsant, x Bosk, x Boss Garden, x Botanica, x BOW, x Braancamp Downtown Apartments, x Brito Capelo 1023, x Brito Capelo e Roberto Ivens, x Cacilhas Bay, x Campo Alegre 1024, x Campo Grande 200, x Campo Grande 264, x Campo Novo, x Carmim Porto, x Carofini, x Casa da Música, x Casas de Sal, x Casas de Santo Amaro, x Casas do Mar, x Casas do Sol, x Casas do Troncal, x Casas Garcia de Orta, x Caulinos Residences, x Caxias Heights, x Cedofeita 289, x Cedofeita 497, x Colina do Outeiro, x Conde da Ribeira, x Conde Redondo Residences, x Copa Cool Living, x Coral, x Costa Cabral & Dr. António Coelho, x Costa Cabral 1014, x Costa Cabral Flats, x Covelo Park, x CR80, x Cuckoo's Villas, x Damasceno 85, x Del Mar Waterfront Living, x DISTRIKT, x Docks, x Domus, x Douradores 6 (SixGild), x Douro Atlântico, X Douro Atlântico II, x Douro Nobilis, x Duke Residences, x Duque D'Ávila 139, X DUUO, x DUUO Skyline Collection, x Edificio Alvares Cabral, x Edifício ASF, x Edifício Boavista, x Edifício Molhe da Montevideu, x Edifício Santiago, x Egas Moniz 209, x Eleven, x Eleven Gaia, x ÉLou, x Élou Jardins, x Ernesto 65, x Esperança 82, x Essence New Tradition, x Estória, x Estoril Prime, x Estoril Woods, x Fábrica 40, x Faria Guimarães 406, X Fernandes Thomaz 797, X Fernão Magalhães 127, x Ferreira de Castro Flats, X Fervença Palace, x Filipe Folque 43, x FiniSal, x Fiori Cascais, x Floratta Cascais, x Flower Tower Camelia, x Foco, x Foliage, x Fontinha Apartments, x Foz Elements, x Foz Nature, x Foz Villas, x Freedom, x Future Mirear, x Gaia Hills Ágora, x Gaia Hills Douro, x Gaia Hills Parque, X Garcia 38, x Garrett 53, x Glória, x Glória Studios, x Golden View Metropolitan, x Gondarém 691, x Grace 858, x Granja Living, x Green Avenue, x Green Plaza Carcavelos, x Greenstone, x Grid 2891, x Guimaflats Residence, x Herdade do meio, x Hilton Cascais, x House Factory, x Infante Residences, x Janelas Verdes, x Jardim da Glória, x Jardim de Matosinhos, x Jardim de Ourique, x Jardim Miraflores, x Jardins Efanor - Factory, x Jardins Efanor - Natura, x José Falcão 124, x Juso Prime, x Juzzo Apartments, x Juzzo Design Villas, x KORI, x Laguna Resort, x Lake, x Land Roots River Apartments, x Lapa 93, x Laranjeira Residence, x Legacy, x Legacy by the Sea, x Legacy Living, x Les Terrasses, x Light  Houses, x Lindo Vale, x Linea Residences, x Lisboa Garden, x Lisboa Residence (Hyatt), x Lisbon Heights, x LIV Matosinhos, x Living Sardoal, x Living Sea, x Lumare, x LUMINA, x L'Urbain, x Lurion Residences, x Lux Garden, x LX Living, x Madalena 88, x Marina Douro, x Marquesa Palace, x Mártires da Liberdade Porto, x Matsu, x Mauritânia II, x MIMA Living, X Miradouro 68, x MobNature, x Moinho de Vento Flats, x Monsanto Residences, x Monte Bello, x Monte Cativo, x Monte Da Virgem Flats, x Monte Rei Golf – Clubhouse Residences, x Monte Rei Golf – Linked Villas, x Montebelo, x Monview, x Monville, x Nama, x Nature Condo Villas, x Nau, x Nine One, x Nobel 41-85, x NoLiPa, x Nomad Bay, x Nomad Eden, x Noor, x Noor II, x Novel Park, x Nuance, x OAK, x OAK 35, x OCEAM, x Oceanic Reserve, x Odeon, x Oeiras Golf - Eagle 4, x Olive Green, x O'Living II, x Ombria Algarve, x ON.Living Boavista, x Oporto Luxury Residences, x Oporto Metropolitano, x Oporto Plaza, x Oriental Park, X Outubro 77, x Pac man, x Paço de Moreira, x Padre António Vieira 155, x Padre Cruz 64, x Palacete Douro, x Palácio BR Avenida, x Palácio do Infantado, x Palácio Santa Clara, x Palazzo, x Palm Residence, x Palmares Signature II, x Parque das Nações Residences (Martinhal), x Passadiço, X Passos Manuel 182, x Pátios do Monte, x Paulo Dias Novais 45, x Pearls Vilamoura, x Penha Longa Edition, x Pescaria, x Pestana Porto Covo Beach Residences, x Pharma Village, x Pilar, x Plaza View, x Portas do Sol - Lote 8, x Post Scriptum 70, x Pousio, X Praça do Chile 16, x Praia Mar Residence, x Prata Riverside Village, x Prateato, x Prelada Gardens, x Prestige V, x Print House, x Prisma, x Prisma Douro, x Privato, x Promenade, x Pulse Lisboa, x Pulse Townhouses Lisboa, x Quinta do Alverde, x Quinta Marquês Gomes, x Quintinha 56, x Raiz, x Rasa 503, x RCC Alvalade, x Real Calçada, x Real Serenity, x Red in Blue, x República 5, x Ria Terraces, x Rialto, x Ribamar, x River Quarter, x Riverside III, x RM Villas, x Rocio, X Royal Cabanas Beach II, x Rua Cinco, x Rua Dezanove, x Rua Trinta e Seis, x Ruínas do Malhadal, x Sá da Bandeira, x Sá da Bandeira 39, x Sabóia 1257, x Sabóia 876, x Sal D'ouro Coast, x Sal D'ouro Horizon, x Sal D'ouro Park, x Sal D'ouro Reserve, x Sal D'ouro Sea Pearl, x Salgados Beach Villas, x Salgueiros Flats, x Santa Catarina Unique, x Santa Luzia Ria, x São João da Mata 151, x São João da Praça, x Sapphirus, x Saramago Condomínio, x Scala Mare, x SeaHaus, x Secret Garden Villas, X Seixal Baía, x Selva, x Senhora do Porto 249, x Senhora do Porto Residence, x Serenity, x Serpa 687, x Serralves 239, x Splendid Beloura, x Splendouro, x Sta. Maria 2, x Stephens, x SUL482, x SUL560, x Taborda 1, x Terceira 22, x Terra Condomínio, x TESTE, x The Avenue, x The Breeze, x The Corner, x The Frame, x The GreenPeak, x The Hill, x The Principado, x The Twelve, x The View II, x The Vines, x ToLive, x Tribute 170, x True Living, x Unico, x Unique Belem, x Unique Porto, x Urban Living, x Urban Terrazza, x Vale Pisão, x Valmonte Caxias, x Varandas de Cabanas, x Varandas de Cabanas II, x Vertice, x Vieira da Silva, x Vila Graça, x Vila Nova Parque, x Vila Tijolo, x Vilabranca 32, x Vilamoura Parque, x Vilas da Madalena, x Vilas Mar e Sol, x Villa Citrina, x Villa dos Coches, x Villa Infante, x Villas do Campo, x Villas do Goulão, x Vinhas, x Vintage 18, x Vista Mar, x Vista Mar Residences, x Vista Mar Residences 2, x Vistabella, x Vivva+Setúbal)"
          },
          {
            "name": "WithVideos",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Recherche uniquement les propriétés disposant de vidéos. À appliquer lorsque l’utilisateur mentionne des expressions telles que 'avec vidéo', 'avec vidéos', 'a vidéo', 'a vidéos', 'voir la vidéo du bien', 'voir vidéo en ligne', etc."
          },
          {
            "name": "WithBluePrints",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Recherche uniquement les propriétés disposant de plans (blueprints). Appliquer lorsque l'utilisateur mentionne 'avec plan', 'a des plans', 'plans de la maison', 'plan de la propriété', 'plan du rez-de-chaussée', 'voir plan', etc."
          },
          {
            "name": "WithVirtualVisits",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Recherche uniquement les biens disposant de visites virtuelles. À appliquer lorsque l'utilisateur mentionne 'visite virtuelle', 'tour virtuel', 'visite 3D', 'tour interactif', 'parcours virtuel', 'expérience virtuelle', 'visualisation virtuelle', 'voir la visite virtuelle en ligne'."
          },
          {
            "name": "With360Photos",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Recherche uniquement les propriétés disposant de photos 360º. Appliquer lorsque l'utilisateur mentionne 'avec photos 360º', 'a photos 360º', 'avec photos panoramiques', 'a photos panoramiques', 'voir photos 360º en ligne', etc."
          },
          {
            "name": "FeaturesNames",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Caractéristiques du bien, y compris les commodités, services et points d'intérêt à proximité, ainsi que les types de vues pour fournir une description complète et détaillée de la propriété (Accès à la terre, Aéroport, Alarme, Amarrage, Annexes, Ascenseur, Aspirateur centralisé, Attic, Autoroute, Aveuglés électriques, Bain turc, Bank, Bar, Barbecue, Barn, barrage, Bâtiment, Bibliothèque, Blanchisserie, Campagne, Canteen, Cave, Cave à vin, CCTV, Centre commercial, Centre-Ville, Chambre d'hôtes, Chaudière, Chauffage central, Chauffage électrique, Cheminée, Cité de cuisine, Classe de taxi, Climatisation, Climatisation pré-installation, Closet, Coffre-fort, Complexe marin, Complexe sportif, Connexion Wi-Fi, Corner, Court de tennis, Co-working, Cuisine, Cuisine équipée, Détecteur d &apos; intrus, Détecteur de fumée, Détecteurs de gaz, Détection des incendies, Détection des inondations, Display, Domotics, Double verre, Douche, Drainage, Eau, Eau chaude, Eau chaude électrique, Eau chaude solaire, Eaux usées publiques, École, Ejendommen har kontor, Électricité, Électricité 3 phases, Eletric fence, Entrée vidéo, Espace ouvert, Espaces verts, Esplanade, Excellent accès, Extraction de fumée, Fence, Fruits, Garage, Garde-manger, Gaz, Gaz en bouteille, Gaz naturel, Gaz pulvérisé, Générateur, Golf, Gym, Gymnase, Hôpital, Hypermarché, Induction hob, Internet, Internet Pre-Installation, Isolation acustique, Isolation temporaire, Jacuzzi, Jardin, Jardin d'hiver, Jetty, Kitchenette, Lac, Large gamme de services, Lave-vaisselle, Lumière naturelle, Machine à laver, Maison de stockage, Manouver area, Marché, Mer, Métro, Meublé, Micro-ondes, Modular cabinets, Montagne, Mur, Musique d'ambiance, Orientation solaire, Oven, Panneaux solaires, Parking, Parking public, Parking routier, Petrol station, Pharmacie, Piscine, Piscine partagée, Piscines, Plage, Planche à repasser, Plat satellite, Playground, Plot, Police, Porch, Port de la rivière, Portail électrique, Porte blindée, Porte de blast, Porte haute sécurité, Porte serviettes chauffées, Pre-installation alarm, Pre-installation background music, Pré-installation de la cheminée, Pré-installation de la télévision par câble, Pré-installation de panneaux solaires, Pré-installation du vide central, Près de la mer, Pression de vin, Public lighting, Quais de chargement, Rack de vélo, Ramp, Réception, Réchaud électrique, Réfrigérateur, Rivière, Salle à manger, Salle de bain, Salle de bain partagée, Salle de bain privée, Salle de change du personnel, Salle de conférence, Salle de dressage, Salle de fête, Salle de jeux, Salle de réunion, Salon, Sauna, Sea port, Sèche-linge, Service d &apos; entretien, Service de jardin, Service de nettoyage, Service de sécurité, Shed, Solarium, Sols radiants, Station d &apos; incendie, Station de bus, Stove, Suite, Surveillance 24h, Téléphone, Télévision par câble, Terrain de golf, Terrasse, Toile verte, Trade Zone, Traitement de l &apos; eau, Transports Publics, Tub, Type de terrain (Pente), Unité de récupération de chaleur, Vaccum, Verre miroir, Verre sombre, Vidéo surveillance, Vignoble, Ville, Whirlpool baignoire, Zone d &apos; administration, Zone historique, Zone réfrigérée)"
          },
          {
            "name": "Page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Numéro de page à retourner dans les résultats de recherche."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/detail": {
      "get": {
        "summary": "Récupère les informations détaillées d’un bien immobilier.",
        "description": "Récupère les informations détaillées d’un bien immobilier.",
        "operationId": "mcpDetail",
        "parameters": [
          {
            "name": "ListingId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "ID de la propriété pour contact."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Référence interne du bien utilisée pour l'identification."
          },
          {
            "name": "DevelopmentFractions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Indique si la recherche doit prendre en compte les unités d’un programme immobilier (par exemple des appartements ou des commerces) plutôt que le programme dans son ensemble. Lorsqu’elle est activée, les résultats incluent uniquement les unités associées à un programme."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/lead": {
      "get": {
        "summary": "Soumettre un formulaire de contact pour une annonce spécifique.",
        "description": "Soumettre un formulaire de contact pour une annonce spécifique.",
        "operationId": "mcpLead",
        "parameters": [
          {
            "name": "ListingId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "ID de la propriété pour contact."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Référence interne du bien utilisée pour l'identification."
          },
          {
            "name": "Name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Nom de l'utilisateur., (est requis)"
          },
          {
            "name": "Email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Adresse email de l'utilisateur (obligatoire si aucun numéro de téléphone n'est fourni)., (est requis)"
          },
          {
            "name": "Phone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Numéro de téléphone de l'utilisateur (optionnel si l'adresse email est fournie)."
          },
          {
            "name": "PhoneCountryCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Code pays du téléphone incluant le signe plus, par exemple, \"+33\" pour la France, \"+351\" pour le Portugal."
          },
          {
            "name": "Message",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Message personnalisé de l'utilisateur."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeadResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/companyinfo": {
      "get": {
        "summary": "Permet d’obtenir les coordonnées de l’entreprise, y compris le nom de l’agence, l’adresse, le téléphone et l’e-mail. Idéal pour afficher des informations institutionnelles ou permettre à l’utilisateur de contacter l’agence.",
        "description": "Permet d’obtenir les coordonnées de l’entreprise, y compris le nom de l’agence, l’adresse, le téléphone et l’e-mail. Idéal pour afficher des informations institutionnelles ou permettre à l’utilisateur de contacter l’agence.",
        "operationId": "mcpCompanyInfo",
        "parameters": [
          {
            "name": "CompanyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identifiant de l’entreprise/agence à consulter (optionnel, utilise celui de l’entreprise par défaut)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyInfoWithAgenciesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/rasorinfo": {
      "get": {
        "summary": "Permet d’obtenir les coordonnées du conseiller immobilier, y compris le nom, le téléphone, l’e-mail et l’adresse. Idéal pour afficher les informations de contact du conseiller ou permettre à l’utilisateur de le contacter.",
        "description": "Permet d’obtenir les coordonnées du conseiller immobilier, y compris le nom, le téléphone, l’e-mail et l’adresse. Idéal pour afficher les informations de contact du conseiller ou permettre à l’utilisateur de le contacter.",
        "operationId": "mcpRasorInfo",
        "parameters": [
          {
            "name": "RasorName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Nom du conseiller immobilier pour lequel des informations détaillées sont demandées."
          },
          {
            "name": "StateName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Permet de rechercher des conseillers par district."
          },
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Permet de rechercher des conseillers par commune."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RasorInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/imicalculator": {
      "get": {
        "summary": "Permet de déterminer la valeur de la taxe municipale sur les biens immobiliers (IMI) en fonction des données fournies par l'utilisateur. Ce service valide la commune indiquée, identifie le coefficient applicable, traite la Valeur Patrimoniale Imposable (VPT), le nombre de personnes à charge et la nature du bien (urbain ou rural), et renvoie le montant final de l'IMI à payer conformément aux règles fiscales en vigueur au Portugal.",
        "description": "Permet de déterminer la valeur de la taxe municipale sur les biens immobiliers (IMI) en fonction des données fournies par l'utilisateur. Ce service valide la commune indiquée, identifie le coefficient applicable, traite la Valeur Patrimoniale Imposable (VPT), le nombre de personnes à charge et la nature du bien (urbain ou rural), et renvoie le montant final de l'IMI à payer conformément aux règles fiscales en vigueur au Portugal.",
        "operationId": "mcpImiCalculator",
        "parameters": [
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Nom de la commune où se trouve le bien. Ce champ est obligatoire pour l'identification géographique et la détermination du taux d'IMI. Exemple : \"Lisbonne\", \"Porto\", \"Sintra\", \"Albufeira\"."
          },
          {
            "name": "TaxableValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "format": "decimal"
            },
            "description": "Valeur patrimoniale imposable du bien (VPT), telle qu’enregistrée auprès de l’Autorité Fiscale portugaise. Il s’agit de la valeur fiscale officielle servant de base au calcul de l’IMI. Elle doit être un nombre décimal positif exprimé en euros. Exemple : \"185000.00\"."
          },
          {
            "name": "DependentsNumber",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Nombre de personnes à charge dans le foyer fiscal du contribuable pour l’année de référence. Cela inclut les enfants, les parents âgés ou d’autres personnes légalement reconnues pouvant donner droit à une réduction ou exonération de l’IMI. Valeurs valides : entier ≥ 0. Exemple : \"2\"."
          },
          {
            "name": "IsUrban",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Indique si le bien est classé comme urbain ou rural. Les biens urbains sont soumis à l’IMI, tandis que les biens ruraux peuvent être soumis à des règles fiscales différentes. Exemple : true/false."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IMIResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/servicesinfo": {
      "get": {
        "summary": "Description de l’endpoint fournissant des informations complètes sur les services disponibles pour un profil client.",
        "description": "Description de l’endpoint fournissant des informations complètes sur les services disponibles pour un profil client.",
        "operationId": "mcpServicesInfo",
        "parameters": [
          {
            "name": "CompanyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Identifiant de l’entreprise/agence à consulter (optionnel, utilise celui de l’entreprise par défaut)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesInfoResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}