Logements neufs des promoteurs partenaires de M2 : programmes, lots, prix et disponibilités.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Vérifie le statut commercial actuel (`available` disponible, `on_hold` optionné, `reserved` réservé, `sold` vendu) d'un ou plusieurs lots, avec la date de dernière mise à jour transmise par le promoteur et un indice de fiabilité (`high` < 24 h, `medium` < 72 h, `low` au-delà). Utiliser avant de recommander un lot ou de proposer une mise en relation, et quand l'acquéreur demande si un logement est toujours disponible.
Identifiants des lots à vérifier.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http offres https://app-promoters.m2agent.co/mcp/offres
Vérifie le statut commercial actuel (`available` disponible, `on_hold` optionné, `reserved` réservé, `sold` vendu) d'un ou plusieurs lots, avec la date de dernière mise à jour transmise par le promoteur et un indice de fiabilité (`high` < 24 h, `medium` < 72 h, `low` au-delà). Utiliser avant de recommander un lot ou de proposer une mise en relation, et quand l'acquéreur demande si un logement est toujours disponible.
| Argument | Type | Description |
|---|---|---|
| lot_ids* | array | Identifiants des lots à vérifier. |
{
"type": "object",
"required": [
"lot_ids"
],
"properties": {
"lot_ids": {
"type": "array",
"items": {
"type": "integer"
},
"maxItems": 20,
"minItems": 1,
"description": "Identifiants des lots à vérifier."
}
}
}Affiche un tableau comparatif de 2 à 4 lots (prix, surface, extérieur, étage, livraison, points forts, statut et fraîcheur). Pour formuler une recommandation, renseigner `recommended_lot_id` avec le lot le plus adapté au projet exprimé par l'acquéreur (résidence principale, investissement, budget…) et `reasons` avec 2 à 4 justifications courtes, fondées uniquement sur les données des lots comparés. La recommandation est mise en évidence dans le tableau. Le tableau se termine par un formulaire de mise en relation (nom, e-mail, téléphone, projet, créneau, message) qui transmet directement la demande au conseiller : ne pas redemander ces informations dans la conversation, inviter l'acquéreur à utiliser le formulaire. Le tableau est affiché directement à l'utilisateur : ne pas le recopier dans la réponse.
| Argument | Type | Description |
|---|---|---|
| lot_ids* | array | Identifiants des lots à comparer, dans l'ordre d'affichage. |
| reasons | array | Raisons courtes justifiant la recommandation, ex. « Un bon équilibre entre prix, surface et terrasse ». |
| recommended_lot_id | integer | Identifiant du lot recommandé pour le projet de l'acquéreur (optionnel). |
{
"type": "object",
"required": [
"lot_ids"
],
"properties": {
"lot_ids": {
"type": "array",
"items": {
"type": "integer"
},
"maxItems": 4,
"minItems": 2,
"description": "Identifiants des lots à comparer, dans l'ordre d'affichage."
},
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"description": "Raisons courtes justifiant la recommandation, ex. « Un bon équilibre entre prix, surface et terrasse »."
},
"recommended_lot_id": {
"type": "integer",
"description": "Identifiant du lot recommandé pour le projet de l'acquéreur (optionnel)."
}
}
}Transmet une demande de mise en relation avec un conseiller commercial du promoteur, à propos d'un lot ou d'un programme. N'appeler qu'après accord explicite de l'acquéreur, avec les coordonnées qu'il a lui-même fournies dans la conversation (ne jamais les inventer). Le conseiller recontacte l'acquéreur ; aucun rendez-vous n'est confirmé par cet outil.
| Argument | Type | Description |
|---|---|---|
| name* | string | Nom et prénom de l'acquéreur. |
| email* | string | E-mail de l'acquéreur. |
| phone | string | Téléphone de l'acquéreur. |
| budget | integer | Budget d'achat TTC en euros, s'il a été exprimé par l'acquéreur. |
| lot_id | integer | Lot concerné. Requis si program_id est absent. |
| channel | string | Origine de la demande : `conversation` (défaut) ou `comparison_form` (formulaire du comparatif). |
| message | string | Contexte utile au conseiller (critères, questions, financement…). |
| purpose | string | Nature du projet d'achat. |
| incentive | string |
Renvoie la fiche complète d'un lot : surface, étage, extérieur, orientation, parking, plan, prix, statut et fraîcheur de la donnée, ainsi que le programme (adresse, livraison, prestations, points forts, dispositifs éligibles). Utiliser quand l'acquéreur veut « voir le détail » d'un logement.
| Argument | Type | Description |
|---|---|---|
| lot_id* | integer | Identifiant du lot (champ `id` renvoyé par search_lots). |
{
"type": "object",
"required": [
"lot_id"
],
"properties": {
"lot_id": {
"type": "integer",
"description": "Identifiant du lot (champ `id` renvoyé par search_lots)."
}
}
}Renvoie la présentation d'un programme immobilier neuf (promoteur, localisation, description, livraison, prestations, points forts, dispositifs éligibles) et la liste de ses lots disponibles. Utiliser quand l'acquéreur s'intéresse à une résidence dans son ensemble plutôt qu'à un lot précis.
| Argument | Type | Description |
|---|---|---|
| program_id* | integer | Identifiant du programme (champ `program.id` d'un lot). |
{
"type": "object",
"required": [
"program_id"
],
"properties": {
"program_id": {
"type": "integer",
"description": "Identifiant du programme (champ `program.id` d'un lot)."
}
}
}Liste les promoteurs partenaires de M2 présents dans le catalogue, avec leur nombre de programmes et de lots disponibles. Utiliser pour identifier un promoteur cité par l'acquéreur avant de filtrer search_lots.
No arguments.
{
"type": "object",
"properties": {}
}Recherche des logements neufs (lots) dans le catalogue des programmes partenaires de M2, et les affiche sous forme de cartes. Utiliser dès qu'un acquéreur décrit un projet : ville, typologie (T2, T3...), budget, surface, extérieur (terrasse, balcon...), date de livraison, promoteur. Par défaut seuls les lots disponibles sont renvoyés, triés par prix croissant. Chaque lot porte un indicateur de fraîcheur : si `reliability` vaut `low`, prévenir l'utilisateur que la disponibilité doit être confirmée (check_availability). Ne jamais inventer de logement absent des résultats. Ne jamais retirer ni assouplir un critère de l'acquéreur de sa propre initiative : en l'absence de résultat, présenter les pistes d'élargissement renvoyées (`relaxations`) et laisser l'acquéreur choisir. Les cartes sont affichées directement à l'utilisateur : ne pas recopier la liste dans la réponse.
| Argument | Type | Description |
|---|---|---|
| city | string | Ville recherchée, ex. « Lyon ». |
| limit | integer | Nombre maximum de lots renvoyés (1 à 20, 6 par défaut). |
| district | integer | Arrondissement (Paris, Lyon, Marseille), ex. 7 pour Lyon 7e. |
| min_area | number | Surface habitable minimum en m². |
| promoter | string | Nom ou identifiant (`slug`) du promoteur, ex. « LNC ». Voir list_promoters. |
| incentive | string | Dispositif d'aide ou fiscal éligible. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| Dispositif envisagé par l'acquéreur (PTZ, TVA réduite, LMNP), s'il l'a mentionné. |
| program_id | integer | Programme concerné. Requis si lot_id est absent. |
| preferred_callback_time | string | Disponibilités de l'acquéreur pour être rappelé, ex. « mardi après-midi ». |
{
"type": "object",
"required": [
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"description": "Nom et prénom de l'acquéreur."
},
"email": {
"type": "string",
"format": "email",
"description": "E-mail de l'acquéreur."
},
"phone": {
"type": "string",
"description": "Téléphone de l'acquéreur."
},
"budget": {
"type": "integer",
"description": "Budget d'achat TTC en euros, s'il a été exprimé par l'acquéreur."
},
"lot_id": {
"type": "integer",
"description": "Lot concerné. Requis si program_id est absent."
},
"channel": {
"enum": [
"comparison_form",
"conversation"
],
"type": "string",
"description": "Origine de la demande : `conversation` (défaut) ou `comparison_form` (formulaire du comparatif)."
},
"message": {
"type": "string",
"description": "Contexte utile au conseiller (critères, questions, financement…)."
},
"purpose": {
"enum": [
"primary_residence",
"secondary_residence",
"investment"
],
"type": "string",
"description": "Nature du projet d'achat."
},
"incentive": {
"enum": [
"ptz",
"reduced_vat",
"lmnp"
],
"type": "string",
"description": "Dispositif envisagé par l'acquéreur (PTZ, TVA réduite, LMNP), s'il l'a mentionné."
},
"program_id": {
"type": "integer",
"description": "Programme concerné. Requis si lot_id est absent."
},
"preferred_callback_time": {
"type": "string",
"description": "Disponibilités de l'acquéreur pour être rappelé, ex. « mardi après-midi »."
}
}
}| max_price | integer | Prix TTC maximum en euros (budget). |
| min_price | integer | Prix TTC minimum en euros. |
| unit_types | array | Typologies acceptées. |
| outdoor_spaces | array | Types d'extérieur acceptés. |
| min_outdoor_area | number | Surface minimum de l'extérieur en m². |
| include_unavailable | boolean | Inclure les lots optionnés, réservés ou vendus. Faux par défaut. |
| latest_delivery_date | string | Date de livraison maximale (AAAA-MM-JJ). « Livrable en 2027 » → 2027-12-31. |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Ville recherchée, ex. « Lyon »."
},
"limit": {
"type": "integer",
"description": "Nombre maximum de lots renvoyés (1 à 20, 6 par défaut)."
},
"district": {
"type": "integer",
"description": "Arrondissement (Paris, Lyon, Marseille), ex. 7 pour Lyon 7e."
},
"min_area": {
"type": "number",
"description": "Surface habitable minimum en m²."
},
"promoter": {
"type": "string",
"description": "Nom ou identifiant (`slug`) du promoteur, ex. « LNC ». Voir list_promoters."
},
"incentive": {
"enum": [
"ptz",
"reduced_vat",
"lmnp"
],
"type": "string",
"description": "Dispositif d'aide ou fiscal éligible."
},
"max_price": {
"type": "integer",
"description": "Prix TTC maximum en euros (budget)."
},
"min_price": {
"type": "integer",
"description": "Prix TTC minimum en euros."
},
"unit_types": {
"type": "array",
"items": {
"enum": [
"studio",
"T1",
"T2",
"T3",
"T4",
"T5",
"house"
],
"type": "string"
},
"description": "Typologies acceptées."
},
"outdoor_spaces": {
"type": "array",
"items": {
"enum": [
"terrace",
"balcony",
"loggia",
"garden"
],
"type": "string"
},
"description": "Types d'extérieur acceptés."
},
"min_outdoor_area": {
"type": "number",
"description": "Surface minimum de l'extérieur en m²."
},
"include_unavailable": {
"type": "boolean",
"description": "Inclure les lots optionnés, réservés ou vendus. Faux par défaut."
},
"latest_delivery_date": {
"type": "string",
"format": "date",
"description": "Date de livraison maximale (AAAA-MM-JJ). « Livrable en 2027 » → 2027-12-31."
}
}
}