Never more than you
The assistant acts as you, with the key's scopes, and never more than your role in the team allows.
Docs · AI assistants
Sleekdocs Translate has an MCP server, so Claude Code, Cursor, VS Code and other assistants can find missing translations, propose texts, show what would change and release them, with the permissions of your own API key.
Once connected, ask in your own words. For example:
Texts the assistant saves land unpublished in the working copy, as edits in the app do. Nothing reaches your app until someone publishes and deploys.
The assistant signs in with a personal API key. On the API keys page in Sleekdocs Translate, create one for it:
Choose the project the assistant works on, not all projects.
read and write let it read and change texts; add keys if it may add new keys. Leave out deploy:prod unless you want it to release to production.
8 hours for a working session, or 7 or 30 days. You can revoke it at any time.
The server's address is https://translate.sleekdocs.com/api/v1/api/mcp. Send the key as a bearer token. Keep the key out of files you commit.
claude mcp add --transport http sleekdocs \
https://translate.sleekdocs.com/api/v1/api/mcp \
--header "Authorization: Bearer sdt_…"
In ~/.cursor/mcp.json:
{
"mcpServers": {
"sleekdocs": {
"url": "https://translate.sleekdocs.com/api/v1/api/mcp",
"headers": { "Authorization": "Bearer sdt_…" }
}
}
}
In .vscode/mcp.json; VS Code asks for the key and stores it securely:
{
"inputs": [
{ "type": "promptString", "id": "sleekdocs-key", "description": "Sleekdocs API key", "password": true }
],
"servers": {
"sleekdocs": {
"type": "http",
"url": "https://translate.sleekdocs.com/api/v1/api/mcp",
"headers": { "Authorization": "Bearer ${input:sleekdocs-key}" }
}
}
}
Claude on the web and in the desktop app connect through sign-in rather than a key. That's coming; until then, use one of the assistants above.
The assistant chooses among these. Each needs the same scope as the API call behind it.
| Tool | Does | Scope |
|---|---|---|
whoami | What the key may do: team, scopes, project, expiry | any |
list_projects | The team's projects and how much is translated | read |
project_status | Unpublished changes, and what's deployed where | read |
find_keys | Keys that are untranslated, the same as the primary language, changed, or match a search | read |
propose_texts | Shows what saving texts would change, without saving | write |
apply_texts | Saves texts, unpublished; new keys also need keys | write |
compare_revisions | What publishing would release, or what differs between revisions | read |
rename_key, delete_key | Rename or delete a key in every language | keys |
publish | Publish the changed languages as new revisions | publish |
deploy | Put a revision on the CDN for development, test or production | deploy:<env> |
The assistant acts as you, with the key's scopes, and never more than your role in the team allows.
Saved texts wait in the working copy. Review them with View changes in Sleekdocs, or ask the assistant to compare, before you publish.
Every tool says whether it only reads or changes something, so your assistant can ask you before it saves, deletes or deploys.
Publishes and deploys made this way show in the team's log as "via MCP", with the key's name.
Translation texts are written by other people, and the assistant reads them. Give an assistant's key only the scopes its task needs, so text that looks like an instruction can't make it do more.