feat(mcp) : outils MCP Directory (prestataires, contacts, adresses, rapports) #24
Reference in New Issue
Block a user
Delete Branch "feat/mcp-directory-prestataire-contact-address-report"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
Ajoute 20 nouveaux outils MCP dans le module
Directorypour permettre à Claude (ou tout client MCP) de remplir un dossier client / prospect / prestataire complet — onglets Information / Contact / Adresse / Rapport — sans passer par l'UI.Périmètre
CRUD complet (5 outils chacune) sur 4 entités :
create-prestataire,update-prestataire,get-prestataire,list-prestataires,delete-prestatairecreate-contact,update-contact,get-contact,list-contacts,delete-contactcreate-address,update-address,get-address,list-addresses,delete-addresscreate-commercial-report,update-commercial-report,get-commercial-report,list-commercial-reports,delete-commercial-reportEn plus :
get-client,get-prospect,get-prestatairerenvoient désormais un payload enrichi avec les contacts / adresses / rapports liés (un seul appel pour reconstruire l'onglet entier).Règles métier
Contact / Address / CommercialReport: rattachement à exactement un parent parmiclientId,prospectId,prestataireId(validation côté tool).CommercialReport: type validé (note/call/meeting/email),occurredAtparsé enDateTimeImmutable(défaut = aujourd'hui), auteur rempli automatiquement par le listenerCommercialReportAuthorListenerexistant.Address:countryvalidé en ISO 3166 alpha-2 (défautFR).ROLE_ADMINaligné sur les outils MCP Directory existants (create-client,create-prospect, etc.). Pas de migration vers les permissions RBAC fines (directory.*) pour rester cohérent — à faire dans un second temps pour TOUS les outils Directory si besoin.Plumbing
Contact / Address / CommercialReport: ajout defindBy()(l'implémentation Doctrine l'a déjà viaServiceEntityRepository).config/services.yaml: bindings interface → implémentation Doctrine ajoutés pourPrestataire / Contact / Address / CommercialReport(alignés sur le pattern Client/Prospect).App\Shared\Infrastructure\Mcp\Serializerétendu avecprestataire / contact / address / commercialReport / reportDocument.Test plan
php -lsur tous les nouveaux fichiers ✅make test(PHPUnit) : 179 tests OK ✅debug:container) ✅get-prestatairerenvoyant le dossier complet ✅À faire après merge
config/version.yaml+ tagv0.4.x) selon la convention projet.instructionsdu serveur MCP (config/packages/mcp.yaml) pour mentionner les nouvelles entités Directory si pertinent.🤖 Generated with Claude Code