# prescriptio_permis

Permis de construire, d'amenager et de demolir (base officielle Sitadel, historique national). Filtrer par localisation (commune / dept / region), type_permis (PC construire, DP declaration prealable, PA amenager, PD demolir) et etat (autorise, commence, termine, annule). `query` = mots-cles libres (destination, nature des travaux, localite). Fournir au moins `query` OU `localisation`. ATTENTION : la surface de plancher est souvent absente de la source — jauger la taille du projet avec fields.logements_crees en repli. Exemple : { "localisation": { "dept": "69" }, "type_permis": "PC", "etat": "autorise" }.

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

## Entrée MCP

```json
{
  "properties": {
    "cursor": {
      "description": "Pagination : repasser tel quel le `next_cursor` de la page precedente. Omettre pour la premiere page.",
      "type": "string"
    },
    "etat": {
      "description": "Etat du dossier : autorise, chantier commence, chantier termine, annule.",
      "enum": [
        "autorise",
        "commence",
        "termine",
        "annule"
      ],
      "type": "string"
    },
    "limit": {
      "description": "Resultats par page (defaut 20, max 50).",
      "maximum": 50,
      "minimum": 1,
      "type": "integer"
    },
    "localisation": {
      "description": "Zone geographique. UNE granularite : { region } (couvre tous ses departements en un appel — ne jamais les enumerer) OU { dept } OU { commune } (combinable avec dept pour lever un homonyme). National = OMETTRE localisation (jamais dept:\"all\" ni \"france\").",
      "properties": {
        "commune": {
          "description": "Nom de commune (accents/casse ignores), code postal ou code INSEE. Arrondissements de Paris/Lyon/Marseille inclus automatiquement.",
          "type": "string"
        },
        "dept": {
          "description": "Code departement : 2 chiffres (\"69\"), \"2A\"/\"2B\", ou DOM \"971\"-\"976\".",
          "type": "string"
        },
        "insee": {
          "description": "Code INSEE exact issu de la carte. Prioritaire sur commune; jamais interprété comme code postal.",
          "pattern": "^(?:[0-9]{5}|2[A-Ba-b][0-9]{3})$",
          "type": "string"
        },
        "region": {
          "description": "Nom officiel de region (ex. \"Auvergne-Rhone-Alpes\", \"Ile-de-France\").",
          "type": "string"
        }
      },
      "type": "object"
    },
    "query": {
      "description": "Mots-cles libres (destination, nature des travaux, localite). Pour filtrer par commune, preferer localisation.commune.",
      "type": "string"
    },
    "type_permis": {
      "description": "PC = permis de construire, DP = declaration prealable, PA = permis d'amenager, PD = permis de demolir.",
      "enum": [
        "PC",
        "DP",
        "PA",
        "PD"
      ],
      "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).
