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 53 tools.
- Tools
- 53
- What they doRead · write · destructive
- 32 · 5 · 1632 read5 write16 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- The original (source) string text
project_uidstringrequired- 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- Optional: translation job UID this evaluation is associated with
metadataobject- Optional: arbitrary string key/value metadata to attach to the evaluation (e.g. {"integrationType": "TEST"})
word_countinteger- Optional: word count of the string, used for reporting/metrics
workflow_step_uidstring- Optional: workflow step UID this evaluation is associated with
workflow_uidstring- Optional: 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
This tool takes no inputs.
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.
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- Glossary state. Enum: "ACTIVE" "ARCHIVED" "BOTH".one of
ACTIVEARCHIVEDBOTH glossary_uidsarray- Filter by glossary UIDs.
include_entries_countboolean- Allows excluding or including glossary entries count for each glossary found by the criteria.
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- (Optional) Filter jobs by name. Supports partial matching to find jobs containing this text.
job_statusesarray- (Optional) Filter jobs by status. Provide an array of job statuses to filter by. Example: ["IN_PROGRESS", "AWAITING_AUTHORIZATION"]
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 in the list. If not provided, only active projects will be listed.
project_name_filterstring- Name of the project to filter by. If not provided, all projects will be listed. Do not enter empty string value if not provided, call tool without parameters instead. Must ask user if not provided.
project_type_codesarray- Array of project type codes to filter by. If not provided, all project types will be listed. Do not enter empty array if not provided, call tool without parameters instead. Must ask user if not provided.
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- (Optional) Search keyword to filter users by first or last name. The search is performed as a wildcard match.
project_idsarray- (Optional) Array of project IDs to filter users who are assigned to specific projects. Example: ["project-123", "project-456"]
user_rolesarray- (Optional) Array of role names to filter users by their assigned roles. Example: ["ROLE_TRANSLATION_RESOURCE", "ROLE_PROJECT_MANAGER"]
user_statusstring- (Optional) Filter users by their status. ALL (default) returns all users, ACTIVE returns only active users, PENDING returns users with pending invitations.one of
ALLACTIVEPENDING user_uidsarray- (Optional) Array of specific user UIDs to retrieve. Example: ["user-123", "user-456"]
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- Optional keyword to search for in workflow names. Supports partial matching.
locale_idsarray- Optional array of locale identifiers to filter workflows that include these locales. Example: ["es-ES", "fr-FR", "de-DE"]
project_idstring- The unique identifier of the Smartling project to search workflows within. If not provided, returns workflows across all projects (if supported).
workflow_step_uidsarray- Optional array of workflow step UIDs to filter workflows that contain these steps.
workflow_uidsarray- Optional array of specific workflow UIDs to retrieve. Use this when you need to get specific workflows by their unique identifiers.
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- Filter by active string presence.
assignment_filterobject- Filter by user assignment
context_filterobject- Filter by context presence with optional URL/UID filtering
estimated_edit_effort_filterobject- Filter by estimated edit effort levels.
hashcodesarray- Array of specific string hashcodes to search for (unique string identifiers)
history_filterobject- Filter by history actions and time intervals.
ingestion_warning_type_filterobject- Filter by ingestion warning types like CHARACTER_TO_WORD_RATIO_HIGH, STRING_TOO_LONG, etc.
instructions_filterobject- Filter by presence and content of translation instructions
issues_filterobject- Filter by string issues.
key_variant_filterobject- Filter by string key keyword with exact match option
locale_idsarray- Array of target locale identifiers to filter strings (e.g., ["es-ES", "fr-FR", "de-DE"])
namespace_filterobject- Filter by specific namespace name
placeholder_plurals_selectorstring- Control display of placeholder and plural forms. Available options: HAS_PLACEHOLDERS, HAS_PLURALS, HAS_BOTHone of
HAS_PLACEHOLDERSHAS_PLURALSHAS_BOTH prepublish_filterobject- Filter by prepublish presence
source_keywordstring- Text to search for within source string content (partial text matching)
source_onlyboolean- Whether to return only source strings without translation data
statusstring- Filter strings by translation status. AWAITING_AUTH: awaiting authorization, IN_PROGRESS: translation in progress, PUBLISHED: completed and published, EXCLUDED: excluded from translationone of
AWAITING_AUTHIN_PROGRESSPUBLISHEDEXCLUDED tags_filterobject- Filter by string tags.
translation_jobs_filterobject- Filter by translation job association
translation_review_filterobject- Filter by translation review presence and optional review state codes
translations_filterobject- Filter by translation presence and optionally search within translation text.
urls_filterobject- Filter by URL with exact match option
workflow_steps_filterobject- Filter by specific workflow step UIDs
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 search for in translation memory. This is the text you want to find similar translations for.
minimum_scorenumber- Minimum similarity score threshold (0.0 to 1.0). 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_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_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_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_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_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_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.