MCP Capabilities
Tools 34
calculate_dose
Description: Calcule la quantité totale de produit nécessaire pour une surface donnée, à partir d'une dose unitaire homologuée. Ne remplace pas la lecture de l'étiquette.
Handler: App\Mcp\Tool\CalculTool::calculateDose()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
doseUnitaire |
number | Yes | - | Dose homologuée par hectare, telle que retournée par get_product_usages |
surfaceHa |
number | Yes | - | Surface à traiter, en hectares |
unite |
string | No |
L/ha
|
Unité de la dose unitaire. Ex: "L/ha", "kg/ha", "g/ha" |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(3) { ["doseUnitaire"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(73) "Dose homologuée par hectare, telle que retournée par get_product_usages" } ["surfaceHa"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(31) "Surface à traiter, en hectares" } ["unite"]=> array(3) { ["type"]=> string(6) "string" ["description"]=> string(55) "Unité de la dose unitaire. Ex: "L/ha", "kg/ha", "g/ha"" ["default"]=> string(4) "L/ha" } } ["required"]=> array(2) { [0]=> string(12) "doseUnitaire" [1]=> string(9) "surfaceHa" } } |
search_knowledge
Description: Recherche dans la base de connaissance : documents, procédures, fiches et notes internes déposés par le client, ainsi que la documentation publiée par Nevya. À utiliser pour toute question portant sur les pratiques, l'organisation, les gammes ou les documents propres à l'utilisateur — typiquement "que dit notre procédure sur…", "quelles variétés recommandons-nous…", "d'après notre documentation…". Ne pas utiliser pour la donnée réglementaire (produits, AMM, usages autorisés, doses, DAR, variétés du catalogue officiel) : elle vient des outils E-Phy et GNIS, qui font seuls autorité. Un extrait de document ne peut jamais élargir un usage ni contredire un retrait.
Handler: App\Mcp\Tool\KnowledgeTool::searchKnowledge()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
question |
string | Yes | - | Question ou termes à rechercher, en langage naturel |
limite |
integer | No |
5
|
Nombre d'extraits souhaités (1 à 10) |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["question"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(52) "Question ou termes à rechercher, en langage naturel" } ["limite"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(38) "Nombre d'extraits souhaités (1 à 10)" ["default"]=> int(5) } } ["required"]=> array(1) { [0]=> string(8) "question" } } |
get_product_by_amm
Description: Retourne les détails d'un produit phytopharmaceutique à partir de son numéro AMM : titulaire, état d'autorisation, date de retrait, noms commerciaux, substances actives et usages. Ex: 7700385
Handler: App\Mcp\Tool\ProductTool::getByAmm()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
amm |
string | Yes | - | Numéro AMM du produit, 7 chiffres. Ex: "7700385" |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["amm"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(49) "Numéro AMM du produit, 7 chiffres. Ex: "7700385"" } } ["required"]=> array(1) { [0]=> string(3) "amm" } } |
search_products
Description: Recherche des produits phytopharmaceutiques par nom commercial, AMM ou titulaire. Tous les mots de la recherche doivent correspondre. Minimum 3 caractères.
Handler: App\Mcp\Tool\ProductTool::searchProducts()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | Termes recherchés dans le nom commercial, le numéro AMM ou le titulaire. Chaque mot doit correspondre. Minimum 3 caractères |
limit |
integer | No |
20
|
Nombre maximum de produits retournés, entre 1 et 100 |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["query"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(126) "Termes recherchés dans le nom commercial, le numéro AMM ou le titulaire. Chaque mot doit correspondre. Minimum 3 caractères" } ["limit"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(53) "Nombre maximum de produits retournés, entre 1 et 100" ["default"]=> int(20) } } ["required"]=> array(1) { [0]=> string(5) "query" } } |
get_product_usages
Description: Retourne les usages d'un produit à partir de son AMM : culture, cible, dose retenue et unité, DAR, stades, nombre d'applications, état de l'usage et dates de fin d'utilisation.
Handler: App\Mcp\Tool\ProductTool::getUsages()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
amm |
string | Yes | - | Numéro AMM du produit, 7 chiffres. Ex: "7700385" |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["amm"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(49) "Numéro AMM du produit, 7 chiffres. Ex: "7700385"" } } ["required"]=> array(1) { [0]=> string(3) "amm" } } |
get_product_substances
Description: Retourne la composition en substances actives d'un produit à partir de son AMM : nom de la substance, teneur en substance active pure et unité.
Handler: App\Mcp\Tool\ProductTool::getSubstances()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
amm |
string | Yes | - | Numéro AMM du produit, 7 chiffres. Ex: "7700385" |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["amm"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(49) "Numéro AMM du produit, 7 chiffres. Ex: "7700385"" } } ["required"]=> array(1) { [0]=> string(3) "amm" } } |
check_cmr
Description: Indique si un produit est classé CMR (cancérogène, mutagène, reprotoxique) de catégorie 1 ou 2, et retourne les phrases de risque qui le justifient.
Handler: App\Mcp\Tool\RisqueTool::checkCmr()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
amm |
string | Yes | - | Numéro AMM du produit, 7 chiffres. Ex: "7700385" |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["amm"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(49) "Numéro AMM du produit, 7 chiffres. Ex: "7700385"" } } ["required"]=> array(1) { [0]=> string(3) "amm" } } |
list_products_by_cmr
Description: Liste les produits phytopharmaceutiques classés CMR de catégorie 1 ou 2, avec leur état d'autorisation. Résultats paginés.
Handler: App\Mcp\Tool\RisqueTool::listProductsByCmr()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
categorie |
integer | Yes | - | Catégorie CMR recherchée : 1 (avérée ou présumée) ou 2 (suspectée) |
limit |
integer | No |
20
|
Nombre maximum de produits retournés, entre 1 et 100 |
offset |
integer | No |
0
|
Rang de départ, pour parcourir les résultats suivants |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(3) { ["categorie"]=> array(2) { ["type"]=> string(7) "integer" ["description"]=> string(73) "Catégorie CMR recherchée : 1 (avérée ou présumée) ou 2 (suspectée)" } ["limit"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(53) "Nombre maximum de produits retournés, entre 1 et 100" ["default"]=> int(20) } ["offset"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(55) "Rang de départ, pour parcourir les résultats suivants" ["default"]=> int(0) } } ["required"]=> array(1) { [0]=> string(9) "categorie" } } |
validate_mix
Description: Vérifie si plusieurs produits phytopharmaceutiques peuvent être mélangés, au regard de leurs phrases de risque. Retourne le verdict et les couples de phrases incompatibles. Ne dispense pas de vérifier les étiquettes.
Handler: App\Mcp\Tool\RisqueTool::validateMix()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
amms |
array | Yes | - | Numéros AMM des produits envisagés dans le mélange, 2 minimum. Ex: ["7700385", "2000123"] |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["amms"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(92) "Numéros AMM des produits envisagés dans le mélange, 2 minimum. Ex: ["7700385", "2000123"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } } ["required"]=> array(1) { [0]=> string(4) "amms" } } |
analyze_crop_diversity
Description: Analyse la diversité d'une rotation de cultures selon standards internationaux. Retourne Simpson Diversity, Shannon Index, Pielou's Evenness, couverture sol, et recommandations pour améliorer la diversité.
Handler: App\Mcp\Tool\RotationAdvisoryTool::analyzeCropDiversity()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
crop_sequence |
array | Yes | - | Séquence de cultures. Ex: ["Maïs", "Blé", "Colza", "Luzerne"] |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["crop_sequence"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(64) "Séquence de cultures. Ex: ["Maïs", "Blé", "Colza", "Luzerne"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } } ["required"]=> array(1) { [0]=> string(13) "crop_sequence" } } |
assess_phytosanitary_risk
Description: Évalue les risques de maladies et ravageurs selon la rotation. Retourne score de risque global, détail par pathogène, effet de la rotation sur chaque maladie, et recommandations de gestion phytosanitaire.
Handler: App\Mcp\Tool\RotationAdvisoryTool::assessPhytosanitaryRisk()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
crop_sequence |
array | Yes | - | Séquence de cultures. Ex: ["Maïs", "Blé", "Colza"] |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["crop_sequence"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(53) "Séquence de cultures. Ex: ["Maïs", "Blé", "Colza"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } } ["required"]=> array(1) { [0]=> string(13) "crop_sequence" } } |
calculate_nitrogen_balance
Description: Calcule le bilan azoté d'une rotation: apports légumineuses vs besoins cultures, réduction engrais chimiques estimée, et recommandations de fertilisation.
Handler: App\Mcp\Tool\RotationAdvisoryTool::calculateNitrogenBalance()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
crop_sequence |
array | Yes | - | Séquence de cultures. Ex: ["Maïs", "Blé", "Pois", "Colza"] |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["crop_sequence"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(61) "Séquence de cultures. Ex: ["Maïs", "Blé", "Pois", "Colza"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } } ["required"]=> array(1) { [0]=> string(13) "crop_sequence" } } |
analyze_carbon_impact
Description: Analyse l'impact carbone d'une rotation: empreinte nette, séquestration, puits/source de carbone, estimation accumulation carbone du sol sur 50 ans, et recommandations pour améliorer le bilan carbone.
Handler: App\Mcp\Tool\RotationAdvisoryTool::analyzeCarbonImpact()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
crop_sequence |
array | Yes | - | Séquence de cultures. Ex: ["Blé", "Luzerne", "Maïs", "Trèfle"] |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["crop_sequence"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(66) "Séquence de cultures. Ex: ["Blé", "Luzerne", "Maïs", "Trèfle"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } } ["required"]=> array(1) { [0]=> string(13) "crop_sequence" } } |
score_sustainability
Description: Score de durabilité multi-critères selon standards RSB/USDA/SARE. Retourne score global (0-100), scores par dimension (diversité, phytosanitaire, azote, carbone, santé sol), niveau certification (Bronze à Platinum), et recommandations.
Handler: App\Mcp\Tool\RotationAdvisoryTool::scoreSustainability()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
crop_sequence |
array | Yes | - | Séquence de cultures. Ex: ["Maïs", "Blé", "Luzerne", "Colza"] |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["crop_sequence"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(64) "Séquence de cultures. Ex: ["Maïs", "Blé", "Luzerne", "Colza"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } } ["required"]=> array(1) { [0]=> string(13) "crop_sequence" } } |
recommend_next_crops
Description: Recommande les meilleures cultures suivantes pour continuer la rotation. Analyse chaque candidate et retourne classement par score global, avec scores détaillés par dimension et bénéfices spécifiques.
Handler: App\Mcp\Tool\RotationAdvisoryTool::recommendNextCrops()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
crop_sequence |
array | Yes | - | Séquence de cultures actuelle. Ex: ["Maïs", "Blé", "Colza"] |
num_recommendations |
integer | No |
5
|
Nombre de cultures à recommander (défaut: 5) |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["crop_sequence"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(62) "Séquence de cultures actuelle. Ex: ["Maïs", "Blé", "Colza"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } ["num_recommendations"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(46) "Nombre de cultures à recommander (défaut: 5)" ["default"]=> int(5) } } ["required"]=> array(1) { [0]=> string(13) "crop_sequence" } } |
analyze_rotation_comprehensive
Description: Analyse complète d'une rotation: diversité, risques phytosanitaires, bilan azoté, carbone, scoring durabilité, et recommandations cultures suivantes. Résumé 360° en un appel.
Handler: App\Mcp\Tool\RotationAdvisoryTool::analyzeRotationComprehensive()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
crop_sequence |
array | Yes | - | Séquence de cultures. Ex: ["Maïs", "Blé", "Luzerne", "Colza"] |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["crop_sequence"]=> array(3) { ["type"]=> string(5) "array" ["description"]=> string(64) "Séquence de cultures. Ex: ["Maïs", "Blé", "Luzerne", "Colza"]" ["items"]=> array(1) { ["type"]=> string(6) "string" } } } ["required"]=> array(1) { [0]=> string(13) "crop_sequence" } } |
get_parcel_rotation_history
Description: Récupère l'historique réel des cultures 2015-2024 (données RPG/IGN-ASP) pour la parcelle contenant les coordonnées données. Retourne found=false si aucune parcelle RPG ne couvre ce point (zone non agricole ou hors couverture).
Handler: App\Mcp\Tool\RpgRotationDataTool::getParcelRotationHistory()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude WGS84 (ex: 46.67) |
longitude |
number | Yes | - | Longitude WGS84 (ex: 5.55) |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(26) "Latitude WGS84 (ex: 46.67)" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(26) "Longitude WGS84 (ex: 5.55)" } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
get_regional_rotation_stats
Description: Statistiques réelles de rotation pour un département (RPG/IGN-ASP 2015-2024) : transitions crop-to-crop les plus fréquentes et rotations les plus courantes.
Handler: App\Mcp\Tool\RpgRotationDataTool::getRegionalRotationStats()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
code_dept |
string | Yes | - | Code département INSEE (ex: "39", "2A", "971") |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["code_dept"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(47) "Code département INSEE (ex: "39", "2A", "971")" } } ["required"]=> array(1) { [0]=> string(9) "code_dept" } } |
analyze_parcel_rotation_comprehensive
Description: Récupère l'historique réel de rotation d'une parcelle par coordonnées puis l'analyse complètement (diversité, risques phytosanitaires, azote, carbone, durabilité, recommandations) via RotationAnalyzer. Ancre l'analyse sur des données de terrain réelles plutôt qu'une séquence hypothétique.
Handler: App\Mcp\Tool\RpgRotationDataTool::analyzeParcelRotationComprehensive()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude WGS84 (ex: 46.67) |
longitude |
number | Yes | - | Longitude WGS84 (ex: 5.55) |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(26) "Latitude WGS84 (ex: 46.67)" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(26) "Longitude WGS84 (ex: 5.55)" } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
spray_conditions_advisory
Description: Évalue les conditions de pulvérisation basées sur les seuils réglementaires officiels (température, humidité, vent, pluie). Retourne un verdict: favorable/acceptable/unfavorable/forbidden.
Handler: App\Mcp\Tool\SprayAdvisoryTool::getSprayAdvisory()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude de la parcelle |
longitude |
number | Yes | - | Longitude de la parcelle |
product |
null|string | No |
|
Nom du produit ou type (optionnel: herbicide, fongicide, insecticide) |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(3) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(23) "Latitude de la parcelle" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(24) "Longitude de la parcelle" } ["product"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(69) "Nom du produit ou type (optionnel: herbicide, fongicide, insecticide)" ["default"]=> NULL } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
search_usages
Description: Recherche les usages phytopharmaceutiques par culture, cible, fonction et/ou traitement, sans connaître le numéro AMM. Retourne les produits correspondants avec dose, DAR et état réglementaire. Par défaut, seuls les usages autorisés de produits autorisés sont retournés. Au moins un critère parmi culture, cible, fonction et traitement est requis. Les noms de culture courants ("colza") sont traduits en groupe d'usage E-Phy ("Crucifères oléagineuses") et la traduction appliquée est rendue dans la réponse. Une réponse vide contient un diagnostic indiquant quel critère n'existe pas : la relancer avec d'autres mots ne changera rien.
Handler: App\Mcp\Tool\UsageTool::searchUsages()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
culture |
null|string | No |
|
Culture visée. Groupe d'usage E-Phy de préférence, un nom courant est traduit automatiquement. Ex: "Crucifères oléagineuses", "colza", "vigne" |
cible |
null|string | No |
|
Bioagresseur visé, correspondance partielle. Ex: "mildiou", "septoriose", "pucerons". Laisser vide pour un désherbage : les usages de désherbage n'ont pas de cible |
fonction |
null|string | No |
|
Fonction du produit, correspondance partielle. Ex: "fongicide", "herbicide", "insecticide" |
traitement |
null|string | No |
|
Type d'intervention. Ex: "Désherbage", "Trt Part.Aer.", "Trt Sem.", "Trt Sol" |
etatUsage |
string | No |
Autorisé
|
État de l'usage recherché. "Autorisé" par défaut, "tous" pour inclure les usages retirés |
etatProduit |
string | No |
AUTORISE
|
État du produit porteur. "AUTORISE" par défaut, "tous" pour inclure les produits retirés |
limit |
integer | No |
20
|
Nombre maximum d'usages retournés, entre 1 et 100 |
Full Schema
| array(2) { ["type"]=> string(6) "object" ["properties"]=> array(7) { ["culture"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(147) "Culture visée. Groupe d'usage E-Phy de préférence, un nom courant est traduit automatiquement. Ex: "Crucifères oléagineuses", "colza", "vigne"" ["default"]=> NULL } ["cible"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(166) "Bioagresseur visé, correspondance partielle. Ex: "mildiou", "septoriose", "pucerons". Laisser vide pour un désherbage : les usages de désherbage n'ont pas de cible" ["default"]=> NULL } ["fonction"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(90) "Fonction du produit, correspondance partielle. Ex: "fongicide", "herbicide", "insecticide"" ["default"]=> NULL } ["traitement"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(78) "Type d'intervention. Ex: "Désherbage", "Trt Part.Aer.", "Trt Sem.", "Trt Sol"" ["default"]=> NULL } ["etatUsage"]=> array(3) { ["type"]=> string(6) "string" ["description"]=> string(93) "État de l'usage recherché. "Autorisé" par défaut, "tous" pour inclure les usages retirés" ["default"]=> string(9) "Autorisé" } ["etatProduit"]=> array(3) { ["type"]=> string(6) "string" ["description"]=> string(91) "État du produit porteur. "AUTORISE" par défaut, "tous" pour inclure les produits retirés" ["default"]=> string(8) "AUTORISE" } ["limit"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(50) "Nombre maximum d'usages retournés, entre 1 et 100" ["default"]=> int(20) } } } |
search_products_by_substance
Description: Recherche les produits phytopharmaceutiques contenant une substance active donnée, avec leur teneur et leur état d'autorisation.
Handler: App\Mcp\Tool\UsageTool::searchProductsBySubstance()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
substance |
string | Yes | - | Nom (ou fragment) de la substance active recherchée, minimum 3 caractères. Ex: "glyphosate", "prothioconazole" |
limit |
integer | No |
20
|
Nombre maximum de produits retournés, entre 1 et 100 |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["substance"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(112) "Nom (ou fragment) de la substance active recherchée, minimum 3 caractères. Ex: "glyphosate", "prothioconazole"" } ["limit"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(53) "Nombre maximum de produits retournés, entre 1 et 100" ["default"]=> int(20) } } ["required"]=> array(1) { [0]=> string(9) "substance" } } |
search_especes
Description: Recherche des espèces végétales par nom (insensible à la casse). Minimum 2 caractères.
Handler: App\Mcp\Tool\VarieteTool::searchEspeces()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | Nom (ou fragment) de l'espèce recherchée, minimum 2 caractères. Ex: "orge", "blé" |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["query"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(85) "Nom (ou fragment) de l'espèce recherchée, minimum 2 caractères. Ex: "orge", "blé"" } } ["required"]=> array(1) { [0]=> string(5) "query" } } |
get_varietes_by_espece
Description: Liste les variétés d'une espèce via idEspece (GNIS/Semae) ou codeEspece (EUROPVP). Filtres optionnels : type variétal et âge maximum d'inscription. Résultats paginés.
Handler: App\Mcp\Tool\VarieteTool::getVarietesByEspece()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
idEspece |
null|integer | No |
|
Identifiant GNIS de l'espèce (SEMAE). Mutuellement exclusif avec codeEspece. |
codeEspece |
null|string | No |
|
Code UPOV de l'espèce (EUROPVP). Mutuellement exclusif avec idEspece. |
typeVariete |
null|string | No |
|
Type variétal à filtrer. Ex: "deux rangs", "six rangs", "printemps", "automne", "brassicole" |
maxAge |
null|integer | No |
|
Âge maximum en années depuis l'inscription. Ex: 5 pour les variétés inscrites depuis moins de 5 ans |
limit |
integer | No |
100
|
Nombre maximum de variétés retournées (1 à 500, 100 par défaut) |
offset |
integer | No |
0
|
Rang de départ, pour parcourir les résultats suivants |
Full Schema
| array(2) { ["type"]=> string(6) "object" ["properties"]=> array(6) { ["idEspece"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(7) "integer" } ["description"]=> string(77) "Identifiant GNIS de l'espèce (SEMAE). Mutuellement exclusif avec codeEspece." ["default"]=> NULL } ["codeEspece"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(70) "Code UPOV de l'espèce (EUROPVP). Mutuellement exclusif avec idEspece." ["default"]=> NULL } ["typeVariete"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(94) "Type variétal à filtrer. Ex: "deux rangs", "six rangs", "printemps", "automne", "brassicole"" ["default"]=> NULL } ["maxAge"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(7) "integer" } ["description"]=> string(103) "Âge maximum en années depuis l'inscription. Ex: 5 pour les variétés inscrites depuis moins de 5 ans" ["default"]=> NULL } ["limit"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(68) "Nombre maximum de variétés retournées (1 à 500, 100 par défaut)" ["default"]=> int(100) } ["offset"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(55) "Rang de départ, pour parcourir les résultats suivants" ["default"]=> int(0) } } } |
search_varietes
Description: Recherche des variétés par nom, obtenteur, catalogue ou espèce, avec filtres optionnels d'espèce et de type variétal. Minimum 2 caractères, sauf si un filtre est fourni.
Handler: App\Mcp\Tool\VarieteTool::searchVarietes()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | No |
|
Terme recherché dans le nom, l'obtenteur, le catalogue ou le nom d'espèce, minimum 2 caractères |
espece |
null|string | No |
|
Nom de l'espèce pour restreindre la recherche. Ex: "orge", "blé tendre" |
typeVariete |
null|string | No |
|
Type variétal à filtrer. Ex: "deux rangs", "printemps", "brassicole" |
limit |
integer | No |
20
|
Nombre maximum de variétés retournées (1 à 500, 20 par défaut) |
Full Schema
| array(2) { ["type"]=> string(6) "object" ["properties"]=> array(4) { ["query"]=> array(3) { ["type"]=> string(6) "string" ["description"]=> string(98) "Terme recherché dans le nom, l'obtenteur, le catalogue ou le nom d'espèce, minimum 2 caractères" ["default"]=> string(0) "" } ["espece"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(73) "Nom de l'espèce pour restreindre la recherche. Ex: "orge", "blé tendre"" ["default"]=> NULL } ["typeVariete"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(70) "Type variétal à filtrer. Ex: "deux rangs", "printemps", "brassicole"" ["default"]=> NULL } ["limit"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(67) "Nombre maximum de variétés retournées (1 à 500, 20 par défaut)" ["default"]=> int(20) } } } |
get_variete_detail
Description: Retourne le détail complet d'une variété à partir de son identifiant interne, types variétaux compris.
Handler: App\Mcp\Tool\VarieteTool::getVarieteDetail()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | Yes | - | Identifiant interne de la variété, retourné par search_varietes ou get_varietes_by_espece |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["id"]=> array(2) { ["type"]=> string(7) "integer" ["description"]=> string(92) "Identifiant interne de la variété, retourné par search_varietes ou get_varietes_by_espece" } } ["required"]=> array(1) { [0]=> string(2) "id" } } |
resolve_libelle_ephy
Description: Traduit un terme agricole courant en libellés officiels E-Phy utilisables comme filtres culture, cible ou traitement de search_usages. E-Phy raisonne en groupes d'usages, pas en cultures : "colza" n'existe pas en base, il faut chercher "Crucifères oléagineuses". À appeler AVANT toute recherche portant sur une culture ou une cible dont le libellé officiel n'est pas connu, et systématiquement quand une recherche revient vide, plutôt que de réessayer avec d'autres mots.
Handler: App\Mcp\Tool\VocabulaireTool::resolveLibelleEphy()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
terme |
string | Yes | - | Terme employé par l'utilisateur, à traduire en libellé E-Phy. Ex: "colza", "désherbage", "mildiou", "blé tendre" |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["terme"]=> array(2) { ["type"]=> string(6) "string" ["description"]=> string(117) "Terme employé par l'utilisateur, à traduire en libellé E-Phy. Ex: "colza", "désherbage", "mildiou", "blé tendre"" } } ["required"]=> array(1) { [0]=> string(5) "terme" } } |
list_cultures
Description: Liste les libellés de culture (groupes d'usages) réellement présents dans E-Phy, avec le nombre d'usages porté par chacun. Sert à voir le référentiel complet quand resolve_libelle_ephy ne trouve aucune correspondance.
Handler: App\Mcp\Tool\VocabulaireTool::listCultures()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
filtre |
null|string | No |
|
Filtre optionnel sur le libellé, correspondance partielle. Ex: "choux", "porte graine" |
Full Schema
| array(2) { ["type"]=> string(6) "object" ["properties"]=> array(1) { ["filtre"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(87) "Filtre optionnel sur le libellé, correspondance partielle. Ex: "choux", "porte graine"" ["default"]=> NULL } } } |
weather_current
Description: Récupère les conditions météo actuelles (température, humidité, vent, précipitations).
Handler: App\Mcp\Tool\WeatherTool::getCurrent()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude (ex: 45.123) |
longitude |
number | Yes | - | Longitude (ex: 2.456) |
variables |
null|string | No |
|
Variables optionnelles à retourner (ex: "temperature,humidity") |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(3) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(21) "Latitude (ex: 45.123)" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(21) "Longitude (ex: 2.456)" } ["variables"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(64) "Variables optionnelles à retourner (ex: "temperature,humidity")" ["default"]=> NULL } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
weather_forecast
Description: Récupère les prévisions météo pour les 7 prochains jours (ou N jours).
Handler: App\Mcp\Tool\WeatherTool::getForecast()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude |
longitude |
number | Yes | - | Longitude |
days |
integer | No |
7
|
Nombre de jours de prévision (défaut: 7) |
variables |
null|string | No |
|
Variables optionnelles à retourner |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(4) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(8) "Latitude" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(9) "Longitude" } ["days"]=> array(3) { ["type"]=> string(7) "integer" ["description"]=> string(42) "Nombre de jours de prévision (défaut: 7)" ["default"]=> int(7) } ["variables"]=> array(3) { ["type"]=> array(2) { [0]=> string(4) "null" [1]=> string(6) "string" } ["description"]=> string(35) "Variables optionnelles à retourner" ["default"]=> NULL } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
weather_statistics
Description: Récupère des statistiques météo pour une période (pluie cumulée, températures moyennes, etc.).
Handler: App\Mcp\Tool\WeatherTool::getStatistics()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude |
longitude |
number | Yes | - | Longitude |
period |
string | No |
7d
|
Période : "7d", "30d", "90d" (défaut: "7d") |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(3) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(8) "Latitude" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(9) "Longitude" } ["period"]=> array(3) { ["type"]=> string(6) "string" ["description"]=> string(45) "Période : "7d", "30d", "90d" (défaut: "7d")" ["default"]=> string(2) "7d" } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
weather_agricultural_indicators
Description: Calcule des indicateurs agricoles (gel, chaleur, sécheresse, GDD, stress hydrique).
Handler: App\Mcp\Tool\WeatherTool::getAgriculturalIndicators()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude |
longitude |
number | Yes | - | Longitude |
period |
string | No |
30d
|
Période d'analyse : "7d", "30d", "90d" (défaut: "30d") |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(3) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(8) "Latitude" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(9) "Longitude" } ["period"]=> array(3) { ["type"]=> string(6) "string" ["description"]=> string(56) "Période d'analyse : "7d", "30d", "90d" (défaut: "30d")" ["default"]=> string(3) "30d" } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
weather_frost_risk
Description: Évalue le risque de gel (nombre de jours, température minimale).
Handler: App\Mcp\Tool\WeatherTool::getFrostRisk()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude |
longitude |
number | Yes | - | Longitude |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(8) "Latitude" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(9) "Longitude" } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
weather_water_stress
Description: Évalue le stress hydrique et les besoins d'irrigation.
Handler: App\Mcp\Tool\WeatherTool::getWaterStress()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
latitude |
number | Yes | - | Latitude |
longitude |
number | Yes | - | Longitude |
Full Schema
| array(3) { ["type"]=> string(6) "object" ["properties"]=> array(2) { ["latitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(8) "Latitude" } ["longitude"]=> array(2) { ["type"]=> string(6) "number" ["description"]=> string(9) "Longitude" } } ["required"]=> array(2) { [0]=> string(8) "latitude" [1]=> string(9) "longitude" } } |
Prompts 0
No prompts were registered.
Resources 2
especes
| URI | nevya://referentiel/especes |
|---|---|
| Handler | App\Mcp\Resource\ReferentielResource::especes() |
| Description | Liste des espèces végétales du catalogue semencier (GNIS/Semae + EUPVP), avec idEspece ou codeEspece et le nombre de variétés inscrites. |
| MIME Type | application/json |
types_varietaux
| URI | nevya://referentiel/types-varietaux |
|---|---|
| Handler | App\Mcp\Resource\ReferentielResource::typesVarietaux() |
| Description | Valeurs de type variétal réellement présentes en base (deux rangs, six rangs, printemps, hiver, brassicole, etc.), utilisables comme filtre typeVariete. |
| MIME Type | application/json |
Resource Templates 0
No resource templates were registered.