Introduction

Le développement d'un serveur MCP (Multi-Cloud Protocol) pour permettre à l'agent IA Claude de lire et d'écrire des CV optimisés pour les systèmes de suivi des candidatures (ATS) a été réalisé en moins d'une heure. Cela a nécessité l'intégration de Rezi, une plateforme de gestion de CV, avec Claude.

Contexte Technique

La plateforme Rezi utilise un backend en Go, avec des données stockées dans Firestore et une authentification via Firebase. L'utilisation de la bibliothèque mark3labs/mcp-go et le déploiement sur Cloud Run derrière une passerelle API existante ont facilité la création du serveur MCP. Les outils initiaux exposés étaient list_resumes, read_resume et write_resume, permettant de valider le fonctionnement du système.

La partie la plus complexe de la mise en œuvre a été la gestion de l'authentification OAuth 2.1 avec PKCE et le flux de découverte, nécessitant plusieurs centaines de lignes de code avant même d'écrire les outils.

Analyse et Implications

L'intégration de Claude avec le serveur MCP a permis une interaction fluide pour la gestion des CV, y compris la création, la lecture et la mise à jour. La décision de regrouper les opérations de création et de mise à jour en un seul outil write_resume a simplifié l'interaction avec l'agent IA.

Une erreur potentielle a été identifiée lors de la revue de code, où l'outil write_resume remplaçait l'ensemble du document Firestore par les champs fournis par l'agent, risquant d'effacer des informations importantes. La solution a consisté à effectuer une fusion profonde des données entrantes sur le document existant, garantissant ainsi que seuls les champs explicitement passés soient mis à jour.

Perspective

La prochaine étape naturelle après la mise en œuvre du serveur MCP a été l'intégration de la fonctionnalité de recherche d'emplois. Les outils search_jobs et get_job_details ont été ajoutés, permettant à Claude de trouver des emplois correspondant au CV de l'utilisateur et de personnaliser le CV en conséquence, tout cela dans une conversation unique.