Args
-
limitnumber limite optionnelle sur le nombre de projets retournés
Exemple de prompt
« Liste mes projets Sonenta. »
MCP
Sonenta fournit un serveur MCP natif pour que tout client compatible MCP — Claude Desktop, Cursor, votre propre agent — puisse chercher des clés, proposer des traductions, réviser des PRs, et inspecter la file des manquantes. Deux lignes de config, votre token, c'est fait.
Dans votre dashboard, allez à Org Settings → API Keys → Create. Donnez-lui le scope mcp:* (couvre les cinq outils ci-dessous). Le secret est affiché une seule fois ; copiez l'intégralité de snt_live_<prefix>.<secret>.
Stockez-le dans le keychain de votre OS ou dans un .env local — ne le committez jamais. La clé est liée à votre org (et optionnellement à un projet) ; les appels hors scope retournent 404. Révoquez depuis le dashboard à tout moment ; les clés révoquées renvoient 401 au prochain appel.
Le serveur MCP est publié sur npm et Homebrew. Avec npx vous n'avez rien à installer — Claude Desktop tire la dernière version à chaque lancement. Avec brew vous obtenez un binaire local figé, utile derrière des firewalls stricts.
npx (recommandé) 1// pas d'installation — npx tire la dernière version de @sonenta/mcp à la demande2npx -y @sonenta/mcp --version Homebrew (alternative) Tap publié au lancement V1 1// optionnel : installer une fois globalement — arrive au lancement V12brew install sonenta/tap/sonenta-mcp Ouvrez le fichier de config de Claude Desktop, ajoutez l'entrée sonenta sous mcpServers, puis quittez et relancez l'app.
claude_desktop_config.json 1// macOS: ~/Library/Application Support/Claude/claude_desktop_config.json2// Windows: %APPDATA%/Claude/claude_desktop_config.json3{4 "mcpServers": {5 "sonenta": {6 "command": "npx",7 "args": ["-y", "@sonenta/mcp"],8 "env": {9 "SONENTA_API_KEY": "snt_live_<prefix>.<secret>",10 "SONENTA_PROJECTS": "<uuid1>,<uuid2>"11 }12 }13 }14} Trois variables d'environnement au total : SONENTA_API_KEY (obligatoire, la clé API depuis votre dashboard), SONENTA_PROJECTS (optionnel, liste CSV d'UUID de projets — avec un seul UUID l'agent n'a pas besoin d'appeler list_projects ; avec plusieurs UUID, chaque appel d'outil doit passer project_uuid pour lever l'ambiguïté), et SONENTA_BASE_URL (optionnel — défaut https://api.sonenta.com ; override pour self-host ou staging).
SONENTA_PROJECTS nécessite @sonenta/mcp ≥ 0.11.0. Pour les versions antérieures, voir Rétrocompatibilité plus bas.
Quand SONENTA_PROJECTS liste plus d'un UUID, l'agent ne peut pas deviner de quel projet vous parlez — chaque appel d'outil doit inclure project_uuid. Avec un seul UUID (ou uniquement le legacy SONENTA_PROJECT), c'est optionnel et l'appel défaut sur ce projet.
arguments tools/call 1// list_missing_keys — project_uuid is REQUIRED when SONENTA_PROJECTS lists more than one UUID2{3 "name": "list_missing_keys",4 "arguments": {5 "project_uuid": "<uuid1>",6 "namespace": "checkout",7 "language_code": "ja"8 }9} Formulez votre prompt en nommant le projet (« dans le projet Checkout, liste les clés manquantes en ja ») — l'agent résoudra le projet vers son UUID et passera project_uuid sur l'appel d'outil. Pour un prompt ambigu entre plusieurs projets, l'agent appellera list_projects d'abord.
Même JSON, fichier différent. Dans Cursor, déposez-le dans .cursor/mcp.json (scope projet) ou ~/.cursor/mcp.json (scope utilisateur). Pour les autres clients, suivez la doc de config MCP de votre client — l'entrée mcpServers.sonenta est identique.
.cursor/mcp.json 1// .cursor/mcp.json (project-scoped) or ~/.cursor/mcp.json (user-scoped)2{3 "mcpServers": {4 "sonenta": {5 "command": "npx",6 "args": ["-y", "@sonenta/mcp"],7 "env": { "SONENTA_API_KEY": "snt_live_<prefix>.<secret>" }8 }9 }10} Une fois configuré, l'agent dispose de ces outils. Vous ne les appelez pas par nom — décrivez votre intention en chat et l'agent choisit. Les noms ci-dessous sont les identifiants canoniques, utiles pour lire les traces d'agent ou construire vos propres agents sur le même serveur.
limit number limite optionnelle sur le nombre de projets retournés « Liste mes projets Sonenta. »
project_uuid string required « Quelles langues et namespaces ship le projet Checkout ? »
project_uuid string required namespace string limite à un namespace (ex. « checkout ») language_code string limite à une langue (ex. « ja ») cursor string cursor de pagination retourné par un appel précédent limit number taille de page (défaut 20) « Quelles clés de traduction manquent pour ja dans le namespace checkout ? »
project_uuid string required key string required namespace string required language_code string required value string required « Propose \"Confirmer la commande\" pour checkout.review.confirm en fr-CA. »
project_uuid string required language_code string required payload object required map de traductions au format JSON i18next « Valide ce fichier de traduction contre la source anglaise du projet. »
Vous payez quand un agent modifie votre projet, pas quand il l'observe. Les lectures et les listes sont gratuites ; les écritures coûtent une unité ; le bulk et les appels assistés par IA s'échelonnent avec le travail effectué.
list_missing, list_keys, get_translation, search, plus auth / discover / meta. Parcourez la file des clés manquantes toute la journée — votre quota n'y touche pas.
Chaque set / create / update / delete sur une clé ou une traduction coûte une unité, peu importe la taille du payload.
Les endpoints multi-clés (ex. acknowledge) facturent par clé touchée : un acknowledge de 50 clés débite 50 unités, avec rollback en cas de reject partiel.
Les appels qui invoquent un LLM (auto-translate, AI Quality Review, suggest) facturent 5 unités par appel. Le poids plus élevé reflète le coût du modèle.
Quota mensuel, plafond strict par minute, sessions MCP concurrentes, et autorisation d'écriture. Les mêmes valeurs alimentent l'en-tête X-MCP-Quota-Remaining sur chaque réponse.
| Plan | Unités / mois | Cadence | Sessions | Écritures |
|---|---|---|---|---|
| Free | NaN | NaNreq/min | NaN | bloquées |
| Hobby | NaN | NaNreq/min | NaN | bloquées |
| Pro | NaN | NaNreq/min | NaN | bloquées |
| Team | NaN | NaNreq/min | NaN | bloquées |
Au-dessus de la cadence par minute → 429 mcp_rate_limited avec Retry-After (secondes). Au-dessus du quota mensuel → 429 mcp_quota_exceeded avec Retry-After calé sur le rollover. Écritures sur le plan Free → 403 mcp_writes_disabled. Les quotas se réinitialisent le 1ᵉʳ de chaque mois calendaire, UTC.
sonenta avec 5 outils disponibles. list_projects et retourner vos workspaces. Bloqué ? Consultez les logs de Claude Desktop dans ~/Library/Logs/Claude/mcp*.log (macOS). 90 % des problèmes sont des typos dans le JSON ou un token périmé.
Le nom singulier SONENTA_PROJECT reste accepté en repli quand SONENTA_PROJECTS n'est pas défini (depuis 0.11.0). Si les deux sont définis, SONENTA_PROJECTS gagne et le SDK affiche sur stderr : sonenta-mcp: both SONENTA_PROJECTS and SONENTA_PROJECT are set; SONENTA_PROJECTS wins. Remove SONENTA_PROJECT to silence this warning. Les anciens noms SONENTA_TOKEN et SONENTA_API_BASE (pré-0.4.0) sont également toujours acceptés en repli silencieux.