Smartling MCP

Live

OAUTH 2.1

TRANSLATION MANAGEMENT

Productivity

Manage Smartling translation jobs, strings, and glossaries over OAuth 2.1, scoped to the signed-in user's projects.

  • Per-user credentials. each call uses the actual user's Smartling token, never a shared bot.
  • Encrypted per-tenant vault. AES-256, resolved at request time, never in LLM context.
  • Scoped before every call. pre-call scope check, 90-day SIEM-exportable audit chain.
Smartling MCP
agent · Acme Q3
Run
Which strings in the Acme project are missing Spanish translation?
S
smartlingmcp_smartling_search_strings
140ms
Localization agent
12 strings in acme-web still need es-ES. Job LOC-Q3 covers 9 of them.
Sources: project acme-web, locale es-ES
smartlingmcp
12 strings
18:29
Message Claude...

Tools your localization agent reaches for on Smartling MCP, scoped per user.

CALL ANY TOOL
Manage translation jobs, strings, glossaries, and issues in Smartling with the signed-in user's OAuth 2.1 token.
smartlingmcp_smartling_get_available_accounts_for_current_user
Get available accounts
List the Smartling translation accounts the signed-in user can access.
Parameters
Name
Type
Required
Description
No parameters required
smartlingmcp_smartling_get_project
Get project
smartlingmcp_smartling_list_projects
List projects
smartlingmcp_smartling_get_job
Get job
smartlingmcp_smartling_list_jobs
List jobs
smartlingmcp_smartling_create_job
Create job
smartlingmcp_smartling_update_job
Update job
smartlingmcp_smartling_get_job_history
Get job history
smartlingmcp_smartling_authorize_job
Authorize job
smartlingmcp_smartling_add_strings_to_job
Add strings to job
smartlingmcp_smartling_remove_strings_from_job
Remove strings from job
smartlingmcp_smartling_list_file_jobs
List file jobs
smartlingmcp_smartling_create_strings
Create strings
smartlingmcp_smartling_search_strings
Search strings
smartlingmcp_smartling_add_tags_to_strings
Add tags to strings
smartlingmcp_smartling_remove_tags_from_strings
Remove tags from strings
smartlingmcp_smartling_remove_all_tags_from_strings
Remove all tags from strings
smartlingmcp_smartling_request_upload_url
Request upload URL
smartlingmcp_smartling_machine_translate_text
Machine translate text
smartlingmcp_smartling_machine_translate_file
Machine translate file
smartlingmcp_smartling_get_word_count_report
Get word count report
smartlingmcp_smartling_export_glossary
Export glossary
smartlingmcp_smartling_get_glossary
Get glossary
smartlingmcp_smartling_list_glossaries
List glossaries
smartlingmcp_smartling_match_glossary_terms
Match glossary terms
smartlingmcp_smartling_search_translation_memory
Search translation memory
smartlingmcp_smartling_get_styleguide
Get styleguide
smartlingmcp_smartling_list_styleguides
List styleguides
smartlingmcp_smartling_get_linguistic_package
Get linguistic package
smartlingmcp_smartling_list_linguistic_packages
List linguistic packages
smartlingmcp_smartling_get_workflow_step_types
Get workflow step types
smartlingmcp_smartling_list_workflows
List workflows
smartlingmcp_smartling_list_users
List users
smartlingmcp_smartling_list_content_assignments
List content assignments
smartlingmcp_smartling_create_issue
Create issue
smartlingmcp_smartling_get_issue
Get issue
smartlingmcp_smartling_edit_issue_text
Edit issue text
smartlingmcp_smartling_open_or_close_issue
Open or close issue
smartlingmcp_smartling_update_issue_type
Update issue type
smartlingmcp_smartling_update_issue_severity_level
Update issue severity
smartlingmcp_smartling_update_issue_assignee
Update issue assignee
smartlingmcp_smartling_delete_issue_assignee
Delete issue assignee
smartlingmcp_smartling_update_issue_answered
Update issue answered state
smartlingmcp_smartling_add_issue_comment
Add issue comment
smartlingmcp_smartling_get_issue_comment
Get issue comment
smartlingmcp_smartling_list_issue_comments
List issue comments
smartlingmcp_smartling_update_issue_comment
Update issue comment
smartlingmcp_smartling_delete_issue_comment
Delete issue comment
smartlingmcp_smartling_find_account_issues
Find account issues
smartlingmcp_smartling_find_project_issues
Find project issues
smartlingmcp_smartling_count_account_issues
Count account issues
smartlingmcp_smartling_count_project_issues
Count project issues
smartlingmcp_smartling_execute_lqa_evaluation
Run LQA evaluation
Build your Agent
Same OAuth 2.1 vault and scoped tool list across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { DynamicStructuredTool } from "@langchain/core/tools";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["smartlingmcp"], toolNames: [
"smartlingmcp_smartling_search_strings",
"smartlingmcp_smartling_list_jobs",
"smartlingmcp_smartling_get_project",
]}, pageSize: 100,
});
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["smartlingmcp"], toolNames: [
"smartlingmcp_smartling_search_strings",
"smartlingmcp_smartling_list_jobs",
"smartlingmcp_smartling_get_project",
]}, pageSize: 100,
});
const openai = new OpenAI();
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["smartlingmcp"], toolNames: [
"smartlingmcp_smartling_search_strings",
"smartlingmcp_smartling_list_jobs",
"smartlingmcp_smartling_get_project",
]}, pageSize: 100,
});
const anthropic = new Anthropic();
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["smartlingmcp"], toolNames: [
"smartlingmcp_smartling_search_strings",
"smartlingmcp_smartling_list_jobs",
"smartlingmcp_smartling_get_project",
]}, pageSize: 100,
});
Try these prompts
Copy a prompt into your agent. Each one maps to Smartling translation tools for the signed-in user.
Jobs and strings
Copy the prompt
Copied
List every job due this week in the acme-web project.
Copy the prompt
Copied
Add these 20 strings to the LOC-Q3 job and authorize it.
Copy the prompt
Copied
Which strings are missing a Spanish translation?
Glossary and quality
Copy the prompt
Copied
Check this paragraph against our glossary before it goes to translators.
Copy the prompt
Copied
Search translation memory for a match on this exact sentence.
Copy the prompt
Copied
Run an LQA evaluation on the latest German job.
Issues and reporting
Copy the prompt
Copied
Open an issue on this string flagging a tone mismatch.
Copy the prompt
Copied
List unresolved issues across the account.
Copy the prompt
Copied
Get the word count report for the file we just uploaded.
SEE HOW AUTH WORKS
Your users connect once. Their Smartling OAuth 2.1 tokens stay vaulted, every call is checked, and every action is logged.
1
Authorize
Your user connects
Smartling MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Smartling MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Smartling MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Smartling MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
Reuse the same per-user OAuth 2.1 vault and audit chain on other localization and content connectors.
No items found.
Test other agents
Reuse the same per-user OAuth 2.1 vault and audit chain on other localization and content connectors.
No items found.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Smartling key makes every job authorization and string edit look like a bot. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_acct

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Smartling MCP today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Smartling MCP as the user or a shared key?
Per-user resolution. Each tool call uses the signed-in user's Smartling OAuth 2.1 token, so job, string, and glossary calls attribute to that user in the audit log.
Where is the Smartling token stored?
In Scalekit's AES-256 vault, namespaced per tenant. Tokens refresh automatically. You revoke access from one dashboard without rotating a shared secret across every agent.
Can I limit what the agent does in Smartling MCP?
Yes. Filter tool names in listScopedTools (for example smartlingmcp_smartling_search_strings only) and Scalekit checks that scope before the API call.
What happens when a user revokes access?
The next Smartling tool call fails closed for that user. Other users and other connectors are unaffected. The revoke is logged.
Can the agent authorize jobs or edit strings on my behalf?
Only within the scoped tools you grant. Authorizing a job or editing a string uses the signed-in user's own Smartling permissions, so the agent can never do more than that user could.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""smartlingmcp"": {
""url"": ""https://mcp.scalekit.com/smartlingmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.smartlingmcp]
url = ""https://mcp.scalekit.com/smartlingmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""smartlingmcp"": {
""url"": ""https://mcp.scalekit.com/smartlingmcp"",
""type"": ""http""
}
}
}