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