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.dev ; 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.