/api/v1, so the exact same authentication, scopes, permissions, and approval
rules apply. Nothing the API won’t let you do is reachable through MCP.
- Endpoint:
https://api.textsetu.com/mcp(self-host:<server>/mcp) - Transport: Streamable HTTP
- Auth: OAuth (approve in your browser) or a Bearer API token
Connecting
You don’t need to paste a token. Connecting runs a standard OAuth flow — the first time a tool runs, TextSetu opens an Authorize screen in your browser; approve it and your client caches the token. (You can still use a token directly — see Use a token instead.)- Claude Code
- Cursor
- VS Code
- Claude Desktop
- ChatGPT
- Other clients
Use a token instead
To skip the browser flow, present an API token on every request. In a JSON-configured client, add aheaders object to the server entry from above:
claude mcp add:
Authentication
The MCP server accepts either TextSetu token type:
When you connect through the browser Authorize flow, the consent screen lets
you choose exactly this: a PAT (your full access) or a project-scoped token, and
for the project token which permissions it may use (e.g.
translation_read,
translation_create), plus an optional expiry. Prefer the narrowest grant that
does the job.
Because every tool proxies to the REST API, all the usual rules hold:
- Writes (
create_key,update_value,import_sources, …) require the matching permission (e.g.translation_create/translation_update). - On a project whose main branch is protected, direct-to-main writes are
rejected — target a branch (
branchargument), thenmerge_branch. - When approval is required, non-approver edits land as proposals, exactly as they would over the API or in the app.
Tools
Translation memory & glossary
The tools an agent reaches for while translating — reuse what was translated before, and honor the customer’s terminology.
Glossary and TM management tools operate on organization-level resources and
therefore require a PAT (
tsu_pat_…) — a project-scoped token is refused:
Translations, files & branches
projectId is optional only for a project-scoped token (it defaults to that
token’s project). With a PAT, pass it explicitly. branch targets an open
translation branch instead of main.
AI translation
Draft translations with AI through the project’s AI engine. Runs are asynchronous — start one, then poll for progress.Example prompts
Once connected, just ask — the agent picks the right tools:- “How complete is the French translation for project
<id>?” →get_stats - “Find every key containing ‘checkout’ that’s still in draft.” →
list_keys - “Add a key
cart.emptywith English ‘Your cart is empty’.” →create_key - “Translate
cart.emptyinto German as ‘Ihr Warenkorb ist leer’.” →update_value - “Export the approved French and German translations as nested JSON.” →
export_translations - “Create a branch
feature/checkoutand merge it once it’s clean.” →create_branch/merge_branch
- “Translate these new strings into French — reuse anything we’ve translated
before and follow our glossary.” →
get_tm_matches+lookup_glossary, thenupdate_value - “How have we translated ‘checkout’ before?” →
search_tm - “Review my French translation of this string for terminology problems.” →
check_glossary - “Fill in every French string that has a 90%+ match in the TM.” →
pretranslate - “Add ‘invoice’ to the glossary as ‘facture’ in French.” →
create_glossary_term
Notes
- Rate limit: 120 requests/min per IP on the MCP endpoint (separate from the REST API’s per-token limit).
- Sessions are stateful (Streamable HTTP) and idle sessions are evicted after 30 minutes — your client re-initializes transparently.
- The server exposes standard MCP discovery, so OAuth-capable clients configure themselves; see the API Reference for the underlying endpoints.

