Se connecter
Deux façons de se connecter. Avec un jeton : l'adresse du endpoint et l'en-tête Authorization: Bearer <jeton> (Claude Code, Claude Desktop, Le Chat, API OpenAI). En OAuth, sans jeton à copier : l'adresse seule, puis une connexion avec votre compte VoxoLib (claude.ai, ChatGPT). Choisissez votre client.
Dans un terminal, une seule commande :
claude mcp add --transport http voxolib-stats https://mcp-dev2.agent.voxolib.com/mcp \
--header "Authorization: Bearer <jeton>"Puis, dans Claude Code : « combien d'appels WebCallback hier, par statut ? »
Réglages, puis Connecteurs, puis Ajouter un connecteur personnalisé.
- URL
https://mcp-dev2.agent.voxolib.com/mcp- En-tête
Authorization: Bearer <jeton>
Claude Desktop accepte aussi la connexion OAuth : laissez l'en-tête vide et suivez l'onglet claude.ai.
Réglages, puis Connecteurs, puis Ajouter un connecteur personnalisé. Aucun jeton à saisir.
- URL
https://mcp-dev2.agent.voxolib.com/mcp- Identifiant / secret OAuth
- À laisser vides : le client s'enregistre automatiquement
- Cliquez sur Connecter : une page
https://dev-app.voxolib.coms'ouvre. - Connectez-vous avec les identifiants de votre espace client VoxoLib.
- Autorisez l'accès en lecture aux statistiques (
stats:read). Vous revenez dans claude.ai, connecté.
L'accès se révoque à tout moment depuis votre espace client ou en supprimant le connecteur. Rien d'autre que les statistiques n'est accessible.
Environnement de test : le serveur d'autorisation https://dev-app.voxolib.com n'est pas en service, l'OAuth ne fonctionne que sur mcp.agent.voxolib.com.
Paramètres, puis Connecteurs, puis ajouter un serveur MCP distant.
- URL
https://mcp-dev2.agent.voxolib.com/mcp- En-tête
Authorization: Bearer <jeton>
Dans Responses ou Agents, déclarez un outil de type mcp :
{
"type": "mcp",
"server_label": "voxolib-stats",
"server_url": "https://mcp-dev2.agent.voxolib.com/mcp",
"headers": { "Authorization": "Bearer <jeton>" },
"require_approval": "never"
}Paramètres, puis Connecteurs, puis Créer (mode développeur, offres Plus, Pro, Business ou Enterprise).
- URL du serveur MCP
https://mcp-dev2.agent.voxolib.com/mcp- Authentification
- OAuth. Identifiant et secret à laisser vides : le client s'enregistre automatiquement
- Créez le connecteur : ChatGPT ouvre une page
https://dev-app.voxolib.com. - Connectez-vous avec les identifiants de votre espace client VoxoLib.
- Autorisez l'accès en lecture aux statistiques (
stats:read). Le connecteur est prêt dans vos conversations.
L'accès se révoque depuis votre espace client ou en supprimant le connecteur. Pour l'API OpenAI (Responses, Agents), voyez l'onglet OpenAI (API).
Environnement de test : le serveur d'autorisation https://dev-app.voxolib.com n'est pas en service, l'OAuth ne fonctionne que sur mcp.agent.voxolib.com.
Pour vérifier le jeton et la connexion sans client MCP. Une réponse 200 avec un identifiant de session confirme les deux ; un 401 dit pourquoi.
curl -i -X POST https://mcp-dev2.agent.voxolib.com/mcp \
-H "Authorization: Bearer <jeton>" \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'Outils
Chaque outil interroge l'API VoxoLib avec votre jeton et renvoie un JSON agrégé par jour, par semaine ou par mois. Les statuts sont ceux de l'API, sans reclassement. Le serveur publie aussi un guide d'usage à l'agent (champ instructions du protocole, repris en ressource voxolib://guide) : produits, périodes, sens des champs et des statuts, erreurs. L'agent n'a donc rien à deviner.
| Outil | Ce que vous obtenez | Paramètres |
|---|---|---|
voxolib_wcb_calls | Appels WebCallback par jour, semaine ou mois, avec la répartition par statut (répondu, manqué, messagerie, annulé…). La somme des statuts est égale au nombre d'appels. | day ou start_date + end_date, tz, group_by |
voxolib_did_calls | Appels entrants sur vos numéros de suivi (Call Tracking) par jour, semaine ou mois, avec la même répartition par statut. | day ou start_date + end_date, tz, group_by |
voxolib_dids | Nombre de numéros de suivi du compte : total, actifs, suspendus, autres. | aucun |
Périodes
day accepte today, yesterday, last7days, last30days ou une date AAAA-MM-JJ, et prime sur start_date + end_date (au plus 180 jours entre les deux dates, davantage si votre compte dispose d'une limite CDR plus élevée : period.max_days le précise dans chaque réponse). group_by choisit la granularité : day par défaut, week (semaines du lundi) ou month (mois civils), les lignes portant alors period_start et period_end. Le fuseau tz est un nom IANA, Europe/Paris par défaut.
Langue de l'agent
Les descriptions des outils, le guide d'usage et les messages d'erreur sont envoyés à l'agent en français par défaut. Pour les recevoir en anglais ou en espagnol, ajoutez ?lang=en ou ?lang=es à l'adresse du endpoint (clients à jeton : Claude Code, Le Chat, API OpenAI, curl). Les chiffres et les noms de champs sont les mêmes dans toutes les langues.
Authentification et données
Le jeton
Deux formes sont acceptées. Le jeton MCP dédié, de la forme vxmcp_…, est remis par VoxoLib pour ce serveur uniquement : il ne donne accès qu'aux statistiques et se révoque sans toucher à vos autres intégrations. Le jeton Enhanced de l'API v2 fonctionne aussi :
jeton = api_public_key + "." + HMAC_SHA256(api_public_key + "cdr", client_secret_key)
La connexion OAuth
Les clients qui ne savent pas envoyer d'en-tête (claude.ai, ChatGPT, Claude Desktop en mode connecteur) passent par le serveur d'autorisation VoxoLib, https://dev-app.voxolib.com, découvert automatiquement grâce aux métadonnées /.well-known/oauth-protected-resource. Flux authorization code avec PKCE, enregistrement dynamique des clients, un seul scope : stats:read. Vous vous connectez avec votre compte espace client et donnez votre accord une fois. Le jeton d'accès remis au client est un jeton MCP dédié vxmcp_…, limité aux statistiques, renouvelé par le client et révocable depuis votre espace client.
Ce que fait le serveur
Il vérifie le jeton auprès de l'API VoxoLib à l'ouverture de la session, puis le relaie à chaque appel d'outil. Il ne stocke aucun secret et ne garde aucune donnée. Sans jeton, ou avec un jeton refusé, la connexion est rejetée en 401 avec un en-tête WWW-Authenticate qui indique aux clients OAuth où s'autoriser. Le serveur ne voit jamais votre mot de passe : la connexion se fait sur le serveur d'autorisation VoxoLib.
Ce qui sort
Des comptes d'appels et des répartitions par statut, par jour, semaine ou mois. Jamais de numéro de téléphone, d'enregistrement ni de transcription. Les quotas de l'API s'appliquent : par compte, 500 requêtes par heure par défaut sur les statistiques.
État et version
- Service
- lecture de
/healthz… - Version du serveur
- 0.3.5
- Transport
- MCP Streamable HTTP, sessions par en-tête
Mcp-Session-Id
Lisible par les machines
- Fiche du serveur, format du registre MCP
- /.well-known/mcp/server.json
- Ressource protégée OAuth (RFC 9728)
- /.well-known/oauth-protected-resource
- Santé
- /healthz
Aide
En OAuth (claude.ai, ChatGPT), il n'y a rien à demander : vos identifiants d'espace client suffisent, et l'accès se révoque depuis cet espace. Pour un jeton MCP à copier (Claude Code, Le Chat, API OpenAI), il est créé par VoxoLib sur votre fiche client : pour l'obtenir, le renouveler ou le révoquer, adressez-vous à votre contact VoxoLib habituel. Une question sur les chiffres renvoyés : ils sont identiques à ceux de l'API v2 et de votre espace client, période et fuseau étant les mêmes.