# prescriptio_dce

Pieces d'un dossier de consultation (DCE). marche_id accepte un UUID de marche OU l'annonce_id betterplace. TROIS modes. SOMMAIRE : { marche_id, type } sur un dossier multi-lots renvoie la table des matieres (une ligne par piece, avec pages_estimees). LECTURE : { marche_id, type, filename } renvoie le TEXTE de CETTE piece, pagine (~8000 caracteres ; page / pages_total ; redemander page:2 pour la suite). filename tolere un nom approximatif ("CCTP lot 12", "chape"). LOCALISER : { marche_id, query } dit dans QUELLES pieces le terme apparait — le moyen rapide de trouver le bon lot sans feuilleter. Recherche globale (offre payante) : { query } seul, sur tous les DCE. NE JAMAIS parcourir un dossier page par page : passer par query puis filename. "DCE consultable" = lisible ICI, pas un lien externe : consulter = restituer le texte, jamais un lien invente. Telechargement : prescriptio_dce_download.

État : implémenté ; distribution : connectors-1.0.0 ; offre payante : false ; effets : lecture.

## Entrée MCP

```json
{
  "properties": {
    "filename": {
      "description": "Nom de la piece a lire dans un dossier MULTI-LOTS. Un nom approximatif suffit (ex \"CCTP lot 12\", \"chape\") : il est resolu contre les pieces reelles. Omis sur un dossier multi-lots, l'outil renvoie la TABLE DES MATIERES au lieu de coller tous les fichiers bout a bout.",
      "type": "string"
    },
    "marche_id": {
      "description": "Identifiant du dossier : marche_id (UUID) OU annonce_id betterplace (ex \"2833189\") — les deux sont acceptes. Requis en mode lecture.",
      "type": "string"
    },
    "page": {
      "default": 1,
      "description": "Page de lecture (~8000 caracteres) DANS la piece choisie. pages_total indique le total ; demander page:2, 3... pour la suite. Ne PAS feuilleter un dossier entier page par page : utiliser filename, ou query pour localiser.",
      "minimum": 1,
      "type": "integer"
    },
    "query": {
      "description": "Avec marche_id : cherche DANS ce dossier et renvoie les pieces qui parlent du terme (le moyen rapide de trouver le bon lot). Sans marche_id : recherche semantique globale dans tous les DCE (offre payante).",
      "type": "string"
    },
    "type": {
      "description": "Piece a lire : rc (reglement de consultation), cctp (clauses techniques), ccap (clauses administratives), dpgf/bpu (prix). Requis en lecture ; en recherche, restreint a ce type.",
      "enum": [
        "rc",
        "cctp",
        "ccap",
        "dpgf",
        "bpu"
      ],
      "type": "string"
    }
  },
  "type": "object"
}
```

## Sortie MCP

```json
{
  "properties": {
    "action": {
      "enum": [
        "sommaire_dce",
        "lecture_dce",
        "recherche_dce",
        "recherche_dans_dossier"
      ]
    },
    "count": {
      "type": "integer"
    },
    "doc_type": {
      "type": "string"
    },
    "fichiers": {
      "items": {
        "properties": {
          "filename": {
            "type": "string"
          },
          "pages_estimees": {
            "type": "integer"
          },
          "parties": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "fields": {
      "type": "object"
    },
    "filename": {
      "type": "string"
    },
    "hint": {
      "type": "string"
    },
    "marche_id": {
      "type": "string"
    },
    "ok": {
      "const": true
    },
    "page": {
      "type": "integer"
    },
    "pages_total": {
      "type": "integer"
    },
    "query": {
      "type": "string"
    },
    "results": {
      "items": {
        "properties": {
          "acheteur": {
            "type": [
              "string",
              "null"
            ]
          },
          "doc_type": {
            "type": [
              "string",
              "null"
            ]
          },
          "extrait": {
            "type": "string"
          },
          "filename": {
            "type": "string"
          },
          "lieu": {
            "type": [
              "string",
              "null"
            ]
          },
          "marche_id": {
            "type": "string"
          },
          "titre": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "texte": {
      "type": "string"
    },
    "titre": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "ok",
    "action"
  ],
  "type": "object"
}
```

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