Gå til innholdet
Sonenta

MCP

Sett opp Claude Desktop

Sonenta leverer en nativ MCP-server slik at enhver MCP-bevisst klient — Claude Desktop, Cursor, din egen agent — kan søke etter nøkler, foreslå oversettelser, gjennomgå PR-er og inspisere missing-key-køen. To linjer config, din token, ferdig.

1. Hent en API-nøkkel

I dashbordet, gå til Org Settings → API Keys → Create. Gi den scope mcp:* (dekker alle fem verktøyene nedenfor). Hemmeligheten vises én gang; kopier hele snt_live_<prefix>.<secret>-strengen.

Lagre den i OS-ets keychain eller en lokal .env — aldri commit. Nøkkelen er bundet til organisasjonen din (og valgfritt ett prosjekt); kall utenfor scope returnerer 404. Tilbakekall fra dashbordet når som helst; tilbakekalte nøkler 401-er ved neste kall.

2. Installer (eller hopp over)

MCP-serveren publiseres på npm og Homebrew. Med npx trenger du ikke installere noe — Claude Desktop henter siste versjon ved hver oppstart. Med brew får du en pinnet lokal binær, nyttig bak strenge brannmurer.

npx (anbefalt)
1// ingen installasjon nødvendig — npx henter siste @sonenta/mcp on demand2npx -y @sonenta/mcp --version
Homebrew (alternativ) Tap publiseres ved V1
1// valgfritt: installer én gang globalt — kommer med V1-lanseringen2brew install sonenta/tap/sonenta-mcp

3. Koble til Claude Desktop

Åpne Claude Desktop sin config-fil, legg til sonenta-oppføringen under mcpServers, så avslutt og start appen på nytt.

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}

Tre env-variabler totalt: SONENTA_TOKEN (påkrevd), SONENTA_PROJECT (valgfri — pre-scope et prosjekt slik at agenten ikke trenger å kalle list_projects først) og SONENTA_API_BASE (valgfri — default https://api.sonenta.com; overstyr for self-hosted eller staging).

SONENTA_PROJECTS krever @sonenta/mcp ≥ 0.11.0. På eldre releaser, se Bakoverkompatibilitet lenger ned.

Flerprosjekts verktøykall

Når SONENTA_PROJECTS lister mer enn én UUID, kan ikke agenten gjette hvilket prosjekt du mener — hvert verktøykall må inkludere project_uuid. Med én enkelt UUID (eller bare den eldre SONENTA_PROJECT satt), er det valgfritt og kallet faller tilbake på det prosjektet.

tools/call-argumenter
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}

Formuler prompten din med prosjektet i tankene («i Checkout-prosjektet, list manglende nøkler for ja») — agenten vil løse prosjektet til dets UUID og sende project_uuid på verktøykallet. For prompter som er tvetydige på tvers av flere prosjekter, vil agenten kalle list_projects først.

Cursor (og andre MCP-klienter)

Samme JSON, annen fil. I Cursor legg den i .cursor/mcp.json (prosjekt-scope) eller ~/.cursor/mcp.json (bruker-scope). For andre klienter, følg klientens MCP-config-docs — mcpServers.sonenta-oppføringen er identisk.

.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}

De 5 V1-verktøyene

Når det er konfigurert har agenten disse verktøyene tilgjengelig. Du kaller dem ikke ved navn — beskriv intensjonen din i chatten og agenten velger. Navnene nedenfor er de kanoniske identifikatorene, nyttige ved lesing av agent-traces eller bygging av egne agenter på samme server.

list_projects Lister opp prosjektene den nåværende API-nøkkelen har tilgang til. Nyttig for å velge workspace i starten av en chat.

Args

  • limit number valgfri grense på antall prosjekter som returneres

Eksempelprompt

"List my Sonenta projects."

get_project_info Henter prosjektmetadata: kildespråk, målspråk, namespaces, totalt antall nøkler.

Args

  • project_uuid string required

Eksempelprompt

"What languages and namespaces does the Checkout project ship?"

list_missing_keys Lister pending missing-key-events fanget av runtime-SDK-en (cursor-paginert). Filtrer på namespace eller språk.

Args

  • project_uuid string required
  • namespace string begrens til ett namespace (f.eks. "checkout")
  • language_code string begrens til ett språk (f.eks. "ja")
  • cursor string pagineringscursor returnert av tidligere kall
  • limit number sidestørrelse (default 20)

Eksempelprompt

"What translation keys are missing for ja in the checkout namespace?"

propose_translation Sender inn en oversettelsesverdi for en nøkkel i et målspråk. Skrives alltid som draft; en menneskelig reviewer promoterer senere — Sonenta er forvalteren, ikke motoren.

Args

  • project_uuid string required
  • key string required
  • namespace string required
  • language_code string required
  • value string required

Eksempelprompt

"Propose \"Confirmer la commande\" for checkout.review.confirm in fr-CA."

validate_translations Linter en JSON-i18next-payload før push: ICU-placeholder-paritet, manglende/ekstra nøkler, type-drift mellom locales.

Args

  • project_uuid string required
  • language_code string required
  • payload object required JSON-i18next-formet oversettelsesmap

Eksempelprompt

"Validate this translation file against the project's English source."

Grenser og kvoter per plan

Du betaler når en agent muterer prosjektet ditt, ikke når den observerer det. Lesinger og listinger er gratis; skrivinger bruker én enhet; bulk- og AI-assisterte operasjoner skaleres med arbeidet de gjør.

Hva som teller som et fakturerbart kall

Lesinger — gratis

list_missing, list_keys, get_translation, search, pluss auth / discover / meta. Bla gjennom køen av manglende nøkler hele dagen — den rører aldri kvoten din.

Skrivinger — 1 enhet

Hver set / create / update / delete på en nøkkel eller oversettelse koster én enhet, uansett payload-størrelse.

Bulk — 1 enhet per nøkkel

Flernøkkel-endepunkter (f.eks. acknowledge) fakturerer per berørt nøkkel: en acknowledge på 50 nøkler trekker 50 enheter, med rollback ved delvis avvisning.

AI / auto-translate — ×5

Kall som påkaller en LLM (auto-translate, AI Quality Review, suggest) fakturerer 5 enheter per kall. Den høyere vekten gjenspeiler modellkostnaden.

Tak per plan

Månedlig kvote, hard rate per minutt, samtidige MCP-økter, og hvorvidt skrivinger er tillatt. De samme tallene mater X-MCP-Quota-Remaining-headeren på hvert svar.

Plan Enheter / måned Rate Økter Skrivinger
Free NaN NaNreq/min NaN blokkert
Hobby NaN NaNreq/min NaN blokkert
Pro NaN NaNreq/min NaN blokkert
Team NaN NaNreq/min NaN blokkert

Når du treffer et tak

Over raten per minutt → 429 mcp_rate_limited med Retry-After (sekunder). Over den månedlige kvoten → 429 mcp_quota_exceeded med Retry-After satt til rolloveren. Skrivinger på Free-planen → 403 mcp_writes_disabled. Kvotene tilbakestilles den 1. i hver kalendermåned, UTC.

Verifiser at det fungerer

  1. 1 Restart Claude Desktop helt (avslutt, start på nytt — config-en leses ved oppstart).
  2. 2 Åpne en ny chat. Hammer-ikonet skal vise sonenta med 5 verktøy tilgjengelig.
  3. 3 Skriv "List my Sonenta projects." Agenten skal kalle list_projects og returnere dine workspaces.

Står fast? Sjekk Claude Desktops logger i ~/Library/Logs/Claude/mcp*.log (macOS). 90 % av problemene er typos i JSON-en eller en utgått token.

Bakoverkompatibilitet

De tidligere navnene SONENTA_TOKEN og SONENTA_API_BASE (før 0.4.0) godtas fortsatt som fallback; SDK-et leser dem stille hvis de kanoniske ikke er satt.

Neste