Smartling MCP server for AI agents

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_add_issue_comment
Smartling add issue comment
Post a new comment on an issue. # Use cases - Reply to a translator question - Add additional context to a flagged issue # Examples - project_id="p1", issue_uid="i1", comment_text="Use the formal 'vous' form here"
Parameters
Name
Type
Required
Description
comment_text
string
Required
Comment body text
issue_uid
string
Required
No description.
project_uid
string
Required
The Smartling project UID
smartlingmcp_smartling_authorize_entries_for_translation
Smartling authorize entries for translation
smartlingmcp_smartling_create_issue
Issue smartling create
smartlingmcp_smartling_delete_issue_assignee
Smartling delete issue assignee
smartlingmcp_smartling_download_translated_file
Smartling download translated file
smartlingmcp_smartling_edit_issue_text
Smartling edit issue text
smartlingmcp_smartling_execute_lqa_evaluation
Smartling execute lqa evaluation
smartlingmcp_smartling_find_project_issues
Smartling find project issues
smartlingmcp_smartling_get_account_user_status
Smartling get account user status
smartlingmcp_smartling_get_file_status
Smartling get file status
smartlingmcp_smartling_get_issue
Issue smartling get
smartlingmcp_smartling_get_job_history
Smartling get job history
smartlingmcp_smartling_get_lqa_schema_topology
Smartling get lqa schema topology
smartlingmcp_smartling_get_string_changes_report
Smartling get string changes report
smartlingmcp_smartling_get_word_count_report
Smartling get word count report
smartlingmcp_smartling_integration_list_available
Smartling integration list available
smartlingmcp_smartling_integration_search_assets
Smartling integration search assets
smartlingmcp_smartling_list_glossaries
Smartling list glossaries
smartlingmcp_smartling_list_job_batches
Smartling list job batches
smartlingmcp_smartling_list_lqa_errors_per_string
Smartling list lqa errors per string
smartlingmcp_smartling_list_styleguide_attachments
Smartling list styleguide attachments
smartlingmcp_smartling_load_skill
Smartling load skill
smartlingmcp_smartling_manage_glossaries_archive_state
Smartling manage glossaries archive state
smartlingmcp_smartling_manage_glossary_entry
Smartling manage glossary entry
smartlingmcp_smartling_manage_label
Smartling manage label
smartlingmcp_smartling_remove_all_tags_from_strings
Smartling remove all tags from strings
smartlingmcp_smartling_request_upload_url
Smartling request upload url
smartlingmcp_smartling_set_styleguide_locales
Smartling set styleguide locales
smartlingmcp_smartling_update_issue_answered
Smartling update issue answered
smartlingmcp_smartling_update_issue_type
Smartling update issue type

For more tools, view docs.

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.
Engineering Teams
Auto release notes agent
Reads merged GitHub PRs, groups them into structured release notes, publishes the page to Notion, and announces the release in Slack. Every call runs on the engineer's own delegated OAuth.
Support and Ops Teams
Support ticket automation agent
Fetches new Zendesk tickets, drafts a reply from Notion knowledge base articles, digests what it cannot answer to Slack, and archives the rest, acting as the support agent rather than a shared API key.
Engineering Teams
Slack triage
Polls Slack for new messages, classifies bugs and support requests with a LangGraph router, files GitHub issues or Zendesk tickets, and confirms in the thread.
Engineering Teams
Engineering standup agent
Pulls commits from GitHub and GitLab, tracks issue movement in Jira, and posts a per-engineer standup brief to Slack. Each engineer's activity is read on their own delegated OAuth.
Test other agents
Reuse the same per-user OAuth 2.1 vault and audit chain on other localization and content connectors.
ENGINEERING
Auto-release notes agent
Group merged GitHub PRs into structured release notes, publish the page to Notion, and announce the release in Slack.
SUPPORT
Support ticket automation (Google ADK)
Fetch, annotate, and archive Zendesk tickets with Notion context, digesting anything it cannot answer to Slack.
ENGINEERING
Slack triage agent
Classify new Slack messages as bugs or support requests, file the GitHub issue or Zendesk ticket, and reply in the thread.
ENGINEERING
Engineering standup agent
Pull commits from GitHub and GitLab, track Jira issue movement, and post a per-engineer standup brief to Slack.
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""
}
}
}