Sendveo pour les agents IA

Sendveo parle le Model Context Protocol (MCP). Ajoutez-le à Claude, Cursor, ChatGPT ou tout agent compatible MCP, puis demandez en langage naturel : liste mes numéros, connecte celui-ci, réponds à cette conversation. L'agent appelle Sendveo pour vous.

De quoi s'agit-il

Le serveur MCP Sendveo est un petit pont entre votre assistant IA et votre compte Sendveo. Il expose les mêmes actions que l'API et le tableau de bord, sous forme d'outils que l'assistant peut appeler. Tout s'exécute sous votre propre compte : vous vous connectez avec votre e-mail et votre mot de passe Sendveo ou, pour un script ou un outil en ligne de commande, vous utilisez une clé API créée dans votre tableau de bord.

Il y a deux façons de se connecter, et toutes deux exposent les mêmes outils. Hébergée : vous collez une URL dans l'assistant et vous vous connectez, sans rien installer ni copier de clé. Locale : l'assistant lance une petite commande Sendveo sur votre machine avec une clé API, qui ne la quitte jamais.

Ce que vous pouvez faire

Un outil par action, regroupés comme dans le guide : numéros, messages, conversations, contacts, groupes, santé et profil, étiquettes, webhook, facturation. Les fonctions opérateur ne sont pas exposées : le serveur est limité au compte auquel appartient la connexion.

OutilCe qu'il fait
Numéros
list_numbersListe vos numéros WhatsApp, leur statut et leur santé.
get_numberConsulte un numéro par son identifiant, avec sa santé.
connect_numberConnecte un nouveau numéro. Renvoie une image QR à scanner, ou un code à 8 caractères à saisir dans WhatsApp.
refresh_qrObtient un nouveau QR ou code tant qu'un numéro est encore en appairage (ils tournent).
reconnect_numberReconnecte un numéro dont la session a été perdue.
disconnect_numberMet un numéro hors service. Libère son emplacement et conserve le numéro.
remove_numberSupprime définitivement un numéro.
Messages
send_messageEnvoie un message WhatsApp (texte, fichiers, note vocale, position, fiches de contact, réponse citée) à un numéro de téléphone ou dans une conversation existante.
get_messagesLit les messages entrants et sortants enregistrés : texte, type, statut de livraison, fichiers, réactions.
get_messageLit un message par son identifiant, dans son état actuel.
get_attachmentRécupère un fichier joint à un message. Une image revient comme une image visible ; tout le reste sous forme de détails plus un lien Sendveo.
react_to_messageRéagit à un message avec un emoji.
remove_reactionRetire votre réaction.
forward_messageTransfère un message dans une autre de vos conversations.
delete_messageSupprime un message pour tout le monde. Irréversible.
mark_chat_readMarque une conversation comme lue, ou non lue.
send_typingAffiche l'indicateur de saisie un instant avant un message.
Conversations
list_chatsListe vos conversations : nom, nombre de non-lus, archivée, en sourdine, dernier message, étiquettes.
get_chatLit une conversation en entier, y compris ses participants et ses étiquettes.
archive_chatArchive une conversation.
unarchive_chatSort une conversation des archives.
mute_chatMet en sourdine les notifications d'une conversation.
unmute_chatRéactive les notifications d'une conversation.
sync_chat_historyRécupère les messages plus anciens dans ce que renvoie get_messages.
Contacts
get_contactCe que WhatsApp révèle sur un numéro : présent sur WhatsApp ou non, nom, entreprise, ligne de statut.
get_contact_pictureLa photo de profil d'un contact, comme une image visible ou comme un lien Sendveo.
lookup_numbersLesquels parmi 50 numéros au plus sont sur WhatsApp (oui ou non, rien de plus).
Groupes
list_groupsListe les groupes dont vos numéros font partie.
get_groupLit un groupe : sujet, photo et membres.
get_group_pictureLa photo d'un groupe, comme une image ou comme un lien Sendveo.
create_groupCrée un groupe avec un sujet, des membres et un premier message facultatif.
add_group_membersAjoute des personnes à un groupe, toute la liste en un appel, vérifiée avant que quiconque rejoigne. Un refus en cours de route laisse les premiers numéros dans le groupe, et l'erreur les nomme.
remove_group_memberRetire quelqu'un d'un groupe (jamais vous-même : utilisez leave_group).
leave_groupFait sortir votre propre numéro d'un groupe.
Santé et profil
get_number_healthCe numéro fonctionne-t-il ? Son statut, sa santé et ce qui lui est arrivé.
list_number_eventsL'historique de santé seul. Parcourez-le page par page avec un curseur.
get_number_profileCe que votre propre ligne publie sur elle-même : nom, à propos, entreprise, photo. Lecture seule.
get_number_pictureLa photo de votre propre ligne, comme une image visible ou comme un lien Sendveo.
Étiquettes
list_labelsVos étiquettes, avec le nombre de conversations qui portent chacune.
create_labelCrée une étiquette : un nom et une couleur facultative parmi une palette fixe.
update_labelRenomme une étiquette ou change sa couleur.
delete_labelSupprime une étiquette. Elle disparaît de toutes les conversations qui la portaient.
add_chat_labelPose une étiquette sur une conversation, par identifiant ou par nom (un nom nouveau la crée).
remove_chat_labelRetire une étiquette d'une conversation.
Webhook
get_webhookAffiche l'URL à laquelle Sendveo transmet les messages entrants.
set_webhookDéfinit ou remplace cette URL.
Facturation
get_billingAffiche votre crédit et vos emplacements : le crédit disponible sur votre compte, les emplacements par carte et par crédit, tout renouvellement mensuel impayé, et si vous pouvez acheter par carte ou activer des numéros avec votre crédit.

connect_number, refresh_qr et reconnect_number acceptent un paramètre optionnel method. qr (par défaut) renvoie un QR à scanner depuis WhatsApp, dans Appareils connectés, Connecter un appareil. code renvoie un code à 8 caractères à saisir dans Connecter avec un numéro de téléphone : utilisez-le quand vous êtes sur le téléphone qui porte le numéro et ne pouvez pas scanner l'écran. Les deux expirent et tournent, demandez-en un nouveau s'il ne fonctionne plus.

Option A : collez l'URL et connectez-vous (recommandé)

Ajoutez Sendveo à votre assistant comme serveur MCP distant. Une seule valeur suffit : l'URL MCP Sendveo. Rien à installer et aucune clé à coller : votre assistant ouvre une page Sendveo où vous vous connectez et approuvez la connexion.

URL MCP
https://mcp.sendveo.com/mcp

Dans Claude

  1. Ouvrez Réglages, puis Connecteurs, et choisissez Ajouter un connecteur personnalisé.
  2. Collez l'URL MCP Sendveo ci-dessus et enregistrez. Votre assistant trouve le reste tout seul.
  3. Une page Sendveo s'ouvre dans votre navigateur. Connectez-vous avec l'e-mail et le mot de passe que vous utilisez pour le tableau de bord.
  4. Lisez ce que l'assistant demande et l'adresse vers laquelle il vous renverra, puis appuyez sur Autoriser. Appuyez sur Refuser et rien n'est accordé.

L'assistant reçoit une connexion liée à votre compte, portant les autorisations affichées sur cet écran d'approbation. Elle expire au bout d'une heure et se renouvelle discrètement tant que la connexion est utilisée. Vous ne collez jamais de clé dans l'assistant, et rien de ce que vous approuvez n'atteint un autre compte, la console opérateur ou votre mot de passe.

Pour vous déconnecter, supprimez le connecteur dans votre assistant. Une connexion supprimée côté Sendveo cesse de fonctionner immédiatement et définitivement.

Si aucune page de connexion ne s'ouvre, vérifiez que l'URL se termine par /mcp. Si votre assistant signale qu'il n'a pas pu joindre le service de connexion, c'est que Sendveo est injoignable depuis votre réseau : même vérification que pour le chargement du tableau de bord.

ChatGPT, Cursor et les autres assistants compatibles MCP utilisent la même URL dans leurs propres réglages de serveur MCP distant, et vous connectent de la même façon.

Option B : local (sur votre machine)

Si vous préférez garder la clé sur votre propre machine, exécutez le serveur MCP Sendveo en local. Il nécessite Node.js 22 ou plus récent. L'assistant le lance avec npx @sendveo/mcp et lui transmet votre clé via la variable d'environnement SENDVEO_API_KEY.

Ajoutez le bloc ci-dessous à la configuration MCP de votre assistant. Dans Claude Desktop, c'est claude_desktop_config.json ; dans Claude Code, lancez claude mcp add ou modifiez .mcp.json ; Cursor utilise .cursor/mcp.json. Le bloc est identique partout.

Configuration MCP
{
  "mcpServers": {
    "sendveo": {
      "command": "npx",
      "args": ["-y", "@sendveo/mcp"],
      "env": {
        "SENDVEO_API_KEY": "YOUR_SENDVEO_API_KEY"
      }
    }
  }
}

Remplacez le texte de substitution par votre clé, redémarrez l'assistant et demandez-lui de lister vos numéros Sendveo. Si le serveur s'arrête immédiatement, vérifiez que SENDVEO_API_KEY est bien définie.

Avec une clé API plutôt qu'une connexion

Se connecter est la façon normale d'utiliser l'URL hébergée. Si votre outil ne le permet pas, un script, un appel curl ou un client qui ne laisse définir que des en-têtes, la même URL accepte aussi une clé API Sendveo envoyée en jeton bearer. Chaque requête est authentifiée sur cette seule clé et reste limitée au compte de cette clé.

URL MCP
https://mcp.sendveo.com/mcp
En-tête
Authorization: Bearer YOUR_SENDVEO_API_KEY

Portées

Chaque connexion porte des portées, et chaque outil en exige une. Quand vous vous connectez, l'écran d'approbation les liste en langage clair avant que vous appuyiez sur Autoriser. Une nouvelle clé API reçoit toutes les portées par défaut, sauf le raccourci lecture seule : elle fonctionne donc d'emblée avec tous les outils. Si un outil signale une portée manquante, ajustez la clé dans Clés API de votre tableau de bord, ou reconnectez-vous et approuvez la permission manquante.

PortéeOutils
numbers:readlist_numbers, get_number, get_billing, get_number_health, list_number_events, get_number_profile, get_number_picture
numbers:writeconnect_number, refresh_qr, reconnect_number, disconnect_number, remove_number
messages:readget_messages, get_message, get_attachment
messages:sendsend_message, send_typing
messages:managereact_to_message, remove_reaction, forward_message, delete_message, mark_chat_read
chats:readlist_chats, get_chat, list_labels
chats:managearchive_chat, unarchive_chat, mute_chat, unmute_chat, sync_chat_history, create_label, update_label, delete_label, add_chat_label, remove_chat_label
contacts:readget_contact, get_contact_picture, lookup_numbers
groups:readlist_groups, get_group, get_group_picture
groups:managecreate_group, add_group_members, remove_group_member, leave_group
webhooks:manageget_webhook, set_webhook
*:readToutes les portées de lecture à la fois (une connexion en lecture seule) : les outils de numbers:read, messages:read, chats:read, contacts:read et groups:read, et rien qui écrive.

messages:manage, chats:read, chats:manage, contacts:read, groups:read et groups:manage ont été ajoutées le 16 septembre 2026. Une clé API créée avant cette date n'en possède aucune et ne peut pas les recevoir : créez une nouvelle clé dans votre tableau de bord, ou reconnectez l'assistant et approuvez les permissions. Tout le reste continue de fonctionner avec l'ancienne clé.

La facturation est en lecture seule et couverte par numbers:read : il n'existe pas de portée facturation distincte.

Sécurité

  • Se connecter ne donne jamais votre mot de passe à l'assistant, et le serveur hébergé ne stocke aucune clé API. Chaque requête est authentifiée avec l'identifiant qu'elle porte, et le serveur n'en conserve aucun.
  • Chaque requête est isolée au compte derrière la connexion. Les fonctions opérateur ne sont pas accessibles via MCP.
  • Des limites de débit s'appliquent, par clé et par source. Une réponse 429 signifie ralentir et réessayer un peu plus tard.
  • Traitez la clé comme un mot de passe. Préférez une clé limitée à ce dont l'assistant a besoin, et révoquez-la depuis le tableau de bord en cas de fuite.

Dépannage

Vous voyezQue faire
401 ou Invalid or missing Sendveo API keyVotre connexion a été révoquée ou n'a pas pu se renouveler, ou la clé API est incorrecte, absente, ou n'est pas envoyée sous la forme Authorization: Bearer .... Reconnectez-vous, ou copiez une nouvelle clé depuis votre tableau de bord.
No available slotVous avez utilisé tous vos emplacements de numéros. Achetez un emplacement par carte ou activez-en un avec votre crédit dans la rubrique Facturation de votre tableau de bord, puis relancez connect_number.
429 ou Rate limit exceededTrop de requêtes en peu de temps. Patientez un instant et réessayez, et demandez à l'assistant de faire moins d'appels à la fois.
does not have the scope requiredAccordez la portée manquante à la clé dans Clés API, ou créez une nouvelle clé avec toutes les portées.
WhatsApp depuis vos agents IA avec MCP · Sendveo