{
 "version": 1,
 "site": "https://codice-ape.pages.dev",
 "langue": "it",
 "outils": [
  {
   "name": "describe_dataset",
   "description": "Décrit le jeu : couverture, source officielle, licence, date de collecte et clés de jointure.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "chemin": "/api/v1/manifest.json",
   "url": "https://codice-ape.pages.dev/api/v1/manifest.json",
   "statut": "servi",
   "annotations": {
    "readOnlyHint": true
   }
  },
  {
   "name": "get_sample",
   "description": "Rend un extrait réel du jeu, pour juger sa forme avant de le demander.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "chemin": "/api/v1/echantillon.json",
   "url": "https://codice-ape.pages.dev/api/v1/echantillon.json",
   "statut": "servi",
   "annotations": {
    "readOnlyHint": true
   }
  },
  {
   "name": "resolve_code",
   "description": "Rende l'attestato che porta questo codice : classe, indici, superficie, impianto, interventi raccomandati e classe raggiungibile. ⚠️ La fiche vit dans un fragment DÉSIGNÉ PAR HACHAGE : appeler le serveur MCP, ou appliquer la recette `resolution` ci-dessous.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "code": {
      "type": "string",
      "description": "codice identificativo dell'APE (13 cifre, 14 per Monza e Brianza)"
     }
    },
    "required": [
     "code"
    ]
   },
   "url": "https://mcp-registres.cloudflare33-7aa.workers.dev/mcp",
   "chemin": "/api/v1/tools.json",
   "appel": {
    "transport": "mcp",
    "endpoint": "https://mcp-registres.cloudflare33-7aa.workers.dev/mcp",
    "arguments": {
     "registre": "codice-ape",
     "code": "<codice identificativo dell'APE (13 cifre, 14 per Monza e Brianza)>"
    }
   },
   "resolution": {
    "algorithme": "FNV-1a 32 bits",
    "offset_basis": 2166136261,
    "prime": 16777619,
    "module": 2999,
    "chemin_fragment": "/d/{hachage}.json",
    "format_ligne": [
     "codice",
     "data_deposito",
     "comune",
     "istat",
     "classe",
     "ep_gl_nren",
     "ep_gl_ren",
     "emissioni_co2",
     "superficie",
     "epoca_costruzione",
     "zona_climatica",
     "destinazione",
     "motivo",
     "vettore",
     "impianto",
     "anno_impianto",
     "potenza_kw",
     "classe_raggiungibile",
     "ep_raggiungibile",
     "interventi",
     "edificio_simile_nuovo",
     "nzeb"
    ],
    "separateur": "|",
    "note": "hachage = fnv1a(code) modulo module ; le fragment est un tableau de lignes, la clé est le premier champ."
   },
   "statut": "servi",
   "annotations": {
    "readOnlyHint": true
   }
  },
  {
   "name": "get_schema",
   "description": "Rend les champs du jeu avec leur TAUX DE REMPLISSAGE : ce qui est présent, et ce qui manque.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "chemin": "/api/v1/champs.json",
   "url": "https://codice-ape.pages.dev/api/v1/champs.json",
   "statut": "servi",
   "annotations": {
    "readOnlyHint": true
   }
  },
  {
   "name": "request_dataset",
   "description": "Demande le jeu complet ou une extraction. ⚠️ L'agent remplit, un humain envoie.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "email": {
      "type": "string"
     },
     "message": {
      "type": "string"
     },
     "volume": {
      "type": "string"
     }
    },
    "required": [
     "email",
     "message"
    ]
   },
   "chemin": "/pro/",
   "url": "https://codice-ape.pages.dev/pro/",
   "methode": "POST",
   "endpoint": "https://formspree.io/f/xppzalak",
   "appel": {
    "transport": "formulaire",
    "methode": "POST",
    "action": "https://formspree.io/f/xppzalak",
    "champs": [
     "email",
     "message",
     "volume"
    ],
    "note": "L'agent PREPARE l'envoi ; c'est un humain qui le declenche. On n'automatise pas la soumission d'un formulaire au nom de quelqu'un."
   },
   "source_lead": "codice-ape · MCP",
   "statut": "servi",
   "annotations": {
    "readOnlyHint": false,
    "consequentialHint": true
   }
  },
  {
   "name": "changes_since",
   "description": "Ce qui a changé depuis une date. ⚠️ Exige deux captures : tant qu'il n'y en a qu'une, la profondeur utile est zéro.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "chemin": "/api/v1/changements.json",
   "url": "https://codice-ape.pages.dev/api/v1/changements.json",
   "statut": "reserve",
   "annotations": {
    "readOnlyHint": true
   }
  },
  {
   "name": "export_dataset",
   "description": "Décrit le téléchargement de masse : combien de fragments, à quelle adresse, dans quel format. Gratuit.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "chemin": "/api/v1/jeu-complet.json",
   "url": "https://codice-ape.pages.dev/api/v1/jeu-complet.json",
   "statut": "servi",
   "annotations": {
    "readOnlyHint": true
   }
  }
 ],
 "paiement": {
  "statut": "non_active",
  "note": "Les pages HTML et les outils qui les lisent sont gratuits et le restent. Seule la couche FABRIQUÉE — réconciliation, croisement, historique — peut être tarifée."
 }
}