Hoppa till innehållet
Sonenta

MCP

Sätt upp Claude Desktop

Sonenta levererar en nativ MCP-server så att vilken MCP-medveten klient som helst — Claude Desktop, Cursor, din egen agent — kan söka nycklar, föreslå översättningar, granska PRs och inspektera missing-key-kön. Två rader config, din token, klart.

1. Hämta en API-nyckel

I din dashboard, gå till Org Settings → API Keys → Create. Ge den scope mcp:* (täcker alla fem verktyg nedan). Hemligheten visas en gång; kopiera hela snt_live_<prefix>.<secret>-strängen.

Förvara den i OS:ets keychain eller en lokal .env — committa aldrig. Nyckeln är bunden till din org (och valfritt ett projekt); anrop utanför scope returnerar 404. Återkalla från dashboarden när som helst; återkallade nycklar 401:ar vid nästa anrop.

2. Installera (eller hoppa över)

MCP-servern publiceras på npm och Homebrew. Med npx behöver du inte installera något — Claude Desktop drar senaste versionen vid varje start. Med brew får du en pinnad lokal binär, användbar bakom strikta brandväggar.

npx (rekommenderat)
1// ingen installation behövs — npx drar senaste @sonenta/mcp on demand2npx -y @sonenta/mcp --version
Homebrew (alternativ) Tap publiceras vid V1
1// valfritt: installera en gång globalt — kommer med V1-lanseringen2brew install sonenta/tap/sonenta-mcp

3. Koppla Claude Desktop

Öppna Claude Desktops config-fil, lägg till sonenta-posten under mcpServers, avsluta sedan och starta om appen.

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 (krävs), SONENTA_PROJECT (valfri — pre-scope:a ett projekt så agenten inte behöver anropa list_projects först) och SONENTA_API_BASE (valfri — default https://api.sonenta.com; överskrid för self-hosted eller staging).

SONENTA_PROJECTS kräver @sonenta/mcp ≥ 0.11.0. På äldre releaser, se Bakåtkompatibilitet nedan.

Verktygsanrop för flera projekt

När SONENTA_PROJECTS listar mer än ett UUID kan agenten inte härleda vilket projekt du menar — varje verktygsanrop måste inkludera project_uuid. Med ett enda UUID (eller endast det äldre SONENTA_PROJECT satt) är det valfritt och faller tillbaka på det projektet.

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

Formulera din prompt med projektet i åtanke (« i Checkout-projektet, lista nycklar som saknas för ja ») — agenten löser projektet till dess UUID och skickar project_uuid på verktygsanropet. För prompter som är tvetydiga mellan flera projekt anropar agenten list_projects först.

Cursor (och andra MCP-klienter)

Samma JSON, annan fil. I Cursor lägg den i .cursor/mcp.json (projekt-scope) eller ~/.cursor/mcp.json (user-scope). För andra klienter, följ klientens MCP-config-docs — mcpServers.sonenta-posten är 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-verktygen

När det är konfigurerat har agenten dessa verktyg tillgängliga. Du anropar dem inte med namn — beskriv din avsikt i chatten så väljer agenten. Namnen nedan är de kanoniska identifierarna, användbara när du läser agent-trace eller bygger egna agenter ovanpå samma server.

list_projects Räknar upp projekten som aktuell API-nyckel kan komma åt. Användbart för att välja workspace i början av en chat.

Args

  • limit number valfritt tak på antalet projekt som returneras

Exempelprompt

"List my Sonenta projects."

get_project_info Hämtar projektmetadata: källspråk, målspråk, namespaces, totalt antal nycklar.

Args

  • project_uuid string required

Exempelprompt

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

list_missing_keys Listar pending missing-key-events fångade av runtime-SDK:n (cursor-paginerat). Filtrera på namespace eller språk.

Args

  • project_uuid string required
  • namespace string begränsa till ett namespace (t.ex. "checkout")
  • language_code string begränsa till ett språk (t.ex. "ja")
  • cursor string pagineringscursor returnerad av tidigare anrop
  • limit number sidstorlek (default 20)

Exempelprompt

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

propose_translation Skickar in ett översättningsvärde för en nyckel på ett målspråk. Skrivs alltid som draft; en mänsklig granskare promotar senare — Sonenta är förvaltaren, inte motorn.

Args

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

Exempelprompt

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

validate_translations Lintar en JSON-i18next-payload före push: ICU-placeholder-paritet, saknade/extra nycklar, type-drift mellan locales.

Args

  • project_uuid string required
  • language_code string required
  • payload object required JSON-i18next-formad översättningsmap

Exempelprompt

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

Gränser & kvoter per plan

Du betalar när en agent muterar ditt projekt, inte när den observerar det. Läsningar och listningar är gratis; skrivningar bränner en enhet; bulk och AI-assisterade operationer skalar med arbetet de utför.

Vad som räknas som ett debiterbart anrop

Läsningar — gratis

list_missing, list_keys, get_translation, search, plus auth / discover / meta. Bläddra i kön för saknade nycklar hela dagen — det rör aldrig din kvot.

Skrivningar — 1 enhet

Varje set / create / update / delete på en nyckel eller översättning kostar en enhet, oavsett payloadens storlek.

Bulk — 1 enhet per nyckel

Endpoints för flera nycklar (t.ex. acknowledge) debiteras per nyckel som berörs: ett acknowledge av 50 nycklar debiterar 50 enheter, med rollback vid partiell avvisning.

AI / auto-translate — ×5

Anrop som anropar en LLM (auto-translate, AI Quality Review, suggest) debiteras 5 enheter per anrop. Den högre vikten återspeglar modellens kostnad.

Tak per plan

Månadskvot, hård gräns per minut, samtidiga MCP-sessioner och huruvida skrivningar är tillåtna. Samma siffror matar headern X-MCP-Quota-Remaining på varje svar.

Plan Enheter / månad Frekvens Sessioner Skrivningar
Free NaN NaNförfr/min NaN blockerade
Hobby NaN NaNförfr/min NaN blockerade
Pro NaN NaNförfr/min NaN blockerade
Team NaN NaNförfr/min NaN blockerade

När du når ett tak

Över frekvensen per minut → 429 mcp_rate_limited med Retry-After (sekunder). Över månadskvoten → 429 mcp_quota_exceeded med Retry-After satt till rollover. Skrivningar på Free-planen → 403 mcp_writes_disabled. Kvoter återställs den 1:a varje kalendermånad, UTC.

Verifiera att det funkar

  1. 1 Starta om Claude Desktop helt (avsluta, starta om — config:en läses vid uppstart).
  2. 2 Öppna en ny chat. Hammar-ikonen ska visa sonenta med 5 verktyg tillgängliga.
  3. 3 Skriv "List my Sonenta projects." Agenten ska anropa list_projects och returnera dina workspaces.

Fast? Kolla Claude Desktops loggar i ~/Library/Logs/Claude/mcp*.log (macOS). 90 % av problemen är typos i JSON:en eller en gammal token.

Bakåtkompatibilitet

Tidigare namn SONENTA_TOKEN och SONENTA_API_BASE (före 0.4.0) accepteras fortfarande som fallback; SDK:n läser dem tyst om de kanoniska inte är satta.

Nästa