Utiliser le serveur MCP

Exemples concrets pour créer des interviews, inviter des participants et lire les transcripts depuis votre agent IA.

Une fois le serveur MCP branché dans votre client (voir le guide de configuration), votre agent IA dispose de six outils pour piloter Raconte : trois sur les interviews et trois sur les invitations. Ce guide montre comment vous en servir au quotidien, avec des exemples de demandes formulées en langage naturel.

Pour la liste complète des paramètres de chaque outil, gardez la référence du serveur MCP sous la main.

Les six outils en un coup d’œil

Côté interview :

  • create-interview : crée une interview vocale IA (et sa première invitation).
  • update-interview : modifie une interview existante, ou l’archive.
  • get-interview : récupère une interview avec toutes ses invitations et leurs transcripts.

Côté invitation :

  • create-invitation : ajoute une ou plusieurs invitations à une interview existante.
  • update-invitation : modifie une invitation, l’annule ou l’archive.
  • get-invitation : récupère une invitation avec son transcript complet.

Comment formuler vos demandes

Vous parlez à votre agent en langage naturel ; c’est lui qui choisit l’outil et remplit les paramètres. Les exemples ci-dessous donnent une formulation type et montrent ce qui se passe derrière.

Exemple 1, créer une interview et l’envoyer

« Crée une interview de feedback produit en français qui demande aux gens ce qu’ils ont aimé, ce qui les a freinés, et ce qu’ils aimeraient voir ensuite. Envoie-la à jane@example.com. »

L’agent appelle create-interview avec un prompt, un locale et un invitees contenant jane@example.com. Une invitation est créée pour cette invitée et envoyée immédiatement :

{
  "interviewId": "12345678-1234-1234-1234-1234567890ab",
  "invitations": [
    { "slug": "M3nB7vCxQa", "status": "ready", "name": "Jane", "url": "https://raconte.ai/invitation/M3nB7vCxQa", "sent": true, "error": null }
  ]
}

Sans invitees, l’agent crée une seule invitation partageable (destinataire null) et vous récupérez son url dans invitations pour l’envoyer vous-même.

Exemple 2, inviter plusieurs participants

« Invite ces personnes à l’interview 12345678-1234-1234-1234-1234567890ab : Jane (jane@example.com), Marc (marc@example.com) et le 06 12 34 56 78. »

L’agent appelle create-invitation avec le tableau invitees. Chaque invité a besoin d’un email ou d’un téléphone, et est envoyé immédiatement. Le résultat indique par invitation si l’envoi a réussi (sent) ou pourquoi il a échoué (error), sans bloquer les autres :

{
  "invitations": [
    { "slug": "K9pQ2mWxYz", "status": "ready", "name": "Jane", "url": "https://raconte.ai/invitation/K9pQ2mWxYz", "sent": true, "error": null },
    { "slug": "M3nB7vCxQa", "status": "ready", "name": "Marc", "url": "https://raconte.ai/invitation/M3nB7vCxQa", "sent": false, "error": "email: adresse invalide" }
  ]
}

Exemple 3, partager un lien sans l’envoyer

« Donne-moi un lien d’invitation pour cette interview, je l’enverrai moi-même. »

Chaque interview porte déjà une invitation READY partageable : son url, retournée par create-interview, se colle dans votre propre email, un QR code ou un canal Slack. create-invitation, lui, envoie toujours dès qu’un email ou un téléphone est fourni.

Exemple 4, lire les transcripts

« Montre-moi les réponses à l’interview 12345678-1234-1234-1234-1234567890ab. »

L’agent appelle get-interview, qui renvoie l’interview avec ses invitations et, pour celles qui sont completed, le transcript complet (messages, rôle, sentiment) plus un résumé. Pour ne lire qu’un seul participant, get-invitation avec l’id de l’invitation suffit.

Le résumé arrive avec un court délai

Le résumé et les sentiments sont produits juste après la fin de l’appel. Si vous lisez un transcript dans les secondes qui suivent le raccrochage, attendez-vous à summary: null le temps que la passe d’insights se termine.

Exemple 5, mettre à jour, annuler, archiver

« Rallonge la durée max de cette interview à 15 minutes et change son titre en “Feedback bêta”. »

L’agent appelle update-interview ; seuls les champs cités changent. Le même outil archive une interview avec archived: true (et la restaure avec false).

Côté invitation, update-invitation gère le cycle de vie :

  • status: "cancelled" désactive un lien encore ready (et "ready" le réactive).
  • archived: true supprime l’invitation en douceur (soft delete), false la restaure.
  • donner une nouvelle valeur à recipientEmail ou recipientPhone renvoie l’invitation à cette adresse (le résultat porte alors sent/error).

Cycle de vie d’une invitation

stateDiagram-v2
    state "Archivée (soft delete)" as ARCHIVED
    [*] --> READY: create-invitation
    READY --> IN_PROGRESS: envoi ou ouverture du lien
    IN_PROGRESS --> COMPLETED: dernier message puis raccrochage
    READY --> CANCELLED: status cancelled
    CANCELLED --> READY: status ready
    READY --> ARCHIVED: archived true
    ARCHIVED --> READY: archived false
    COMPLETED --> [*]

Bonnes pratiques

  • Une clé, une organisation. Chaque appel s’exécute sur l’organisation de la clé API. Les interviews et invitations des autres organisations ne sont jamais retournées.
  • Travaillez avec les ids. create-interview renvoie l’interviewId et les invitations créées (invitations[].id), create-invitation renvoie les invitations créées : gardez ces ids pour enchaîner avec get-* et update-* plus tard.
  • Laissez l’agent enchaîner. Une demande comme « crée l’interview, invite ces dix personnes, puis résume-moi les réponses dès qu’elles arrivent » se traduit naturellement en create-interviewcreate-invitationget-interview.

Besoin du détail d’un paramètre ? Tout est dans la référence du serveur MCP.