# prescriptio_contacts

Contacts publics du bati (decideurs, prescripteurs, referents). Avec siren (9 chiffres) : les contacts rattaches a une entreprise. Avec query (+ localisation) : rechercher des contacts par nom, fonction ou mots-cles dans une zone. Chaque resultat donne l'identite, la fonction et l'entite rattachee (entreprise ou acheteur public). Les coordonnees (telephone, e-mail) ne sont jamais renvoyees ici : elles se revelent a l'unite cote application.

État : implémenté ; distribution : historique uniquement ; offre payante : false ; effets : lecture.

## Entrée MCP

```json
{
  "properties": {
    "cursor": {
      "description": "Curseur next_cursor de la page precedente, repasse tel quel.",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "type": "integer"
    },
    "localisation": {
      "description": "Zone geographique (mode query), UNE granularite ; filtre le departement de l'entreprise rattachee. National = omettre.",
      "properties": {
        "commune": {
          "description": "Nom de commune, code postal ou code INSEE (ramene au departement).",
          "type": "string"
        },
        "dept": {
          "description": "Code departement : 01-95, 2A/2B ou 971-976.",
          "type": "string"
        },
        "region": {
          "description": "Nom de region — couvre tous ses departements en un appel.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "query": {
      "description": "Nom, fonction ou mots-cles pour rechercher un contact (decideur, prescripteur). UNE requete = UN sujet.",
      "type": "string"
    },
    "siren": {
      "description": "SIREN 9 chiffres : les contacts publics rattaches a cette entreprise (fonction, entite).",
      "pattern": "^\\d{9}$",
      "type": "string"
    }
  },
  "type": "object"
}
```

## Sortie MCP

```json
{
  "properties": {
    "_meta": {
      "type": "object"
    },
    "next_cursor": {
      "description": "À repasser tel quel pour la page suivante ; null s'il n'y en a plus.",
      "type": [
        "string",
        "null"
      ]
    },
    "results": {
      "description": "Résultats de la page courante.",
      "items": {
        "properties": {
          "fields": {
            "description": "Champs propres à la source.",
            "type": "object"
          },
          "id": {
            "description": "Identifiant à citer (SIREN/SIRET, marche_id, réf DECP).",
            "type": "string"
          },
          "resume": {
            "type": "string"
          },
          "titre": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "total_estimated": {
      "description": "Total connu ou estimation signalée par la source ; null si le total est inconnu. Ne jamais extrapoler depuis la taille de la page.",
      "type": [
        "integer",
        "null"
      ]
    }
  },
  "required": [
    "results"
  ],
  "type": "object"
}
```

[Contrats externes et limites](/docs/reference/concepts.md).
