The Smartling MCP connector routes your AI agent's tool calls to Smartling's own MCP server through Scalekit. Each user signs in to Smartling once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 115 tools.
- Tools
- 115
- What they doRead · write · destructive
- 32 · 62 · 2132 read62 write21 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Smartling MCP connection
In AgentKit > Connections, create a Smartling MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Smartling MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'smartlingmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Smartling MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'smartlingmcp_smartling_get_available_accounts_for_current_user',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "smartlingmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Smartling MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="smartlingmcp_smartling_get_available_accounts_for_current_user",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolsmartlingmcp_smartling_count_account_issuesCount issues across all projects in the current Smartling account (with optional project narrowing).Read-onlySmartlingCountAccountIssues
Count issues across all projects in the current Smartling account (with optional project narrowing). The account is taken from the MCP token credentials. # Use cases - Show a global issue badge for the user # Examples - All open: issue_state_codes=["OPENED"]
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
answeredboolean- Filter by answered state
assignee_user_uidstring- Filter to issues assigned to this user (max 12 chars)
created_date_afterstring- ISO 8601 timestamp; include issues created after this date
created_date_beforestring- ISO 8601 timestamp; include issues created before this date
has_commentsboolean- Filter by whether the issue has comments
issue_numbersarray- Filter by specific issue numbers (max 1000)
issue_severity_level_codesarray- Filter by severity (LOW, MEDIUM, HIGH)
issue_state_codesarray- Filter by state (OPENED, RESOLVED)
issue_sub_type_codesarray- Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
issue_type_codesarray- Filter by type (SOURCE, TRANSLATION)
issue_watching_state_codestring- Filter by current user's watching stateone of
WATCHINGNOT_WATCHING job_filterobject- Filter by job containment
project_idsarray- Optional: limit to specific project UIDs
reopenedboolean- Filter by reopened state
reported_by_user_uidstring- Filter to issues reported by this user (max 12 chars)
resolved_date_afterstring- ISO 8601 timestamp; include issues resolved after this date
resolved_date_beforestring- ISO 8601 timestamp; include issues resolved before this date
string_filterobject- Filter by string properties
smartlingmcp_smartling_count_project_issuesCount issues within a single Smartling project matching the given filters.Read-onlySmartlingCountProjectIssues
Count issues within a single Smartling project matching the given filters. # Use cases - Display a badge of how many open issues a project has - Sanity-check filter shape before running a full find # Examples - Count all open issues: project_id="p1", issue_state_codes=["OPENED"]
Inputs
project_idstringrequired- The Smartling project UID
answeredboolean- Filter by answered state
assignee_user_uidstring- Filter to issues assigned to this user (max 12 chars)
created_date_afterstring- ISO 8601 timestamp; include issues created after this date
created_date_beforestring- ISO 8601 timestamp; include issues created before this date
has_commentsboolean- Filter by whether the issue has comments
issue_numbersarray- Filter by specific issue numbers (max 1000)
issue_severity_level_codesarray- Filter by severity (LOW, MEDIUM, HIGH)
issue_state_codesarray- Filter by state (OPENED, RESOLVED)
issue_sub_type_codesarray- Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
issue_type_codesarray- Filter by type (SOURCE, TRANSLATION)
issue_watching_state_codestring- Filter by current user's watching stateone of
WATCHINGNOT_WATCHING job_filterobject- Filter by job containment
reopenedboolean- Filter by reopened state
reported_by_user_uidstring- Filter to issues reported by this user (max 12 chars)
resolved_date_afterstring- ISO 8601 timestamp; include issues resolved after this date
resolved_date_beforestring- ISO 8601 timestamp; include issues resolved before this date
string_filterobject- Filter by string properties
smartlingmcp_smartling_execute_lqa_evaluationRun an automated Linguistic Quality Assurance (LQA) evaluation on a single translated string and get back any detected quality errors.Read-onlySmartlingExecuteLqaEvaluation
Run an automated Linguistic Quality Assurance (LQA) evaluation on a single translated string and get back any detected quality errors. # What is an LQA evaluation? LQA evaluation checks a translation against its source string using Smartling's linguistic quality rules (e.g. blocklist compliance, omissions, mistranslations) and returns the list of errors found, each with a category and severity. It does not modify the string or record the errors anywhere; it only reports what an LQA scan would flag. # Use cases - Automatically screen a translation for quality issues right after it's produced (e.g. from MT or a translator) - Gate a workflow step transition on the string passing LQA with no critical/major errors - Spot-check a translation on demand without waiting for a scheduled LQA pass # Examples - Minimal: account_id, project_uid, hashcode, source_locale_id="en", target_locale_id="fr-FR", original_string, translation - With job/workflow context: also pass job_uid, workflow_uid, workflow_step_uid so the evaluation is attributed to that job step - With custom metadata: metadata={"integrationType": "TEST"}
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
hashcodestringrequired- Hashcode of the string being evaluated. Not validated against Smartling content and does not need to correspond to an existing string; any non-empty string is accepted.
original_stringstringrequired- No description.
project_idstringrequired- The Smartling project UID the string belongs to
source_locale_idstringrequired- Locale identifier of the source string (e.g. "en")
target_locale_idstringrequired- Locale identifier of the translation (e.g. "fr-FR")
translationstringrequired- The translated text to evaluate against the source
job_uidstring- Translation job UID this evaluation is associated with
metadataobject- Arbitrary string key/value metadata to attach to the evaluation
word_countinteger- Word count of the string, used for reporting/metrics
workflow_step_uidstring- Workflow step UID this evaluation is associated with
workflow_uidstring- Workflow UID this evaluation is associated with
smartlingmcp_smartling_export_glossaryExport glossary entries in various formats (CSV, XLSX, TBX).Read-onlySmartlingExportGlossary
Export glossary entries in various formats (CSV, XLSX, TBX). # What is glossary export? Glossary export allows you to export glossary entries with various filtering and formatting options. You can export entries in CSV, XLSX, or TBX formats with comprehensive filtering capabilities including locale filtering, entry state filtering, label filtering, and more. # Use cases - User requests to export entire glossary in a specific format - User wants to export glossary entries for specific locales - User needs to export filtered glossary entries (by state, labels, date ranges, etc.) - User wants to export glossary in TBX format for translation memory systems - User needs to export glossary entries with specific sorting or pagination # Examples - Export full glossary as CSV: {"glossary_uid": "abc123", "format": "CSV", "locale_ids": ["en-US", "fr-FR"]} - Export active entries only: {"glossary_uid": "abc123", "format": "XLSX", "entry_state": "ACTIVE"} - Export with custom filters: {"glossary_uid": "abc123", "format": "TBX", "tbx_version": "TBXcoreStructV02", "query": "marketing terms"}
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
formatstringrequired- Export format. CSV for comma-separated values, XLSX for Excel format, TBX for translation exchange format.one of
CSVXLSXTBX glossary_uidstringrequired- UID of the glossary to export entries from.
created_by_filterobject- Filter entries by creator.
created_filterobject- Filter entries by creation date.
dnt_locale_idstring- Filter entries by "Do Not Translate" flag for specified locale.
dnt_term_setboolean- Filter entries based on "Do Not Translate" term setting.
entry_statestring- Filter entries by their state. ACTIVE for active entries only, ARCHIVED for archived entries only, BOTH for all entries.one of
ACTIVEARCHIVEDBOTH entry_uidsarray- Array of specific entry UIDs to export. If provided, only these entries will be exported.
focus_locale_idstring- Focus locale ID for the export. This locale will be prioritized in the export.
labelsobject- Filter entries by labels.
last_modified_by_filterobject- Filter entries by last modifier.
last_modified_filterobject- Filter entries by last modified date.
locale_idsarray- Array of locale IDs to include in export (e.g., ["en-US", "fr-FR", "de-DE"]). If not provided, all locales will be exported.
missing_translation_locale_idstring- Filter to include entries missing translations in specified locale.
pagingobject- Pagination settings for the export.
present_translation_locale_idstring- Filter to include entries with translations present in specified locale.
querystring- Search query to filter entries by term content.
return_fallback_translationsboolean- Whether to include fallback translations in the export. Default is false.
skip_entriesboolean- Whether to skip entry details and export only metadata. Default is false.
sortingobject- Sorting settings for the export.
tbx_versionstring- TBX version to use when exporting in TBX format. Only relevant when format is "TBX".one of
TBXcoreStructV02TBXcoreStructV03
smartlingmcp_smartling_find_account_issuesSearch issues across all projects in the current Smartling account, with pagination, sorting, filters, and optional project narrowing.Read-onlySmartlingFindAccountIssues
Search issues across all projects in the current Smartling account, with pagination, sorting, filters, and optional project narrowing. The account is taken from the MCP token credentials. # Use cases - Find all HIGH-severity OPEN issues across the whole account - Cross-project triage of recent issues # Examples - All open: issue_state_codes=["OPENED"] - Narrow to two projects: project_ids=["p1","p2"]
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
answeredboolean- Filter by answered state
assignee_user_uidstring- Filter to issues assigned to this user (max 12 chars)
created_date_afterstring- ISO 8601 timestamp; include issues created after this date
created_date_beforestring- ISO 8601 timestamp; include issues created before this date
has_commentsboolean- Filter by whether the issue has comments
issue_numbersarray- Filter by specific issue numbers (max 1000)
issue_severity_level_codesarray- Filter by severity (LOW, MEDIUM, HIGH)
issue_state_codesarray- Filter by state (OPENED, RESOLVED)
issue_sub_type_codesarray- Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
issue_type_codesarray- Filter by type (SOURCE, TRANSLATION)
issue_watching_state_codestring- Filter by current user's watching stateone of
WATCHINGNOT_WATCHING job_filterobject- Filter by job containment
limitinteger- Page size (1–30; default 30)default
30 offsetinteger- Pagination offset, non-negative
project_idsarray- Optional: limit to specific project UIDs
reopenedboolean- Filter by reopened state
reported_by_user_uidstring- Filter to issues reported by this user (max 12 chars)
resolved_date_afterstring- ISO 8601 timestamp; include issues resolved after this date
resolved_date_beforestring- ISO 8601 timestamp; include issues resolved before this date
sort_byobject- Sort specification
string_filterobject- Filter by string properties
smartlingmcp_smartling_find_project_issuesSearch issues within a single Smartling project, with pagination, sorting, and rich filters.Read-onlySmartlingFindProjectIssues
Search issues within a single Smartling project, with pagination, sorting, and rich filters. # Use cases - List all OPEN issues in a project, newest first - Find HIGH-severity TRANSLATION issues assigned to a specific user - Count + page through a project's issue backlog # Examples - All open issues: project_id="p1", issue_state_codes=["OPENED"] - By assignee: assignee_user_uid="user-1" - Sorted by creation date: sort_by={items:[{direction:"DESC", field_name:"createdDate"}]}, limit=30
Inputs
project_idstringrequired- The Smartling project UID
answeredboolean- Filter by answered state
assignee_user_uidstring- Filter to issues assigned to this user (max 12 chars)
created_date_afterstring- ISO 8601 timestamp; include issues created after this date
created_date_beforestring- ISO 8601 timestamp; include issues created before this date
has_commentsboolean- Filter by whether the issue has comments
issue_numbersarray- Filter by specific issue numbers (max 1000)
issue_severity_level_codesarray- Filter by severity (LOW, MEDIUM, HIGH)
issue_state_codesarray- Filter by state (OPENED, RESOLVED)
issue_sub_type_codesarray- Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
issue_type_codesarray- Filter by type (SOURCE, TRANSLATION)
issue_watching_state_codestring- Filter by current user's watching stateone of
WATCHINGNOT_WATCHING job_filterobject- Filter by job containment
limitinteger- Page size (1–30; default 30)default
30 offsetinteger- Pagination offset, non-negative
reopenedboolean- Filter by reopened state
reported_by_user_uidstring- Filter to issues reported by this user (max 12 chars)
resolved_date_afterstring- ISO 8601 timestamp; include issues resolved after this date
resolved_date_beforestring- ISO 8601 timestamp; include issues resolved before this date
sort_byobject- Sort specification
string_filterobject- Filter by string properties
smartlingmcp_smartling_get_available_accounts_for_current_userGet available accounts for the current user.Read-onlySmartlingGetAvailableAccountsForCurrentUser
Get available accounts for the current user. # What are available accounts? Available accounts are Smartling accounts that the current authenticated user has access to. This tool is essential for determining which account UID to use with other Smartling MCP tools. # Use cases - User needs to determine which account UID to use before calling other Smartling tools - User wants to see all accounts they have access to - User needs to select the correct account context for their operations - Required before using other Smartling MCP tools that need accountUid parameter # Important Notes - This tool must be used before other Smartling MCP tools that require accountUid parameter - If the tool returns more than 1 account UID, the user will be asked to specify which one to use - The account UID from this response should be used in subsequent tool calls # Examples - Get available accounts: Use without any parameters - Account selection: If multiple accounts are returned, user must choose which account UID to use
Inputs
limitinteger- Defaults to 100 if omitted.
smartlingmcp_smartling_get_glossaryRetrieve a specific glossary from the current Smartling account by its UID.Read-onlySmartlingGetGlossary
Retrieve a specific glossary from the current Smartling account by its UID. # What is glossary? A Glossary is a list of terms and expressions that represent your brand, and influence your translations. Companies create Glossaries in order to provide a shared understanding of terms to be used across all business units and languages. With Smartling, you will be able to utilize the Glossary to synchronize translations across all responsible parties working on your translations. # Use cases - User requests to get detailed information about a specific glossary - Resolving glossary(s) by project: - If you have only project name then you can chain next tools to get glossaries uids: smartling_list_projects -> smartling_get_project -> smartling_get_linguistic_package (glossaries uids might be inside linguistic package) -> smartling_list_glossaries or smartling_get_glossary. - If you have project uid then you can chain next tools to get glossaries uids: smartling_get_project -> smartling_get_linguistic_package (glossaries uids might be inside linguistic package) -> smartling_list_glossaries or smartling_get_glossary.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
glossary_uidstringrequired- UID of the glossary to retrieve.
smartlingmcp_smartling_get_issueRetrieve detailed information about a specific string issue.Read-onlySmartlingGetIssue
Retrieve detailed information about a specific string issue. # What is a string issue? A string issue is a question, clarification request, or quality flag raised against a specific string (source or translation) inside a Smartling project. # Use cases - Inspect the full state of one issue by its UID - Read severity, type, comments count, and assignee on a single issue # Examples - Get an issue: project_id="abc123", issue_uid="issue-uid-1"
Inputs
issue_uidstringrequired- The unique identifier of the issue to retrieve
project_idstringrequired- The Smartling project UID the issue belongs to
smartlingmcp_smartling_get_issue_commentRetrieve a single issue comment by UID.Read-onlySmartlingGetIssueComment
Retrieve a single issue comment by UID. # Use cases - Read the full text of one specific comment # Examples - project_id="p1", issue_uid="i1", issue_comment_uid="c1"
Inputs
issue_comment_uidstringrequired- The comment UID
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_get_jobGet detailed information about a specific Smartling job by its UID.Read-onlySmartlingGetJob
Get detailed information about a specific Smartling job by its UID. # What is a job? A job is a translation task that contains files to be translated. Jobs help organize and manage translation work by grouping files together with specific target languages, due dates, and workflow requirements. # Use cases - User requests to get detailed information about a specific job - User needs to see comprehensive job details including source files, custom fields, and metadata - User wants to retrieve job priority, callback configuration, and user details - User needs to understand job creation and modification history # Examples - Get job by UID: Provide project_id and job_uid parameters - Retrieve job details: Returns complete job configuration with priority, source files, and custom fields - Check job progress: View job status, creation date, due date, and completion dates # Job Details Response The response includes extended job information beyond the basic job list: - Job priority level - Array of source files in the job - Callback method and URL configuration - Creation and modification user details - Custom field values - Complete job metadata and timestamps
Inputs
job_uidstringrequired- The unique identifier of the job to retrieve (e.g., "job-uid-123", "translation-job-456")
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
smartlingmcp_smartling_get_job_historyGet the audit history of a specific Smartling job.Read-onlySmartlingGetJobHistory
Get the audit history of a specific Smartling job. # What is job history? Job history is the chronological audit trail of everything that has happened to a job: creation, status changes, content additions/removals, due date changes, priority changes, and rush request create/remove events. Each entry records the action, when it started/ended, who (if anyone) performed it, and event-specific details. # Use cases - User wants to know who changed a job's due date or priority, and when - User needs to see when content was added to or removed from a job - User wants an audit trail of status changes for a job - User is investigating unexpected job behavior and needs the sequence of events # Examples - Get recent history: Provide project_id and job_uid (returns up to 100 most recent entries) - Page through longer histories: Use offset with limit to retrieve subsequent pages, guided by totalCount in the response # Pagination - limit: Page size, 1-100 (default 100 if omitted) - offset: Zero-based offset into the history (default 0 if omitted) - totalCount in the response tells you how many entries exist in total
Inputs
job_uidstringrequired- The unique identifier of the job to retrieve history for (e.g., "job-uid-123")
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
limitinteger- (Optional) Page size (1-100; default 100). Capped at 100 to keep responses manageable; use offset to page through longer histories.
offsetinteger- (Optional) Pagination offset, non-negative. Defaults to 0 if omitted.
smartlingmcp_smartling_get_linguistic_packageRetrieve a specific linguistic package from the current Smartling account by its UID.Read-onlySmartlingGetLinguisticPackage
Retrieve a specific linguistic package from the current Smartling account by its UID. # What is linguistic package? A linguistic package is a collection of translation resources, including glossaries and style guides that are used to ensure consistent and accurate translations. This bundle contains settings that determine which linguistic assets (glossaries, style guides) are provided to translators for your projects. # Use cases - User requests to get detailed information about a specific linguistic package. - Resolving linguistic package by project: - If you have only project name then you can chain next tools to get linguistic package: smartling_list_projects -> smartling_get_project -> smartling_get_linguistic_package. - If you have project uid then you can chain next tools to get linguistic package: smartling_get_project -> smartling_get_linguistic_package.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
linguistic_package_uidstringrequired- UID of the linguistic package to retrieve.
smartlingmcp_smartling_get_projectRetrieve a specific project from the current Smartling account by its UID.Read-onlySmartlingGetProject
Retrieve a specific project from the current Smartling account by its UID. # What is project? A project is a translation environment for the various types of content user wants to translate. # Use cases - User requests to get detailed information about a specific project.
Inputs
project_uidstringrequired- UID of the project to retrieve.
smartlingmcp_smartling_get_styleguideGet specific style guide by its unique identifier.Read-onlySmartlingGetStyleguide
Get specific style guide by its unique identifier. # What is styleguide? A Style Guide is a collection of rules about your preferences regarding content formatting, writing tone, and style. It is a tool for ensuring the language and tone of your brand is found accurate and consistent in your translations. # Use cases - User requests to get detailed information about a specific style guide.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
style_guide_uidstringrequired- Unique identifier of the style guide to retrieve. Must ask user if not provided.
smartlingmcp_smartling_get_word_count_reportGet word count report from Smartling in CSV format for efficient analysis.Read-onlySmartlingGetWordCountReport
Get word count report from Smartling in CSV format for efficient analysis. # What is word count report? A word count report provides detailed information about word counts and weighted word counts for translation work. It includes data about projects, jobs, translation resources, agencies, locales, workflow steps, and fuzzy matching profiles. # API Constraints **CRITICAL**: The date range between start_date and end_date must be **less than 1 year (365 days)**. The API will return a validation error if the range exceeds this limit. # IMPORTANT: Apply Filters to Minimize Response Size **Always encourage users to apply as many filters as possible** to keep response size manageable: - **project_ids**: Filter by specific projects (most important filter) - **target_locale_ids**: Filter by specific target locales - **job_uids**: Filter by specific jobs - **user_uids**: Filter by specific translation resources - **workflow_step_types**: Filter by specific workflow steps (use smartling_get_workflow_step_types tool first) - **start_date/end_date**: Use narrow date ranges - **fields**: Request only the columns you need (see field list below) # Recommended Field Selection **Minimize the number of fields in the 'fields' parameter**. Only include what's needed for the specific query: - Minimal: "projectId,projectName,targetLocaleId,wordCount" - With job info: "projectId,projectName,targetLocaleId,jobUid,jobName,wordCount" - With translator: "projectId,targetLocaleId,translationResourceName,workflowStepType,wordCount" # Examples - Find projects with most words in French: {"start_date": "2024-01-01", "end_date": "2024-12-31", "target_locale_ids": ["fr-FR"], "fields": "projectId,projectName,wordCount"} - Find strings in AI Review step: {"start_date": "2024-01-01", "end_date": "2024-12-31", "workflow_step_types": ["AI Review"], "fields": "projectId,jobName,workflowStepType,wordCount"} - Translator productivity: {"start_date": "2024-01-01", "end_date": "2024-01-31", "user_uids": ["user-123"], "fields": "translationResourceName,targetLocaleId,wordCount"}
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
end_datestringrequired- End date for the report in ISO format (e.g., 2024-01-31) in America/New_York timezone. Note: The date range (end_date - start_date) must be less than 1 year (365 days).
start_datestringrequired- Start date for the report in ISO format (e.g., 2024-01-01) in America/New_York timezone. Note: The date range (end_date - start_date) must be less than 1 year (365 days).
agency_uidstring- The unique identifier of the agency to get report for
fieldsstring- List of fields to include in the response, separated by commas. Possible values: accountUid, accountName, projectId, projectName, targetLocaleId, targetLocale, jobUid, jobName, jobReferenceNumber, jobNumber, translationResourceUid, translationResourceName, agencyUid, agencyName, workflowStepType, workflowStepUid, workflowStepName, fuzzyProfileName, fuzzyTier, wordCount, weightedWordCount, characterCount. If not provided, next list is recommended as default value: projectId, projectName, targetLocaleId, jobUid, jobName, translationResourceName, workflowStepType, wordCount, characterCount.
job_uidsarray- List of the unique identifiers of the job to get report for
limitnumber- Maximum number of items to return (default: 10000, max: 10000)
offsetnumber- Pagination offset (0-based)
project_idsarray- List of the unique identifiers of the Smartling project to get report for
target_locale_idsarray- List of the target locale identifiers (e.g., "es", "fr-FR") to get report for
user_uidsarray- List of the unique identifiers of the translation resource/user to get report for
workflow_step_typesarray- The workflow step types to filter by (e.g., "Translation", "Review", "Edit"). Entire list can be fetched using the "Get Workflow Step Types" tool
smartlingmcp_smartling_get_workflow_step_typesGet available workflow step types from Smartling for use in reporting and filtering.Read-onlySmartlingGetWorkflowStepTypes
Get available workflow step types from Smartling for use in reporting and filtering. # What are workflow step types? Workflow step types define the different stages in a translation workflow, such as "Translation", "Review", "Edit", etc. This tool retrieves the complete list of available step types that can be used for filtering in other report tools. # Examples - Get all available workflow step types: {} (no parameters needed)
Inputs
This tool takes no inputs.
smartlingmcp_smartling_list_content_assignmentsList content assignments for the current Smartling account.Read-onlySmartlingListContentAssignments
List content assignments for the current Smartling account. # What is a content assignment? A content assignment represents a unit of translation work assigned to a translator (user) or an agency within a specific workflow step of a translation job. Each assignment ties together a project, target locale, workflow step, translation job, and the assignee responsible for completing the work, along with the word count and due dates relevant to that step. # Use cases - Discover who (translator or agency) is assigned to active translation work across the account - Audit workflow ownership across projects, locales, and jobs - Identify unassigned content assignments (entries where userUid and agencyUid are null) - Review upcoming workflow-step or overall job due dates for resource planning - Inspect word counts per workflow step for capacity planning # Examples - List all content assignments for the current account: {} (no parameters)
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
job_uidsarray- Translation job UIDs to scope the results to. Obtain them from smartling_list_jobs or smartling_search_strings. Omit only when no job scope is known, as this returns every assignment for the account.
smartlingmcp_smartling_list_file_jobsRetrieve a list of translation jobs where a specific file is involved in a Smartling project.Read-onlySmartlingListFileJobs
Retrieve a list of translation jobs where a specific file is involved in a Smartling project. Returns a list of translation jobs that include the specified file. Each job object contains job metadata (UID, status, dates). **Special case - Unassigned strings**: If the file contains strings that are NOT assigned to any job, the response includes a special indicator object with all null values `{"jobUid":null,"dueDate":null,"createdDate":null,"status":null}`. This signals that some file content remains unassigned. # Use cases - Check which translation jobs contain a specific file - Identify files with unassigned strings that need job assignment - Diagnose why the connector doesn't deliver completed jobs (file content may span multiple incomplete jobs) # Parameters - project_uid: The unique identifier of the Smartling project - file_uri: The URI of the file to check job status for
Inputs
file_uristringrequired- The URI of the file to check (e.g., "/content/app.json", "strings/mobile.properties")
project_uidstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
smartlingmcp_smartling_list_glossariesList glossaries by set of filters.Read-onlySmartlingListGlossaries
List glossaries by set of filters. # Use cases - User requests to retrieve glossaries: - User asked to retrieve a list of all glossaries - User asked to search for glossaries by name or description - User asked to filter glossaries by state (active, archived, both) - User asked to look for glossary for a specific target locale - User asked to retrieve several glossaries by their UIDs
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
glossary_statestring- Defaults to BOTH (active and archived) when omitted.one of
ACTIVEARCHIVEDBOTH glossary_uidsarray- No description.
include_entries_countboolean- Whether to include the entries count for each glossary in the response. Defaults to true when omitted.
limitinteger- Page size. Defaults to 100 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
querystring- Allows searching glossaries by query within glossaryName or description properties. Also supports exact search by glossaryUid.
target_locale_idstring- Filter glossaries that have the specified target locale preconfigured.
smartlingmcp_smartling_list_issue_commentsList all comments on an issue.Read-onlySmartlingListIssueComments
List all comments on an issue. # Use cases - Read the discussion thread on an issue before responding - Audit comment activity for a specific issue # Examples - project_id="p1", issue_uid="i1"
Inputs
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_list_jobsList jobs from a specific Smartling project with optional filtering.Read-onlySmartlingListJobs
List jobs from a specific Smartling project with optional filtering. # Use cases - User requests to retrieve all jobs from a project - User wants to filter jobs by name or status - User needs to see job progress and status information - User wants to understand what translation work is available or in progress # Examples - List all jobs in a project: Use only project_id parameter - Find jobs by name: Include job_name parameter for filtering - Filter by status: Use job_statuses parameter with specific statuses - Find active jobs: Use job_statuses=["IN_PROGRESS","AWAITING_AUTHORIZATION"] # Job Statuses Available job statuses include: - AWAITING_AUTHORIZATION: Job is waiting for approval to start - IN_PROGRESS: Job is currently being worked on - COMPLETED: Job has been finished - CANCELLED: Job was cancelled before completion - CLOSED: Job was closed after completion
Inputs
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
job_namestring- Filter by name (partial match).
job_statusesarray- Filter by job status.
limitinteger- Page size. Defaults to 100 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
smartlingmcp_smartling_list_linguistic_packagesList all linguistic packages from the current Smartling account.Read-onlySmartlingListLinguisticPackages
List all linguistic packages from the current Smartling account. # Use cases - User requests to get a list of available linguistic packages. # Examples - List all linguistic packages: {"account_id": "your-account-uid"}
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
smartlingmcp_smartling_list_projectsList projects from the current Smartling account by name.Read-onlySmartlingListProjects
List projects from the current Smartling account by name. # Use cases - User requests to retrieve projects: - User asked to retrieve a list of all projects - User asked to search for projects by name - User asked to filter archived projects - User asked to look for projects with a specific project type codes - Resolving project by project name: - If you have only project name then you can chain next tools to get project details: smartling_list_projects -> smartling_get_project (project list tool returns a simplified objects list with no additional information, so it needs to be followed by a get project call). # Examples - List all projects: {} (no parameters) - Find projects by name: { "project_name_filter": "Mobile App" } - List active projects of specific type: { "include_archived": false, "project_type_codes": ["web", "mobile"] }
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
include_archivedboolean- Whether to include archived projects (default: only active projects are listed)
limitinteger- Page size. Defaults to 100 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
project_name_filterstring- Name to filter projects by. Omit the parameter rather than passing an empty string; ask the user if unspecified.
project_type_codesarray- Project type codes to filter by. Omit the parameter rather than passing an empty array; ask the user if unspecified.
smartlingmcp_smartling_list_styleguidesList style guides from the current Smartling account by name.Read-onlySmartlingListStyleguides
List style guides from the current Smartling account by name. # Use cases - User requests to retrieve style guides: - User requests to retrieve all style guides. - User requests to retrieve style guides based on their names. # Examples - List all style guides: {} (no parameters) - Find style guides by name: { "name": "Marketing" }
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
namestring- Name of the style guide to filter by. If not provided, all style guides will be listed. Do not enter empty string value if not provided, call tool without parameters instead. Must ask user if not provided.
smartlingmcp_smartling_list_usersList users from a Smartling account with optional filtering.Read-onlySmartlingListUsers
List users from a Smartling account with optional filtering. # What are users in Smartling? Users are individuals who have access to the Smartling platform with specific roles and permissions. They can be translators, project managers, reviewers, or other team members involved in the localization process. # Use cases - User requests to retrieve all users from the account - User wants to search for specific users by name - User needs to filter users by role or project assignment - User wants to find users with specific status (active, pending) - User wants to find users assigned to specific projects - User needs to retrieve user contact information # Examples - List all users: Use without any parameters - Search by name: Use keyword parameter to search in first and last names - Filter by role: Use user_roles parameter with specific role names - Find project users: Use project_ids parameter to find users assigned to specific projects - Get active users: Use user_status="ACTIVE" to filter only active users # User Statuses Available user statuses include: - ALL: All users regardless of status (default) - ACTIVE: Users who are currently active - PENDING: Users who have pending invitations # Common Roles Common user roles in Smartling include: - ROLE_TRANSLATION_RESOURCE: Translation Resource - ROLE_PROJECT_MANAGER: Project Manager - ROLE_ACCOUNT_OWNER: Account Owner
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
keywordstring- Search keyword to filter users by first or last name (wildcard match).
limitinteger- Page size. Defaults to 100 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
project_idsarray- Project IDs to filter users assigned to those projects.
user_rolesarray- Role names to filter by. Example: ["ROLE_TRANSLATION_RESOURCE", "ROLE_PROJECT_MANAGER"]
user_statusstring- Filter by user status. Defaults to ALL.one of
ALLACTIVEPENDING user_uidsarray- Specific user UIDs to retrieve.
smartlingmcp_smartling_list_workflowsList workflows from a specific Smartling project with optional filtering.Read-onlySmartlingListWorkflows
List workflows from a specific Smartling project with optional filtering. # What is a workflow? A workflow in Smartling defines the translation process steps that content goes through from source to target languages. Each workflow contains steps like translation, editing, review, and publishing, with specific configurations for each step. # Use cases - User requests to retrieve all workflows for a project - User wants to search workflows by keyword - User needs to filter workflows by specific locales - User wants to find workflows with specific UIDs or step UIDs - User needs to understand the translation process configuration # Important Notes - Results are limited to the first 100 workflows to avoid response size limits - Response includes essential workflow and step information with verbose fields removed for performance # Examples - List all workflows in a project: { "project_id": "project-123" } - Search workflows by keyword: { "project_id": "project-123", "keyword": "marketing" } - Filter workflows by locales: { "project_id": "project-123", "locale_ids": ["es-ES", "fr-FR"] } - Find specific workflows: { "project_id": "project-123", "workflow_uids": ["workflow-uid-1", "workflow-uid-2"] }
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
keywordstring- Keyword to search for in workflow names, supports partial matching
limitinteger- Defaults to 100 if omitted.
locale_idsarray- Locale identifiers to filter workflows that include these locales, e.g. ["es-ES", "fr-FR", "de-DE"]
project_idstring- Project UID to search within. If omitted, returns workflows across all projects (if supported).
workflow_step_uidsarray- Workflow step UIDs to filter workflows that contain these steps
workflow_uidsarray- Specific workflow UIDs to retrieve
smartlingmcp_smartling_machine_translate_fileTranslates file content using machine translation.Read-onlySmartlingMachineTranslateFile
Translates file content using machine translation. # Use cases - User requests to translate files (text or binary). Two ways to supply the file - provide exactly one of `upload_id` or `file_content`: 1. `upload_id` (preferred, default choice): call smartling_request_upload_url first, PUT the file to the returned URL, then pass the returned upload_id here. Use this whenever you can run shell commands (e.g. Claude Code, Codex CLI, opencode, Cursor, Cline, Windsurf), regardless of file size or type - do not fall back to file_content just because the file is small. 2. `file_content` (inline base64): only use this when you cannot run shell commands (e.g. claude.ai) or the user explicitly asks for inline/base64 content. Auto-detects source language if `source_locale` not provided. Must ask user for `target_locale` if not specified.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
file_namestringrequired- Original filename for context.
mime_typestringrequired- MIME type of the file.
target_localestringrequired- Target language locale code (2 or 5 letters, e.g., "en" or "en-US", dash separator only). Must ask user if not provided.
file_contentstring- File content encoded as base64 string. Exactly one of file_content or upload_id must be provided. Use upload_id instead whenever you can run shell commands (e.g. Claude Code, Codex CLI, opencode, Cursor, Cline, Windsurf) - only use file_content when you cannot, or the user explicitly asks for inline/base64 content.
source_localestring- Source language locale code (2 or 5 letters, e.g., "it" or "it-IT", dash separator only). Auto-detected if omitted.
upload_idstring- Identifier returned by a prior smartling_request_upload_url call. Exactly one of file_content or upload_id must be provided. Preferred over file_content whenever you can run shell commands (e.g. Claude Code, Codex CLI, opencode, Cursor, Cline, Windsurf) - call smartling_request_upload_url first, PUT the file, then pass the returned upload_id here, regardless of file size.
smartlingmcp_smartling_machine_translate_textTranslates text content using machine translation.Read-onlySmartlingMachineTranslateText
Translates text content using machine translation. # Use cases - User requests to translate text or simple text files (txt format). For file translation, read the file contents first. Split long text into sentence-based chunks to preserve meaning and context - avoid breaking mid-sentence or splitting related content. Each chunk becomes an object `{ "key": "<unique_key>", "source_text": "<text_to_translate>" }` with `key` (unique identifier) and `source_text` (content to translate) in the `text_items_to_translate` array. Total request size must not exceed 10MB. Auto-detects source language if `source_locale` not provided. Must ask user for `target_locale` if not specified.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
target_localestringrequired- Target language locale code (2 or 5 letters, e.g., "en" or "en-US", dash separator only). Must ask user if not provided.
text_items_to_translatearrayrequired- Array of text items to be translated. Each item should have a unique key and the text to be translated.
source_localestring- Source language locale code (2 or 5 letters, e.g., "it" or "it-IT", dash separator only). Auto-detected if omitted.
smartlingmcp_smartling_match_glossary_termsMatch terms within a specific glossary.Read-onlySmartlingMatchGlossaryTerms
Match terms within a specific glossary. # Use cases - User requests to find specific terms in a source and translated strings. - User requests to find specific terms in a source only strings. # Examples - Match glossary terms in source and translated strings: { "glossary_uids": ["glossary-uid-1"], "source_locale_id": "en-US", "translation_locale_id": "fr-FR", "source_text_to_match": [ { "key": "text-1", "text": "Hello" }, { "key": "text-2", "text": "World" } ], "translation_text_to_match": [ { "key": "text-1", "text": "Bonjour" }, { "key": "text-2", "text": "Monde" } ] } - Match glossary terms in source only strings (pass only source strings but leave translation strings empty and preserve keys): { "glossary_uids": ["glossary-uid-1"], "source_locale_id": "en-US", "translation_locale_id": "fr-FR", "source_text_to_match": [ { "key": "text-1", "text": "Hello" }, { "key": "text-2", "text": "World" } ], "translation_text_to_match": [ { "key": "text-1", "text": "" }, { "key": "text-2", "text": "" } ] }
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
glossary_uidsarrayrequired- Array of glossary UIDs to search within.
source_locale_idstringrequired- Source locale ID for the terms to match.
source_text_to_matcharrayrequired- Source text to match against glossary terms.
translation_locale_idstringrequired- Target locale ID for the terms to match.
translation_text_to_matcharrayrequired- Translation text to match against glossary terms. If you need to only find terms in source string then set source_text_to_match and leave translation_text_to_match[N].text empty (you still need to pass translation_text_to_match[N].key).
mt_optimized_terms_onlyboolean- Whether to include only MT-optimized terms. If not specified then MT-optimized only terms will be included.
smartlingmcp_smartling_search_stringsSearch for strings in a Smartling project using various filters.Read-onlySmartlingSearchStrings
Search for strings in a Smartling project using various filters. # What is string searching? String searching allows you to find translation strings within a Smartling project based on various criteria like status, content, target locales, and more. This helps manage and locate specific strings for translation workflows. # Use cases - User requests to find strings by status (e.g., "untranslated", "translated", "approved") - User wants to search strings by source content keywords - User needs to find strings for specific target locales - User wants to discover strings in a project for review or analysis - User needs to find strings matching specific criteria for translation management # Examples - Search all untranslated strings in a project: Use project_uid and status parameters - Find strings containing specific text: Use project_uid and source_keyword parameters - Search strings for specific locales: Use project_uid and locale_ids parameters - General string discovery: Use project_uid parameter only for all strings (up to 100 results)
Inputs
project_uidstringrequired- The unique identifier of the Smartling project to search strings within (e.g., "project-uid-123", "abc123def456")
active_strings_filterobject- No description.
assignment_filterobject- No description.
context_filterobject- Filter by context presence, optionally narrowed by URL or UID
estimated_edit_effort_filterobject- No description.
hashcodesarray- Specific string hashcodes to search for (unique string identifiers)
history_filterobject- No description.
ingestion_warning_type_filterobject- No description.
instructions_filterobject- No description.
issues_filterobject- No description.
key_variant_filterobject- No description.
limitinteger- Page size. Defaults to 100 if omitted.
locale_idsarray- Target locale identifiers to filter by (e.g., ["es-ES", "fr-FR", "de-DE"])
namespace_filterobject- No description.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
placeholder_plurals_selectorstring- Filter strings by placeholder/plural presenceone of
HAS_PLACEHOLDERSHAS_PLURALSHAS_BOTH prepublish_filterobject- No description.
source_keywordstring- Text to search for within source string content (partial match)
source_onlyboolean- Whether to return only source strings without translation data
statusstring- Filter by translation statusone of
AWAITING_AUTHIN_PROGRESSPUBLISHEDEXCLUDED tags_filterobject- No description.
translation_jobs_filterobject- No description.
translation_review_filterobject- No description.
translations_filterobject- No description.
urls_filterobject- No description.
workflow_steps_filterobject- No description.
smartlingmcp_smartling_search_translation_memorySearch translation memory for similar translations in a Smartling project.Read-onlySmartlingSearchTranslationMemory
Search translation memory for similar translations in a Smartling project. # What is translation memory? A Translation Memory is a cloud-based database of all translations that have occurred within your Smartling account, as well as any translations that you may have imported to Smartling. Translation Memories are used to leverage (or read from) previously used translations with new source content - allowing for cost savings, time savings, and translation consistency. As translations are saved, they write to a designated Translation Memory. # Use cases - Useful for finding existing translations that match or are similar to source text. # Examples - Search for translations of "Hello world" in French: { "project_id": "project-uid-123", "locale_id": "fr-FR", "search": "Hello world", "minimum_score": 0.7 } - Find exact matches for UI text: { "project_id": "project-uid-123", "locale_id": "es-ES", "search": "Click here to continue", "minimum_score": 0.95 }
Inputs
locale_idstringrequired- The target locale identifier (e.g., "es-ES", "fr-FR") to search translations for. Must ask user if not provided.
project_idstringrequired- The unique identifier of the Smartling project to search translation memory within. Must ask user if not provided.
searchstringrequired- The source text to find similar translations for in translation memory.
max_resultsinteger- There is no offset for this endpoint - this caps the result set rather than paging through it.
minimum_scorenumber- Minimum similarity score threshold. Higher values return more exact matches - for example, 0.5 means 50% similarity minimum. Defaults to 0.1 if not specified.default
0.1
smartlingmcp_smartling_add_issue_commentPost a new comment on an issue.WriteSmartlingAddIssueComment
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"
Inputs
comment_textstringrequired- Comment body text (1–4000 chars)
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_add_styleguide_attachmentAdd a link or file attachment to a Smartling style guide.WriteSmartling Add Styleguide Attachment
Add a link or file attachment to a Smartling style guide. attachment_type picks which other fields apply: - LINK: requires url. file_content/upload_id/file_name are not allowed. - FILE: requires exactly one of file_content or upload_id (see below). url is not allowed. Two ways to supply a FILE attachment's content - provide exactly one of `upload_id` or `file_content`: 1. `upload_id` (preferred, default choice): call smartling_request_upload_url first, PUT the file to the returned URL, then pass the returned upload_id here. Use this whenever you can run shell commands, regardless of file size or type. 2. `file_content` (inline base64): only use this when you cannot run shell commands, or the user explicitly asks for inline/base64 content. File attachments are limited to 25MB. # Examples - Add a link: attachment_type="LINK", description="Brand guidelines", url="https://example.com/brand.pdf" - Add a file: attachment_type="FILE", description="Logo usage guide", upload_id="<id from smartling_request_upload_url>"
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
attachment_typestringrequired- No description.one of
LINKFILE descriptionstringrequired- No description.
style_guide_uidstringrequired- Unique identifier of the style guide to attach to. Must ask user if not provided.
file_contentstring- Base64-encoded file content. Alternative to upload_id (see description).
file_namestring- Original filename. Only allowed when attachment_type is FILE.
upload_idstring- From smartling_request_upload_url. Preferred over file_content.
urlstring- Required when attachment_type is LINK
smartlingmcp_smartling_create_issueCreate a new string issue (question, clarification, quality flag) on a Smartling string.WriteSmartlingCreateIssue
Create a new string issue (question, clarification, quality flag) on a Smartling string. # Use cases - Translator flags an ambiguous source string with a CLARIFICATION sub-type - QA raises a POOR_TRANSLATION issue against a translation - PM creates a CUSTOM source issue with a HIGH severity assignment # Examples - Minimal: project_id, issue_text, issue_type=TRANSLATION, issue_sub_type=CLARIFICATION, string={hashcode, locale_id} - With assignee + severity: also pass assignee_user_uid and issue_severity_level=HIGH
Inputs
issue_sub_typestringrequired- Issue sub-type (CLARIFICATION, MISSPELLING, POOR_TRANSLATION, DOES_NOT_FIT_SPACE, PLACEHOLDER_ISSUE, REVIEW_TRANSLATION, CUSTOM, MT_ERROR)one of
CLARIFICATIONMISSPELLINGPOOR_TRANSLATIONDOES_NOT_FIT_SPACEPLACEHOLDER_ISSUEREVIEW_TRANSLATIONCUSTOMMT_ERROR issue_textstringrequired- Issue body text (1–4000 chars)
issue_typestringrequired- Issue type: SOURCE or TRANSLATIONone of
SOURCETRANSLATION project_idstringrequired- The Smartling project UID
stringobjectrequired- The string this issue is attached to
assignee_user_uidstring- Optional: user UID to assign the issue to (max 12 chars)
issue_severity_levelstring- Optional: severity (LOW, MEDIUM, HIGH)one of
LOWMEDIUMHIGH
smartlingmcp_smartling_create_jobCreate Smartling job.WriteSmartlingCreateJob
Create Smartling job. # Use cases - User needs to create jobs with specific parameters # Job Details Response The response includes detailed job information: - Callback method and URL configuration - Creation and modification user details - Custom field values - Complete job metadata and timestamps
Inputs
job_namestringrequired- Name of the job
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
target_locale_idsarrayrequired- Array of target locale IDs for translation
callback_methodstring- Callback method configuration (GET, POST, etc.)one of
GETPOST callback_urlstring- Callback URL for job notifications
custom_fieldsarray- Array of custom field values for the job
descriptionstring- Job description
due_datestring- Due date for job completion
reference_numberstring- Reference number for the job
smartlingmcp_smartling_create_job_batchCreate a new job batch to upload multiple files and attach them to a translation job in one coordinated flow.WriteSmartling Create Job Batch
Create a new job batch to upload multiple files and attach them to a translation job in one coordinated flow. A batch declares a list of file URIs up front, then lets you upload each file (smartling_upload_file_to_job_batch), register/cancel individual files as needed (smartling_process_job_batch_action), and track progress (smartling_get_job_batch_status) - instead of you polling each upload/parse/attach step yourself. The batch automatically executes once every declared file is either uploaded or canceled. - translation_job_uid must reference an existing job (see smartling_get_or_create_translation_job or smartling_create_job) - file_uris must be unique within the batch - rush_job is only valid when authorize is true; setting it with authorize=false is rejected - locale_workflows[].translation_job_workflow_step_due_dates can only be set when authorize is true
Inputs
authorizebooleanrequired- If true, the job is authorized once every file in the batch has finished uploading and attaching.
file_urisarrayrequired- File URIs to be uploaded to this batch later. Must be unique within the batch.
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
translation_job_uidstringrequired- The UID of the previously created translation job this batch will attach files to
locale_workflowsarray- Array of locale-workflow mappings to assign specific workflows to target locales.
rush_jobboolean- Request rush delivery when the job is authorized. Only valid when authorize is true; rejected otherwise.
smartlingmcp_smartling_create_styleguideCreate a new Smartling style guide for an account.WriteSmartling Create Styleguide
Create a new Smartling style guide for an account. style_guide_type picks which other fields apply: - PLAINTEXT: a style guide defined by free-form text. Requires text. Does not accept any of the SMARTLING-only fields below. - SMARTLING: a structured style guide built from discrete stylistic fields (tone, grammar voice, translation exceptions, etc.), all optional. Does not accept text. name must be unique within the account. base_locale_id is a locale code (e.g. "en-US" or "en"). # Examples - Create a plaintext style guide: style_guide_type="PLAINTEXT", name="Marketing", base_locale_id="en-US", text="Always use a friendly, upbeat tone." - Create a structured style guide: style_guide_type="SMARTLING", name="Support Docs", base_locale_id="en-US", grammar_voice="ACTIVE_VOICE", capitalization=true
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
base_locale_idstringrequired- Locale code (e.g. "en-US" or "en").
namestringrequired- Must be unique within the account.
style_guide_typestringrequired- Determines which other fields apply - see descriptionone of
PLAINTEXTSMARTLING abbreviationsstring- (SMARTLING only)one of
ACCEPTABLENOT_ACCEPTABLE abbreviations_end_in_periodboolean- (SMARTLING only)
additional_instructionsstring- (SMARTLING only)
audience_descriptionstring- (SMARTLING only)
bullet_end_in_periodboolean- (SMARTLING only)
bullet_with_capital_letterboolean- (SMARTLING only)
capitalizationboolean- (SMARTLING only)
company_descriptionstring- (SMARTLING only)
expressionsstring- (SMARTLING only)one of
APPROPRIATEINAPPROPRIATE grammar_voicestring- (SMARTLING only)one of
ACTIVE_VOICEPASSIVE_VOICE industry_descriptionstring- (SMARTLING only)
language_stylestring- (SMARTLING only)one of
FORMALINFORMAL no_periods_after_units_of_measureboolean- (SMARTLING only)
no_translate_branded_namesboolean- (SMARTLING only)
no_translate_currenciesboolean- (SMARTLING only)
no_translate_datesboolean- (SMARTLING only)
no_translate_geographical_namesboolean- (SMARTLING only)
no_translate_mail_addressesboolean- (SMARTLING only)
no_translate_numbersboolean- (SMARTLING only)
no_translate_other_location_namesboolean- (SMARTLING only)
no_translate_product_namesboolean- (SMARTLING only)
no_translate_timesboolean- (SMARTLING only)
no_translate_units_of_measureboolean- (SMARTLING only)
no_translate_urlsboolean- (SMARTLING only)
no_translate_user_namesboolean- (SMARTLING only)
no_translate_web_site_namesboolean- (SMARTLING only)
product_descriptionstring- (SMARTLING only)
textstring- (PLAINTEXT only, required for PLAINTEXT) Free-form style guide text
tone_of_text_descriptionstring- (SMARTLING only)
smartlingmcp_smartling_download_styleguide_attachmentDownload a file attachment from a Smartling style guide.WriteSmartling Download Styleguide Attachment
Download a file attachment from a Smartling style guide. Returns a presigned download URL for the file, not the file content itself. The URL is valid for 15 minutes, so fetch it promptly - re-run this tool to get a fresh URL if it expires.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
attachment_uidstringrequired- Unique identifier of the attachment to download. Must ask user if not provided.
style_guide_uidstringrequired- Unique identifier of the style guide. Must ask user if not provided.
smartlingmcp_smartling_download_translated_fileDownload translated content for a file from Smartling - as a single file for one locale, a zip of all locales for one file, or a zip of multiple files across specified locales.WriteSmartling Download Translated File
Download translated content for a file from Smartling - as a single file for one locale, a zip of all locales for one file, or a zip of multiple files across specified locales. # Modes - SINGLE_LOCALE: one file, one locale - returns the translated file itself - ALL_LOCALES_ZIP: one file, every locale that has translations - returns a zip archive - MULTIPLE_FILES_ZIP: multiple files, each with its own locale list - returns a zip archive (up to 500 file/locale combinations total) # Important Notes - For MADCAP, DITA_ZIP, CSV, XLSX_TEMPLATE, and XCSTRINGS files only, locale_id in SINGLE_LOCALE mode also accepts a comma-separated locale list or "all" to get one combined (non-zip) file with all of those locales. - MULTIPLE_FILES_ZIP returns a "no files found" text response instead of a file when file_filter=PUBLISHED_FILES_ONLY excludes every requested file. - Returns a presigned download URL, not the file content itself. The URL is valid for 15 minutes, so fetch it promptly - re-run this tool to get a fresh URL if it expires.
Inputs
modestringrequired- Which download shape to use - see the tool description for details on eachone of
SINGLE_LOCALEALL_LOCALES_ZIPMULTIPLE_FILES_ZIP project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
file_filterstring- (Applies to MULTIPLE_FILES_ZIP only) Restrict the zip to all requested files or only fully published onesone of
all_filespublished_files_only file_name_modestring- (Applies to MULTIPLE_FILES_ZIP only) How files are named inside the zipone of
unchangedtrim_leadinglocale_last file_uristring- (Required for SINGLE_LOCALE and ALL_LOCALES_ZIP) Smartling value that uniquely identifies the file
filesarray- (Required for MULTIPLE_FILES_ZIP) Files and their target locales to include in the zip (up to 500 file/locale combinations total)
include_original_stringsboolean- Whether to return the original string (true, default) or an empty string (false) where no translation exists. Only applies to certain file types.
locale_idstring- (Required for SINGLE_LOCALE) Target locale ID to download (e.g. "fr-FR")
locale_modestring- (Applies to MULTIPLE_FILES_ZIP only) How locale codes appear in the zip's file paths/namesone of
locale_in_pathlocale_in_namelocale_in_name_and_path retrieval_typestring- Format for the translations: pending (any translation), published (published/pre-published only), pseudo (test transformation), or contextMatchingInstrumented (context matching instrumentation)one of
publishedpendingpseudocontextMatchingInstrumented zip_file_namestring- (Applies to ALL_LOCALES_ZIP and MULTIPLE_FILES_ZIP only) Name for the downloaded zip file. Defaults to "translations.zip" if omitted.
smartlingmcp_smartling_export_account_lqa_errorsExport LQA findings across the whole Smartling account as a CSV file, using the same filters as smartling_find_account_lqa_errors.WriteSmartling Export Account Lqa Errors
Export LQA findings across the whole Smartling account as a CSV file, using the same filters as smartling_find_account_lqa_errors. Returns a presigned download URL, not the CSV content itself. The URL is valid for 15 minutes, so fetch it promptly - re-run this tool to get a fresh URL if it expires.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
category_uidsarray- Restrict to these category UIDs
created_date_afterstring- ISO 8601 UTC timestamp; include findings created after this date
created_date_beforestring- ISO 8601 UTC timestamp; include findings created before this date
error_type_uidsarray- Restrict to these error type UIDs
exclude_smartmatched_translationsboolean- Exclude findings on SmartMatch-leveraged translations
has_recorded_error_commentsboolean- Filter by whether the finding has comments
job_filterobject- Filter by job containment
limitinteger- No description.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
project_idsarray- Restrict to these project UIDs
schema_uidsarray- Restrict to these LQA schema UIDs
severity_name_uidsarray- Restrict to these severity name UIDs (NAMED schemas)
severity_scoresarray- Restrict to these exact severity scores (POINT_RANGE schemas)
sort_byarray- Ordered list of sort fields
target_locale_idsarray- Restrict to these target locales
translated_by_user_uidsarray- Restrict to findings on translations produced by these users
workflow_step_uidsarray- Restrict to findings attributed to these workflow steps
smartlingmcp_smartling_find_account_lqa_errorsSearch LQA findings across the whole Smartling account, with rich filters.WriteSmartling Find Account Lqa Errors
Search LQA findings across the whole Smartling account, with rich filters. The account is taken from the MCP token credentials.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
category_uidsarray- Restrict to these category UIDs
created_date_afterstring- ISO 8601 UTC timestamp; include findings created after this date
created_date_beforestring- ISO 8601 UTC timestamp; include findings created before this date
error_type_uidsarray- Restrict to these error type UIDs
exclude_smartmatched_translationsboolean- Exclude findings on SmartMatch-leveraged translations
has_recorded_error_commentsboolean- Filter by whether the finding has comments
job_filterobject- Filter by job containment
limitinteger- No description.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
project_idsarray- Restrict to these project UIDs
schema_uidsarray- Restrict to these LQA schema UIDs
severity_name_uidsarray- Restrict to these severity name UIDs (NAMED schemas)
severity_scoresarray- Restrict to these exact severity scores (POINT_RANGE schemas)
sort_byarray- Ordered list of sort fields
target_locale_idsarray- Restrict to these target locales
translated_by_user_uidsarray- Restrict to findings on translations produced by these users
workflow_step_uidsarray- Restrict to findings attributed to these workflow steps
smartlingmcp_smartling_get_account_user_statusCheck whether email addresses already belong to a user, account user, or pending invite in a Smartling account - useful before inviting new users.WriteSmartling Get Account User Status
Check whether email addresses already belong to a user, account user, or pending invite in a Smartling account - useful before inviting new users.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
emailsarrayrequired- Email addresses to check.
smartlingmcp_smartling_get_current_user_roles_infoGet the current authenticated user's role information (top native role, currently active role, and the roles they are allowed to switch to) along with their name and email - also useful as a "who am I" lookup.WriteSmartling Get Current User Roles Info
Get the current authenticated user's role information (top native role, currently active role, and the roles they are allowed to switch to) along with their name and email - also useful as a "who am I" lookup.
Inputs
This tool takes no inputs.
smartlingmcp_smartling_get_file_statusGet a file's translation status for every locale, and its last-modified date per locale.WriteSmartling Get File Status
Get a file's translation status for every locale, and its last-modified date per locale. Returns two independent results - `status` (per-locale progress and word counts) and `lastModified` (per-locale last-modified dates) - from two separate Smartling API calls. They are not merged together.
Inputs
file_uristringrequired- Smartling value that uniquely identifies the file (e.g., "/content/strings.json")
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
smartlingmcp_smartling_get_glossary_entryRetrieve a single glossary entry by its UID.WriteSmartling Get Glossary Entry
Retrieve a single glossary entry by its UID.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
entry_uidstringrequired- UID of the entry to retrieve.
glossary_uidstringrequired- UID of the glossary the entry belongs to.
smartlingmcp_smartling_get_invite_linkGet the shareable invitation link URL for a pending invite.WriteSmartling Get Invite Link
Get the shareable invitation link URL for a pending invite.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
invite_uidstringrequired- UID of the invite to get the link for.
smartlingmcp_smartling_get_job_batch_statusGet the detailed status of a Smartling job batch, including per-file and per-locale progress.WriteSmartling Get Job Batch Status
Get the detailed status of a Smartling job batch, including per-file and per-locale progress. See smartling_create_job_batch for what a batch is. To debug a stuck or failed batch, inspect files[].status and files[].errors for the failing file.
Inputs
batch_uidstringrequired- The unique identifier of the batch to retrieve status for
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
smartlingmcp_smartling_get_job_progressGet per-locale, per-workflow-step translation progress for a job, or for a single file within it (target_locale_id and file_uri are mutually exclusive).WriteSmartling Get Job Progress
Get per-locale, per-workflow-step translation progress for a job, or for a single file within it (target_locale_id and file_uri are mutually exclusive). Also useful for finding the workflow UIDs currently active on a job, e.g. before checking LQA/MQM statistics availability.
Inputs
job_uidstringrequired- The unique identifier of the translation job
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
file_uristring- Restrict the report to this file only (file-level progress instead of job-level). Cannot be combined with target_locale_id.
target_locale_idstring- Restrict the report to this target locale only. Cannot be combined with file_uri.
smartlingmcp_smartling_get_lqa_schema_topologyGet the full category/severity/error-type breakdown for one LQA schema - resolves human-readable names to the UIDs smartling_record_lqa_error and smartling_update_lqa_error need.WriteSmartling Get Lqa Schema Topology
Get the full category/severity/error-type breakdown for one LQA schema - resolves human-readable names to the UIDs smartling_record_lqa_error and smartling_update_lqa_error need. Check severityTypeCode first: - NAMED: match severityNames[].name to your desired severity, then pass its severityNameUid to smartling_record_lqa_error/smartling_update_lqa_error - POINT_RANGE: pass a numeric severity_score within severityRange.min-max instead - severityNames will be empty
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
schema_uidstringrequired- The LQA schema UID to get the topology for. Call smartling_list_lqa_schemas to find it.
smartlingmcp_smartling_get_mqm_statisticsGet MQM (Multidimensional Quality Metrics) quality scores for one or more translation jobs, gated by whether statistics are actually available yet.WriteSmartling Get Mqm Statistics
Get MQM (Multidimensional Quality Metrics) quality scores for one or more translation jobs, gated by whether statistics are actually available yet. MQM statistics are computed from LQA findings recorded against a job's translations (see smartling_record_lqa_error), rolled up into per-job, per-schema, and per-locale quality scores. They're only meaningful once enough LQA review has happened, so always check each result's mqmStatisticsAvailable before reading a score - a false value means statistics is null for that job, not that quality is zero. - "Show quality for Job NAME" -> read the job-level fields (qualityScore, criticalErrorCount, etc.) inside statistics - "Show quality for [language] for Job NAME" -> read statistics.schemas[].targetLocales[] for that locale To enumerate the actual strings behind a quality issue (e.g. "show strings with critical errors"), see the mqm-quality-drilldown skill (smartling_load_skill).
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
jobsarrayrequired- Jobs to get quality statistics for. Can span multiple projects in one call.
smartlingmcp_smartling_get_or_create_translation_jobGet an existing translation job by name template, or create one if none matches - a simplified alternative to smartling_create_job for batch/file-upload workflows.WriteSmartling Get Or Create Translation Job
Get an existing translation job by name template, or create one if none matches - a simplified alternative to smartling_create_job for batch/file-upload workflows. Use this when you just need a translationJobUid quickly (e.g. via smartling_create_job_batch); use smartling_create_job instead when you need full control over job creation (custom fields, reference numbers, precise due dates, etc). name_template supports date pattern placeholders using Java DateTimeFormatter syntax (e.g. "{yyyy}", "{QQQ}", "{yyyy-MM-dd}"), evaluated at request time using time_zone_name (or server time if omitted). mode: REUSE_EXISTING (default) returns an existing job matching the evaluated name, or - if that job is closed - creates a new job with a unique name via the salt strategy. CREATE_NEW always creates a new job with the evaluated name, appending a unique identifier via the salt strategy if one already exists.
Inputs
name_templatestringrequired- Name template for the job, used to find or create it. Supports date pattern placeholders in curly braces, e.g. "{yyyy}", "{QQQ}", "{yyyy-MM-dd}".
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
descriptionstring- No description.
modestring- Defaults to REUSE_EXISTING if omitted.one of
CREATE_NEWREUSE_EXISTING saltstring- Format of the unique suffix appended to job names when necessary to avoid conflicts. Defaults to RANDOM_ALPHANUMERIC if omitted.one of
TIMESTAMPRANDOM_ALPHANUMERIC target_locale_idsarray- No description.
time_zone_namestring- Time zone used to evaluate date placeholders in name_template (e.g. "America/Los_Angeles"). Defaults to server time if omitted.
smartlingmcp_smartling_get_styleguide_permissionsGet the calling user's style guide permissions.WriteSmartling Get Styleguide Permissions
Get the calling user's style guide permissions.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
smartlingmcp_smartling_get_user_allowed_actionsGet the actions the current caller is allowed to perform on specific users in an account (e.g.WriteSmartling Get User Allowed Actions
Get the actions the current caller is allowed to perform on specific users in an account (e.g. check whether removal is allowed before calling smartling_remove_users).
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
user_uidsarrayrequired- UIDs of the users to check allowed actions for.
smartlingmcp_smartling_integration_get_instant_translation_requestGet the per-asset, per-locale results of one instant (machine) translation request made via smartling_integration_request_instant_translation.WriteSmartling Integration Get Instant Translation Request
Get the per-asset, per-locale results of one instant (machine) translation request made via smartling_integration_request_instant_translation. Use state="FAILED" to diagnose failures via each locale's errorMessage.
Inputs
action_uidstringrequired- The actionUid from smartling_integration_request_instant_translation or smartling_integration_search_instant_translation_requests
integration_idstringrequired- Connector id or type code, e.g. "intercom" or "INTERCOM"
project_idstringrequired- The unique identifier of the Smartling project
asset_uidstring- No description.
limitinteger- Page size. Defaults to 100 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
statestring- No description.one of
NOT_TRANSLATEDIN_PROGRESSTRANSLATEDCOMPLETEDFAILEDCANCELED
smartlingmcp_smartling_integration_get_search_contextDiscover everything needed to search a connector's content: connection status, valid filter values, and locale mappings - these vary per connector and per account.WriteSmartling Integration Get Search Context
Discover everything needed to search a connector's content: connection status, valid filter values, and locale mappings - these vary per connector and per account. See the integration-translation-request skill (smartling_load_skill) for when to call this in the overall workflow. connected=false means the integration isn't ready for this project - every other field is omitted, and smartling_integration_search_assets should not be called yet.
Inputs
integration_idstringrequired- Connector id or type code from smartling_integration_list_available (e.g. "intercom" or "INTERCOM")
project_idstringrequired- The unique identifier of the Smartling project
smartlingmcp_smartling_integration_list_availableList the connectors (integrations, e.g.WriteSmartling Integration List Available
List the connectors (integrations, e.g. Intercom, Zendesk) available on a Smartling account, to get each connector's normalized integration_id. See the integration-translation-request skill (smartling_load_skill) for the full workflow.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
smartlingmcp_smartling_integration_request_instant_translationRequest instant (machine) translation for connector assets found via smartling_integration_search_assets, without going through a Smartling job.WriteSmartling Integration Request Instant Translation
Request instant (machine) translation for connector assets found via smartling_integration_search_assets, without going through a Smartling job. See the integration-translation-request skill (smartling_load_skill) for the full workflow, including how to check results afterward.
Inputs
assetsarrayrequired- Assets to request instant (machine) translation for, as returned by smartling_integration_search_assets
integration_idstringrequired- Connector id or type code, e.g. "intercom" or "INTERCOM"
project_idstringrequired- The unique identifier of the Smartling project
request_namestringrequired- A human-readable name for this instant-translation request, for later lookup via smartling_integration_search_instant_translation_requests
smartling_locale_idsarrayrequired- Target Smartling locale codes (e.g. ["fr-FR", "de-DE"])
smartlingmcp_smartling_integration_request_tms_translationSubmit connector assets, found via smartling_integration_search_assets, to an existing Smartling job for human (TMS) translation; this tool does not create jobs.WriteSmartling Integration Request Tms Translation
Submit connector assets, found via smartling_integration_search_assets, to an existing Smartling job for human (TMS) translation; this tool does not create jobs. See the integration-translation-request skill (smartling_load_skill) for the full workflow, including how to check translation progress afterward.
Inputs
assetsarrayrequired- Assets to request translation for, as returned by smartling_integration_search_assets
authorize_jobbooleanrequired- Required by the API. Whether to authorize the job immediately (true) or leave it as a draft (false).
integration_idstringrequired- Connector id or type code, e.g. "intercom" or "INTERCOM"
project_idstringrequired- The unique identifier of the Smartling project
smartling_locale_idsarrayrequired- Target Smartling locale codes (e.g. ["fr-FR", "de-DE"])
translation_job_uidstringrequired- An existing Smartling job UID (see smartling_create_job / smartling_list_jobs) to add these assets to
include_child_assetsboolean- Whether to also include child assets of the selected ones. Default is false.
include_related_assetsboolean- Whether to also include assets related to the selected ones. Default is false.
smartlingmcp_smartling_integration_search_assetsSearch a connector's content (e.g.WriteSmartling Integration Search Assets
Search a connector's content (e.g. Intercom articles) for assets to translate. See the integration-translation-request skill (smartling_load_skill) for the full workflow, including how to learn valid asset_type/submission_status/custom_filters values first. smartling_locale_id must be one of the Smartling locale codes returned by smartling_integration_get_search_context's localeMappings for this connector - passing a locale id with no mapping fails with an error rather than searching unfiltered.
Inputs
integration_idstringrequired- Connector id or type code, e.g. "intercom" or "INTERCOM"
project_idstringrequired- The unique identifier of the Smartling project
asset_typestring- One of the values from smartling_integration_get_search_context's assetTypes
custom_filtersobject- Connector-specific filters, keyed by searchParamName from smartling_integration_get_search_context's connectorFilters
limitinteger- Page size. Defaults to 50 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
smartling_locale_idstring- A single Smartling locale code to filter by (e.g. "fr-FR"), from smartling_integration_get_search_context's localeMappings - translated internally to the connector's own locale code
submission_statusstring- One of the values from smartling_integration_get_search_context's submissionStatuses
smartlingmcp_smartling_integration_search_instant_translation_requestsList/filter past instant (machine) translation requests for a connector (the "View Instant Requests" list in the Smartling UI).WriteSmartling Integration Search Instant Translation Requests
List/filter past instant (machine) translation requests for a connector (the "View Instant Requests" list in the Smartling UI). Use the returned actionUid with smartling_integration_get_instant_translation_request to drill into one request's results.
Inputs
integration_idstringrequired- Connector id or type code, e.g. "intercom" or "INTERCOM"
project_idstringrequired- The unique identifier of the Smartling project
asset_titlestring- No description.
asset_uidstring- No description.
limitinteger- Page size. Defaults to 100 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
requested_bystring- No description.
statestring- No description.one of
NOT_TRANSLATEDIN_PROGRESSTRANSLATEDCOMPLETEDFAILEDCANCELED
smartlingmcp_smartling_invite_usersInvite one or more new users to a Smartling account, granting each an account-level, project-level, and/or workflow-level role.WriteSmartling Invite Users
Invite one or more new users to a Smartling account, granting each an account-level, project-level, and/or workflow-level role. If an email already belongs to an existing user, this adds the role(s) to that user instead of sending a new invite.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
usersarrayrequired- Users to invite.
smartlingmcp_smartling_list_current_user_projectsList the projects the current authenticated user can access within an account, with optional filtering by keyword or project type.WriteSmartling List Current User Projects
List the projects the current authenticated user can access within an account, with optional filtering by keyword or project type.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
include_archivedboolean- Whether to include archived projects. Defaults to excluding them.
keywordstring- Search keyword to filter projects by name.
limitinteger- Maximum number of projects to return.
project_type_codestring- Filter by a single project type code.
project_type_codesarray- Filter by multiple project type codes.
smartlingmcp_smartling_list_glossary_labelsList all glossary labels in an account.WriteSmartling List Glossary Labels
List all glossary labels in an account.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
smartlingmcp_smartling_list_invitesList pending invites for a Smartling account, with optional filtering and sorting.WriteSmartling List Invites
List pending invites for a Smartling account, with optional filtering and sorting. Returns an offsetToken for paging through more results via offset_token.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
keywordstring- Search keyword to filter invites by email.
limitinteger- Maximum number of invites to return per page.
offset_tokenstring- Token from a previous response's offsetToken, used to fetch the next page.
sort_directionstring- Sort direction.one of
ASCDESC sort_propertystring- Field to sort results by.one of
defaultfirstNamelastNameemaillastLogin
smartlingmcp_smartling_list_job_batchesList job batches for a Smartling project, optionally filtered by translation job or status.WriteSmartling List Job Batches
List job batches for a Smartling project, optionally filtered by translation job or status. Page through results using offset/limit, guided by totalCount in the response.
Inputs
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
limitinteger- Page size. Defaults to 20 if omitted.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
orderstring- Sort direction. Defaults to DESC if omitted.one of
DESCASC sort_bystring- Field to sort by. Defaults to createdDate if omitted.one of
createdDatestatus statusstring- Filter to batches in this statusone of
DRAFTADDING_FILESEXECUTINGCOMPLETED translation_job_uidstring- Filter to batches for this translation job UID only
smartlingmcp_smartling_list_job_filesList the source files attached to a Smartling job, including each file's fileUid and per-job locale coverage.WriteSmartling List Job Files
List the source files attached to a Smartling job, including each file's fileUid and per-job locale coverage. Returns up to 1000 files by default; use offset/limit to page through more, guided by totalCount in the response.
Inputs
job_uidstringrequired- The unique identifier of the job to list files for
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
limitinteger- Page size. Defaults to 1000 if omitted (per the Smartling API spec); use offset to page through more files.
offsetinteger- Pagination offset. Defaults to 0 if omitted.
smartlingmcp_smartling_list_lqa_errors_per_stringRead back the LQA findings already recorded on one specific string.WriteSmartling List Lqa Errors Per String
Read back the LQA findings already recorded on one specific string.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
hashcodestringrequired- Hashcode of the string to read findings for
project_idstringrequired- The unique identifier of the Smartling project
target_locale_idstringrequired- Target locale of the translated string (e.g. "fr-FR")
smartlingmcp_smartling_list_lqa_schemasList LQA schemas configured for a Smartling account.WriteSmartling List Lqa Schemas
List LQA schemas configured for a Smartling account. An LQA schema defines the categories, error types, and severity levels used when recording manual LQA findings on a string, and whether MQM statistics are computed against it. Resolve schema_uid here before calling smartling_get_lqa_schema_topology or smartling_record_lqa_error.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
directionstring- No description.one of
ASCDESC schema_uidsarray- Restrict results to these schema UIDs
sort_bystring- No description.one of
SCHEMA_NAMEMODIFIED_DATE
smartlingmcp_smartling_list_skillsList available skills, grouped by category.WriteSmartling List Skills
List available skills, grouped by category. Skills capture Smartling-specific workflows and domain conventions (e.g. connector setup, job/batch sequencing, reporting, dashboard URL/link generation) that aren't obvious from tool schemas alone. Check here when a request names or implies a multi-step Smartling workflow you're not already certain how to sequence - this is a cheap, read-only lookup with no side effects, so there's little downside to checking even when unsure. After calling this tool: - If a returned skill's summary matches the task, load it with smartling_load_skill and follow its instructions. - If none of the returned skills apply, proceed with your own judgement about which tool(s) best accomplish the user's goal.
Inputs
categorystring- Filter to one category. Omit to list all skills across all categories.one of
navigationintegrationsglossarylqa
smartlingmcp_smartling_list_styleguide_attachmentsList the attachments (links and files) on a Smartling style guide.WriteSmartling List Styleguide Attachments
List the attachments (links and files) on a Smartling style guide.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
style_guide_uidstringrequired- Unique identifier of the style guide. Must ask user if not provided.
smartlingmcp_smartling_list_styleguide_localesList the target locales currently bound to a Smartling style guide.WriteSmartling List Styleguide Locales
List the target locales currently bound to a Smartling style guide.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
style_guide_uidstringrequired- Unique identifier of the style guide. Must ask user if not provided.
smartlingmcp_smartling_load_skillLoad the full instructions for one skill by id (from smartling_list_skills), then follow those instructions directly to complete the task - the returned text is not meant to be summarized or shown to the user verbatim, it is a set of directions for you to act on.WriteSmartling Load Skill
Load the full instructions for one skill by id (from smartling_list_skills), then follow those instructions directly to complete the task - the returned text is not meant to be summarized or shown to the user verbatim, it is a set of directions for you to act on.
Inputs
skill_idstringrequired- Skill id returned by smartling_list_skills.
smartlingmcp_smartling_manage_fileManage a file's lifecycle in a Smartling project.WriteSmartling Manage File
Manage a file's lifecycle in a Smartling project. Supports deleting or renaming a file. Deleting removes the file from Smartling asynchronously (usually a few minutes). While deletion is in progress, the file can't be downloaded and its fileUri can't be re-uploaded to. Any translations already completed for the file remain available elsewhere in the system. Renaming changes a file's fileUri in place - translations, status, and history stay attached to the file under its new URI.
Inputs
actionstringrequired- No description.one of
DELETERENAME file_uristringrequired- Smartling value that uniquely identifies the file to act on
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
new_file_uristring- (Required for RENAME) The new URI to give the file
smartlingmcp_smartling_manage_glossaryCreate a new glossary or update an existing one.WriteSmartling Manage Glossary
Create a new glossary or update an existing one. Use smartling_list_glossaries or smartling_get_glossary to look up a glossary_uid before updating. UPDATE fully replaces the glossary record: description, verification_mode, fallback_locales, and mt_optimized are all reset to their defaults if omitted, not left as-is. To change only some fields, first call smartling_get_glossary and resend its current values for every field you don't intend to change.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
actionstringrequired- Whether to create a new glossary or update an existing one.one of
CREATEUPDATE glossary_namestringrequired- Name of the glossary.
locale_idsarrayrequired- Locale IDs supported by the glossary.
descriptionstring- Description of the glossary.
fallback_localesarray- Fallback locale configuration.
glossary_uidstring- UID of the glossary to update. Required when action is UPDATE, not used for CREATE.
mt_optimizedboolean- Whether the glossary is optimized for machine translation.
verification_modeboolean- Whether verification mode is enabled.
smartlingmcp_smartling_manage_glossary_entries_bulkArchive, restore, remove, or add/remove labels on glossary entries matching a filter, in bulk.WriteSmartling Manage Glossary Entries Bulk
Archive, restore, remove, or add/remove labels on glossary entries matching a filter, in bulk. filter is required but its fields are all optional - an empty filter ({}) matches every entry in the glossary, so for ARCHIVE/REMOVE in particular, narrow it deliberately or you will act on the whole glossary. This is an asynchronous operation: the response confirms the request was accepted (with an operation_uid), not that it has completed.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
actionstringrequired- The bulk action to perform on entries matching the filter.one of
ARCHIVERESTOREREMOVEADD_LABELSREMOVE_LABELS filterobjectrequired- Filter selecting which entries the action applies to.
glossary_uidstringrequired- UID of the glossary whose entries to act on.
label_uidsarray- Label UIDs to add or remove. Required when action is ADD_LABELS or REMOVE_LABELS, not used otherwise.
smartlingmcp_smartling_manage_glossary_entryCreate a new glossary entry or update an existing one.WriteSmartling Manage Glossary Entry
Create a new glossary entry or update an existing one.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
actionstringrequired- Whether to create a new entry or update an existing one.one of
CREATEUPDATE glossary_uidstringrequired- UID of the glossary the entry belongs to.
translationsarrayrequired- Translations for this entry, one per locale.
custom_field_valuesarray- Custom field values for this entry.
definitionstring- Term definition.
entry_uidstring- UID of the entry to update. Required when action is UPDATE, not used for CREATE.
label_uidsarray- Label UIDs to associate with this entry.
part_of_speechstring- Part of speech.one of
NOUNVERBADJECTIVEADVERBPRONOUNPREPOSITIONINTERJECTIONCONJUNCTIONPROPER_NOUN skip_missing_translationsboolean- Whether to allow translations with no term when disabled is not set.
suggestionboolean- Whether this entry is a suggestion rather than a standard entry.
smartlingmcp_smartling_manage_glossary_importImport glossary entries from a file (CSV, XML, or XLSX).WriteSmartling Manage Glossary Import
Import glossary entries from a file (CSV, XML, or XLSX). A two-step, dry-run-then-confirm workflow - see the glossary-import skill (smartling_load_skill) for the full sequence. For CSV, each per-locale column header must be exactly "<Term|Notes|Case Sensitive|Exact Match|Do Not Translate|Disabled> <locale description> [<locale_id>] <locale_id>" - e.g. "Term English (United States) [en-US] en-US". Get the exact locale description from smartling_export_glossary's CSV output for this glossary rather than guessing it; a bare locale code or a column missing the bracketed description is rejected as unrecognized.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
actionstringrequired- START uploads a file and previews changes; GET_STATUS polls an in-progress import; CONFIRM applies a previewed import.one of
STARTGET_STATUSCONFIRM glossary_uidstringrequired- UID of the glossary to import entries into.
archive_modeboolean- Whether entries not present in the import file should be archived. Only used for START.
file_contentstring- Import file content encoded as base64 string. Only use this for START when you cannot run shell commands. Exactly one of file_content or upload_id must be provided for START.
import_file_media_typestring- Media type of the import file. Only used for START.one of
text/csvtext/xmlapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet import_file_namestring- Original filename of the import file. Only used for START.
import_uidstring- UID of the import to check or confirm. Required for GET_STATUS and CONFIRM, not used for START.
upload_idstring- Identifier returned by a prior smartling_request_upload_url call. Preferred, default choice for the import file on START. Exactly one of file_content or upload_id must be provided for START.
smartlingmcp_smartling_manage_invitesResend or cancel pending invites.WriteSmartling Manage Invites
Resend or cancel pending invites. Identify the invites with invite_uids, or with user_uids (acts on that user's pending invite). Provide exactly one of invite_uids or user_uids.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
actionstringrequired- Whether to resend or cancel the identified invites.one of
RESENDCANCEL invite_uidsarray- UIDs of the invites to act on. Provide this or user_uids, not both.
user_uidsarray- UIDs of the users whose pending invites to act on. Provide this or invite_uids, not both.
smartlingmcp_smartling_manage_job_fileAdd or remove a file from a Smartling job.WriteSmartling Manage Job File
Add or remove a file from a Smartling job. The file must already exist in the project (uploaded separately) - this tool only attaches or detaches it from the given job, it does not upload content. Adding/removing applies across the job's target locales, unless target_locale_ids narrows an ADD to specific locales. This action can be asynchronous on Smartling's side for large files/jobs: the API may return before the add/remove has fully completed. success_count/fail_count reflect the state at the time of this call and may not yet include locales still being processed. target_locale_ids is only allowed with action="ADD"; it is rejected when combined with action="REMOVE".
Inputs
actionstringrequired- Whether to add the file to the job or remove it from the jobone of
ADDREMOVE file_uristringrequired- Smartling value that uniquely identifies the file to act on
job_uidstringrequired- The unique identifier of the job to add the file to or remove it from
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
target_locale_idsarray- Only allowed with action="ADD". Restricts the file addition to these target locales instead of all of the job's target locales.
smartlingmcp_smartling_manage_job_statusChange a Smartling job's lifecycle status: cancel, close, or delete it.WriteSmartling Manage Job Status
Change a Smartling job's lifecycle status: cancel, close, or delete it. Unlike smartling_update_job (which edits job metadata such as name, due date, or custom fields), this tool only transitions the job's lifecycle state. - CANCEL: Stops the job before completion. All content within the job is removed from the job and becomes unauthorized. reason is optional and only allowed for this action. Can be asynchronous on Smartling's side for large jobs - a successful call means cancellation was accepted, not necessarily that removal has fully completed yet. - CLOSE: Closes a job. The job must already be in a completed state, or this call fails. All content from the job is removed when it is closed. - DELETE: Permanently deletes the job. The job must already be in CANCELLED status, or this call fails - cancel the job first if it isn't already cancelled. reason is rejected if provided together with CLOSE or DELETE.
Inputs
actionstringrequired- The lifecycle action to perform on the jobone of
CANCELCLOSEDELETE job_uidstringrequired- The unique identifier of the job to act on
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
reasonstring- Reason for cancelling the job (CANCEL only). Not supported for CLOSE or DELETE.
smartlingmcp_smartling_manage_labelCreate, update, or delete a glossary label.WriteSmartling Manage Label
Create, update, or delete a glossary label.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
actionstringrequired- The action to perform on the label.one of
CREATEUPDATEDELETE label_textstring- Text of the label. Required for CREATE and UPDATE, not used for DELETE.
label_uidstring- UID of the label. Required for UPDATE and DELETE, not used for CREATE.
smartlingmcp_smartling_mark_lqa_no_errorsMark a translated string as reviewed with no errors found - parity with the "no errors" action in the CAT Tool.WriteSmartling Mark Lqa No Errors
Mark a translated string as reviewed with no errors found - parity with the "no errors" action in the CAT Tool.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
hashcodestringrequired- Hashcode of the string being reviewed
project_idstringrequired- The unique identifier of the Smartling project
schema_uidstringrequired- LQA schema UID this review was performed against
target_locale_idstringrequired- Target locale of the translated string (e.g. "fr-FR")
workflow_step_uidstringrequired- Workflow step UID this review is attributed to
smartlingmcp_smartling_process_job_batch_actionRegister or cancel a single file within a job batch.WriteSmartling Process Job Batch Action
Register or cancel a single file within a job batch. - REGISTER_FILE: adds the file URI to the batch's file list for uploading; only works while the batch is still in ADDING_FILES status. - CANCEL_FILE: marks the file as canceled so it will not be uploaded. reason is only valid when action is CANCEL_FILE; rejected otherwise.
Inputs
actionstringrequired- REGISTER_FILE to add a file to the batch, or CANCEL_FILE to mark a declared file as not going to be uploadedone of
CANCEL_FILEREGISTER_FILE batch_uidstringrequired- The unique identifier of the batch to act on
file_uristringrequired- File URI to register or cancel.
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
reasonstring- Reason the file is being canceled. Only valid when action is CANCEL_FILE; rejected otherwise.
smartlingmcp_smartling_record_lqa_errorRecord a manual LQA finding (error) on a translated string - parity with recording an error in the CAT Tool.WriteSmartling Record Lqa Error
Record a manual LQA finding (error) on a translated string - parity with recording an error in the CAT Tool. See the lqa-uid-resolution skill (smartling_load_skill) for how to resolve the required UIDs. Pass severity_name_uid for NAMED schemas or severity_score for POINT_RANGE schemas, not both.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
error_type_uidstringrequired- Error type UID for this finding. Call smartling_get_lqa_schema_topology to resolve a human-readable error type name (e.g. "Mistranslation") to its UID - do not guess.
hashcodestringrequired- Hashcode of the string to record the finding against
project_idstringrequired- The unique identifier of the Smartling project
schema_uidstringrequired- LQA schema UID to record this finding under. Call smartling_list_lqa_schemas to find it.
target_locale_idstringrequired- Target locale of the translated string (e.g. "fr-FR")
commentstring- Reviewer comment on this finding
severity_name_uidstring- (NAMED schemas only) Severity name UID. Resolve via smartling_get_lqa_schema_topology's severityNames.
severity_scorenumber- (POINT_RANGE schemas only) Numeric severity score, within the schema's severityRange.
workflow_step_uidstring- Workflow step UID this finding is attributed to
smartlingmcp_smartling_request_upload_urlRequests a short-lived URL for uploading a local file, for use with other tools that accept an "upload_id" parameter (e.g.WriteSmartlingRequestUploadUrl
Requests a short-lived URL for uploading a local file, for use with other tools that accept an "upload_id" parameter (e.g. smartling_machine_translate_file). # Use cases - Preferred, default first step before translating or otherwise processing any local file, whenever you can run shell commands (e.g. Claude Code, Codex CLI, opencode, Cursor, Cline, Windsurf) - use this instead of inline base64 content regardless of file size or type. Only usable by clients that can run shell commands (e.g. Claude Code, Codex CLI, opencode, Cursor, Cline, Windsurf) to PUT the file to the returned URL - not usable from claude.ai or other clients without local file/shell access, which should keep using inline base64 content instead. The returned URL expires in 15 minutes. Upload immediately after requesting it, then pass the returned upload_id to the tool that needs the file.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
smartlingmcp_smartling_search_glossary_entriesSearch entries within a glossary by a set of filters.WriteSmartling Search Glossary Entries
Search entries within a glossary by a set of filters. Defaults to the first 100 matching entries (offset 0, limit 100) when paging is not specified; use the filter and paging fields to narrow results or page through more.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
glossary_uidstringrequired- UID of the glossary to search entries in.
locale_idsarrayrequired- Locale IDs to search entries in.
createdobject- Filter entries by creation date.
created_byobject- Filter entries by creator.
dnt_locale_idstring- Filter entries by "Do Not Translate" flag for this locale.
dnt_term_setboolean- Filter entries based on "Do Not Translate" term setting.
entry_statestring- Filter entries by their state.one of
ACTIVEARCHIVEDBOTH entry_uidsarray- Specific entry UIDs to filter on.
labelsobject- Filter entries by labels.
last_modifiedstring- Filter entries by last modified date.
last_modified_bystring- Filter entries by last modifier.
missing_translation_locale_idstring- Filter to entries missing a translation in this locale.
pagingobject- Pagination settings.
present_translation_locale_idstring- Filter to entries with a translation present in this locale.
querystring- Search query to filter entries by term content.
return_fallback_translationsboolean- Whether to include fallback translations.
sortingobject- Sorting settings.
smartlingmcp_smartling_search_recent_filesSearch for recently uploaded source files or recently published translated files in a Smartling project.WriteSmartling Search Recent Files
Search for recently uploaded source files or recently published translated files in a Smartling project. # Scopes - UPLOADED: recently uploaded source files, optionally filtered by uri_mask, file_types, last_uploaded_after/before, and sorted via order_by - PUBLISHED: recently published translated files (limited to the last 14 days), optionally filtered by file_uris/locale_ids. published_after is required for this scope.
Inputs
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
scopestringrequired- UPLOADED for recently uploaded source files, PUBLISHED for recently published translated filesone of
UPLOADEDPUBLISHED file_typesarray- (UPLOADED only) Restrict results to these file types
file_urisarray- (PUBLISHED only) Restrict results to these exact file URIs
last_uploaded_afterstring- (UPLOADED only) Returns only files uploaded after this ISO 8601 date
last_uploaded_beforestring- (UPLOADED only) Returns only files uploaded before this ISO 8601 date
limitinteger- Page size. UPLOADED defaults to 100 server-side; PUBLISHED has no limit unless set.
locale_idsarray- (PUBLISHED only) Restrict results to these locale IDs
offsetinteger- Pagination offset. Defaults to 0 if omitted.
order_bystring- (UPLOADED only) Field (and optional _asc/_desc direction) to sort by. Ascending if no direction is given.one of
createdfileUrilastUploadedcreated_asccreated_descfileUri_ascfileUri_desclastUploaded_asclastUploaded_desc published_afterstring- (PUBLISHED only, required for this scope) Returns only files published after this ISO 8601 date
uri_maskstring- (UPLOADED only) Returns only files whose URI contains this substring, case-insensitive
smartlingmcp_smartling_set_styleguide_localesReplace the target locales bound to a Smartling style guide.WriteSmartling Set Styleguide Locales
Replace the target locales bound to a Smartling style guide. This is a full-replace operation, not additive: the style guide's target locales become exactly the list you pass here. Locales not included are unbound; to add a locale while keeping existing ones, include all of them (existing plus new) in locale_ids. Pass an empty array to unbind all target locales.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
locale_idsarrayrequired- Full set of target locale identifiers the style guide should be bound to after this call (e.g. ["es-ES", "fr-FR"]). Replaces the existing set entirely. Pass an empty array to unbind all target locales.
style_guide_uidstringrequired- Unique identifier of the style guide. Must ask user if not provided.
smartlingmcp_smartling_update_lqa_errorUpdate an existing manual LQA finding (change its error type, severity, or comment).WriteSmartling Update Lqa Error
Update an existing manual LQA finding (change its error type, severity, or comment).
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
hashcodestringrequired- Hashcode of the string the finding is recorded against
project_idstringrequired- The unique identifier of the Smartling project
recorded_error_uidstringrequired- UID of the recorded finding to update
target_locale_idstringrequired- Target locale of the translated string (e.g. "fr-FR")
commentstring- New reviewer comment
error_type_uidstring- New error type UID
severity_name_uidstring- New severity name UID (NAMED schemas only)
severity_scorenumber- New numeric severity score (POINT_RANGE schemas only)
smartlingmcp_smartling_update_styleguideUpdate an existing Smartling style guide.WriteSmartling Update Styleguide
Update an existing Smartling style guide. Omitting an optional field does not always mean "leave unchanged" - behavior differs by field type: - Free-text fields (company_description, product_description, audience_description, tone_of_text_description, additional_instructions, industry_description, and PLAINTEXT's text): omitting clears the field to empty. - Enum fields (language_style, expressions, grammar_voice, abbreviations): omitting leaves the style guide's current value unchanged. - Boolean fields (capitalization, abbreviations_end_in_period, bullet_end_in_period, bullet_with_capital_letter, no_periods_after_units_of_measure, and all no_translate_* fields): omitting sets the field to false. To intentionally preserve a free-text or boolean field's current value, fetch it first with smartling_get_styleguide and pass it back explicitly. style_guide_type must match the style guide's existing type - it cannot be changed after creation. Passing a different type than the style guide currently has will fail. name must stay unique within the account.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
base_locale_idstringrequired- Locale code (e.g. "en-US" or "en").
namestringrequired- Must be unique within the account.
style_guide_typestringrequired- Type of the style guide. Must match the style guide's existing type - it is immutable after creation.one of
PLAINTEXTSMARTLING style_guide_uidstringrequired- Unique identifier of the style guide to update. Must ask user if not provided.
abbreviationsstring- (SMARTLING only)one of
ACCEPTABLENOT_ACCEPTABLE abbreviations_end_in_periodboolean- (SMARTLING only)
additional_instructionsstring- (SMARTLING only)
audience_descriptionstring- (SMARTLING only)
bullet_end_in_periodboolean- (SMARTLING only)
bullet_with_capital_letterboolean- (SMARTLING only)
capitalizationboolean- (SMARTLING only)
company_descriptionstring- (SMARTLING only)
expressionsstring- (SMARTLING only)one of
APPROPRIATEINAPPROPRIATE grammar_voicestring- (SMARTLING only)one of
ACTIVE_VOICEPASSIVE_VOICE industry_descriptionstring- (SMARTLING only)
language_stylestring- (SMARTLING only)one of
FORMALINFORMAL no_periods_after_units_of_measureboolean- (SMARTLING only)
no_translate_branded_namesboolean- (SMARTLING only)
no_translate_currenciesboolean- (SMARTLING only)
no_translate_datesboolean- (SMARTLING only)
no_translate_geographical_namesboolean- (SMARTLING only)
no_translate_mail_addressesboolean- (SMARTLING only)
no_translate_numbersboolean- (SMARTLING only)
no_translate_other_location_namesboolean- (SMARTLING only)
no_translate_product_namesboolean- (SMARTLING only)
no_translate_timesboolean- (SMARTLING only)
no_translate_units_of_measureboolean- (SMARTLING only)
no_translate_urlsboolean- (SMARTLING only)
no_translate_user_namesboolean- (SMARTLING only)
no_translate_web_site_namesboolean- (SMARTLING only)
product_descriptionstring- (SMARTLING only)
textstring- (PLAINTEXT only, required for PLAINTEXT) Free-form style guide text
tone_of_text_descriptionstring- (SMARTLING only)
smartlingmcp_smartling_upload_file_to_job_batchUpload a file's content into a job batch, for a file already declared via smartling_create_job_batch or smartling_process_job_batch_action (REGISTER_FILE).WriteSmartling Upload File To Job Batch
Upload a file's content into a job batch, for a file already declared via smartling_create_job_batch or smartling_process_job_batch_action (REGISTER_FILE). Two ways to supply the file - provide exactly one of `upload_id` or `file_content`: 1. `upload_id` (preferred, default choice): call smartling_request_upload_url first, PUT the file to the returned presigned S3 URL, then pass the returned upload_id here along with account_id (call smartling_get_available_accounts_for_current_user first to retrieve it). Use this whenever you can run shell commands (e.g. Claude Code, Codex CLI, opencode, Cursor, Cline, Windsurf), regardless of file size or type - do not fall back to file_content just because the file is small. 2. `file_content` (inline base64): only use this when you cannot run shell commands (e.g. claude.ai) or the user explicitly asks for inline/base64 content. account_id is not needed for this path. # Important Notes - file_uri must match a URI already registered with the batch (via smartling_create_job_batch's file_uris or a REGISTER_FILE action) - locale_ids_to_authorize is saved for this batch session; those locales are NOT authorized immediately - only when the job is authorized # Parser directives directives lets you pass Smartling parser configuration directives (e.g. smartling.namespace, smartling.file_charset, or file-type-specific "smartling.[command]" directives). Which directives are valid depends entirely on file_type - see https://help.smartling.com/hc/en-us/articles/360007998893-Supported-File-Types and that file type's own directive reference page. Never guess a directive name or value - always ask the user first. Default to no directives (omit this parameter) unless the user has specifically asked for one.
Inputs
batch_uidstringrequired- The unique identifier of the batch to upload this file into
file_typestringrequired- The Smartling file type of the content being uploaded (e.g. "json", "xliff", "java_properties")one of
androidiosgettexthtmljava_propertiesxliffxmljsondocxpptxxlsxidmlinddqtresxplain_textcsvsrtstringsdictxlsdocpptpresmadcapyamlmarkdownphp_resourcefreemarkertmxxliff_catnoneditadita_zipvttpdfrtfflarefluentxlsx_templatesvgdocmxliff2arbxcstringsvsdxvsdmmdximage_pngimage_jpgimage_webp file_uristringrequired- File URI to upload. Must already be registered with the batch.
locale_ids_to_authorizearrayrequired- Locale IDs this file should be attached to when the job is authorized
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
account_idstring- Account UID, required only when using upload_id. Call smartling_get_available_accounts_for_current_user first to retrieve it.
callback_urlstring- URL Smartling calls back when this file is 100% published for a locale
directivesarray- Parser configuration directives specific to file_type. See the tool description before using this - ask the user which directives they want, do not guess.
file_contentstring- Fallback: base64-encoded file content, for clients without shell access. Ignored when upload_id is provided.
upload_idstring- Preferred: an upload_id from smartling_request_upload_url, for shell-capable clients.
smartlingmcp_smartling_add_strings_to_jobAdd strings to an existing Smartling job by their hashcodes.DestructiveSmartlingAddStringsToJob
Add strings to an existing Smartling job by their hashcodes. # What are string hashcodes? String hashcodes are unique identifiers for translatable strings in Smartling. Each string in your project has a unique hashcode that can be used to reference it in various operations. # Use cases - User wants to add specific strings to a translation job - User needs to include additional content in an existing job - User wants to move strings from one job to another (when move_enabled=true) - User needs to add strings for specific target locales only # Examples - Add strings to job: Provide project_id, job_uid, and array of hashcodes - Add with specific locales: Include target_locale_ids to add strings for specific languages only - Move strings between jobs: Set move_enabled=true to move strings from other jobs # Parameters - hashcodes: Array of string hashcodes to add to the job - target_locale_ids: (Optional) Specific target locales to add strings for - move_enabled: (Optional) Whether to move strings from other jobs if they exist elsewhere
Inputs
hashcodesarrayrequired- Array of string hashcodes to add to the job. Each hashcode uniquely identifies a translatable string.
job_uidstringrequired- The unique identifier of the job to add strings to (e.g., "job-uid-123", "translation-job-456")
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
move_enabledboolean- (Optional) Whether to move strings from other jobs if they already exist elsewhere. Default is false.
target_locale_idsarray- (Optional) Array of target locale IDs to add strings for. If not provided, strings will be added for all job target locales. Example: ["es", "fr", "de"]
smartlingmcp_smartling_create_stringsCreate strings in a Smartling project and poll until completion.DestructiveSmartlingCreateStrings
Create strings in a Smartling project and poll until completion. # What are strings in Smartling? Strings are individual pieces of text content that need to be translated. Each string has a unique identifier (hashcode) and can contain metadata like instructions, format specifications, and variant information. # Use cases - Create new translatable content in a Smartling project - Upload strings with specific formatting requirements - Add strings with translation instructions and context - Bulk create strings for translation workflows # Examples - Create simple strings: strings=[{"string_text": "Hello World"}] - Create strings with variants: strings=[{"string_text": "Submit", "variant": "button.submit"}] - Create strings with instructions: strings=[{"string_text": "Click here", "instruction": "This is a call-to-action button"}] - Create strings with formatting: strings=[{"string_text": "<b>Bold text</b>", "format": "html"}] # Parameters - project_id: The unique identifier of the Smartling project - namespace: (Optional) Namespace to organize strings - placeholder_format: (Optional) Format for placeholders (e.g., "java", "python", "c", "resx", "yaml") - placeholder_format_custom: (Optional) Custom regex pattern for placeholders - strings: Array of string objects to create (max 100 strings per request) # String Object Properties - string_text: The actual text content (required) - variant: (Optional) Unique identifier/key for the string - callback_url: (Optional) URL for callback notifications - callback_method: (Optional) HTTP method for callback (GET, POST) - instruction: (Optional) Translation instruction/context - format: (Optional) Content format (plain, html, xml, etc.) - max_length: (Optional) Maximum character length for translations # Polling Behavior This tool automatically polls the creation process status until completion (up to 5 minutes). It returns when the process is either successfully completed or failed.
Inputs
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
stringsarrayrequired- Array of string objects to create. Maximum 100 strings can be created in a single request
namespacestring- (Optional) Namespace to organize and group related strings (e.g., "app.navigation", "forms.validation")
placeholder_formatstring- (Optional) Predefined placeholder format. Common values: "java" ({name}), "python" (%(name)s), "c" (%s), "resx" ({0}), "yaml" (%{name})
placeholder_format_customstring- (Optional) Custom regular expression pattern for identifying placeholders in the string text
smartlingmcp_smartling_delete_issue_assigneeUnassign the user currently assigned to an issue.DestructiveSmartlingDeleteIssueAssignee
Unassign the user currently assigned to an issue. # Use cases - Remove the current assignee when the issue should not be owned by anyone # Examples - project_id="p1", issue_uid="i1"
Inputs
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_delete_issue_commentDelete a comment from an issue.DestructiveSmartlingDeleteIssueComment
Delete a comment from an issue. # Use cases - Remove an off-topic or incorrect comment # Examples - project_id="p1", issue_uid="i1", issue_comment_uid="c1" # Important This action cannot be easily undone.
Inputs
issue_comment_uidstringrequired- The comment UID to delete
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_delete_lqa_errorDelete a manual LQA finding that was recorded by mistake.DestructiveSmartling Delete Lqa Error
Delete a manual LQA finding that was recorded by mistake. This action cannot be easily undone.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
hashcodestringrequired- Hashcode of the string the finding is recorded against
project_idstringrequired- The unique identifier of the Smartling project
recorded_error_uidstringrequired- UID of the recorded finding to delete
target_locale_idstringrequired- Target locale of the translated string (e.g. "fr-FR")
smartlingmcp_smartling_delete_styleguidePermanently delete a Smartling style guide.DestructiveSmartling Delete Styleguide
Permanently delete a Smartling style guide. This fails if the style guide is still referenced by a linguistic package - remove that reference first.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
style_guide_uidstringrequired- Unique identifier of the style guide to delete. Must ask user if not provided.
smartlingmcp_smartling_edit_issue_textEdit the body text of an existing issue.DestructiveSmartlingEditIssueText
Edit the body text of an existing issue. # Use cases - Fix a typo in an issue's text - Clarify a previously-vague issue description # Examples - project_id="abc", issue_uid="i1", issue_text="Updated description"
Inputs
issue_textstringrequired- New issue body text (1–4000 chars)
issue_uidstringrequired- The issue UID to edit
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_manage_glossaries_archive_stateArchive or restore one or more glossaries in bulk.DestructiveSmartling Manage Glossaries Archive State
Archive or restore one or more glossaries in bulk.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
actionstringrequired- Whether to archive or restore the given glossaries.one of
ARCHIVERESTORE glossary_uidsarrayrequired- UIDs of the glossaries to archive or restore.
smartlingmcp_smartling_open_or_close_issueOpen or close (resolve) an issue.DestructiveSmartlingOpenOrCloseIssue
Open or close (resolve) an issue. # Use cases - Resolve an issue once the underlying string question is answered - Re-open a resolved issue that needs more discussion # Examples - Resolve: project_id="p1", issue_uid="i1", issue_state="RESOLVED" - Re-open: issue_state="OPENED"
Inputs
issue_statestringrequired- New state: OPENED or RESOLVEDone of
OPENEDRESOLVED issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_remove_strings_from_jobRemove strings from an existing Smartling job by their hashcodes.DestructiveSmartlingRemoveStringsFromJob
Remove strings from an existing Smartling job by their hashcodes. # Use cases - User wants to remove specific strings from a translation job - User needs to exclude certain content from an existing job - User wants to remove strings for specific target locales only - User needs to clean up job content before authorization # Examples - Remove strings from job: Provide project_id, job_uid, and array of hashcodes - Remove for specific locales: Include target_locale_ids to remove strings for specific languages only - Clean up job: Remove unnecessary strings before job authorization # Parameters - hashcodes: Array of string hashcodes to remove from the job - target_locale_ids: (Optional) Specific target locales to remove strings for
Inputs
hashcodesarrayrequired- Array of string hashcodes to remove from the job. Each hashcode uniquely identifies a translatable string.
job_uidstringrequired- The unique identifier of the job to remove strings from (e.g., "job-uid-123", "translation-job-456")
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
target_locale_idsarray- (Optional) Array of target locale IDs to remove strings for. If not provided, strings will be removed for all job target locales. Example: ["es", "fr", "de"]
smartlingmcp_smartling_remove_styleguide_attachmentRemove an attachment from a Smartling style guide.DestructiveSmartling Remove Styleguide Attachment
Remove an attachment from a Smartling style guide.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
attachment_uidstringrequired- Unique identifier of the attachment to remove. Must ask user if not provided.
style_guide_uidstringrequired- Unique identifier of the style guide. Must ask user if not provided.
smartlingmcp_smartling_remove_usersRemove users from a Smartling account, revoking their access entirely.DestructiveSmartling Remove Users
Remove users from a Smartling account, revoking their access entirely. Use smartling_get_user_allowed_actions first to confirm removal is allowed for a given user.
Inputs
account_idstringrequired- Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
user_uidsarrayrequired- UIDs of the users to remove from the account.
smartlingmcp_smartling_update_issue_answeredMark an issue as answered or un-answered.DestructiveSmartlingUpdateIssueAnswered
Mark an issue as answered or un-answered. # Use cases - Mark an issue answered after a reply is posted - Clear the answered flag if the reply is later found inadequate # Examples - project_id="p1", issue_uid="i1", answered=true
Inputs
answeredbooleanrequired- New answered state
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_update_issue_assigneeAssign an issue to a specific user.DestructiveSmartlingUpdateIssueAssignee
Assign an issue to a specific user. # Use cases - Route an issue to the responsible PM or translator for action # Examples - project_id="p1", issue_uid="i1", assignee_user_uid="user-xyz"
Inputs
assignee_user_uidstringrequired- User UID to assign the issue to (max 12 chars)
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_update_issue_commentEdit the text of an existing comment.DestructiveSmartlingUpdateIssueComment
Edit the text of an existing comment. # Use cases - Fix a typo in a comment - Update outdated guidance in a comment # Examples - project_id="p1", issue_uid="i1", issue_comment_uid="c1", comment_text="Edited"
Inputs
comment_textstringrequired- New comment body text (1–4000 chars)
issue_comment_uidstringrequired- The comment UID
issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_update_issue_severity_levelChange the severity level of an issue.DestructiveSmartlingUpdateIssueSeverityLevel
Change the severity level of an issue. # Use cases - Escalate an issue from MEDIUM to HIGH - Downgrade severity once mitigated # Examples - project_id="p1", issue_uid="i1", issue_severity_level="HIGH"
Inputs
issue_severity_levelstringrequired- New severity: LOW, MEDIUM, or HIGHone of
LOWMEDIUMHIGH issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
smartlingmcp_smartling_update_issue_typeChange the type and sub-type of an issue (optionally narrowing to one locale).DestructiveSmartlingUpdateIssueType
Change the type and sub-type of an issue (optionally narrowing to one locale). # Use cases - Re-categorize a CLARIFICATION issue as MISSPELLING after triage - Move a TRANSLATION issue to a specific locale # Examples - project_id="p1", issue_uid="i1", issue_type="TRANSLATION", issue_sub_type="MISSPELLING" - with locale: also locale_id="fr-FR"
Inputs
issue_sub_typestringrequired- New sub-typeone of
CLARIFICATIONMISSPELLINGPOOR_TRANSLATIONDOES_NOT_FIT_SPACEPLACEHOLDER_ISSUEREVIEW_TRANSLATIONCUSTOMMT_ERROR issue_typestringrequired- New type: SOURCE or TRANSLATIONone of
SOURCETRANSLATION issue_uidstringrequired- The issue UID
project_idstringrequired- The Smartling project UID
locale_idstring- Optional: narrow the issue to this target locale (max 5 chars)
smartlingmcp_smartling_update_jobGet detailed information about a specific Smartling job by its UID.DestructiveSmartlingUpdateJob
Get detailed information about a specific Smartling job by its UID. # Use cases - User wants to set any of optional job properties like due date - User needs to edit job metadata # Job Details Response The response includes detailed job information: - Callback method and URL configuration - Creation and modification user details - Custom field values - Complete job metadata and timestamps
Inputs
job_namestringrequired- Name of the job
job_uidstringrequired- Unique identifier for the translation job
project_idstringrequired- The unique identifier of the Smartling project (e.g., "project-123", "abc123def456")
callback_methodstring- Callback method configuration (GET, POST, etc.)one of
GETPOST callback_urlstring- Callback URL for job notifications
custom_fieldsarray- Array of custom field values for the job
descriptionstring- Job description
due_datestring- Due date for job completion
reference_numberstring- Reference number for the job
No tools match.