Smartling MCP
Vendor MCP53 toolsOAuth 2.1/DCRAIProductivityConnect to Smartling MCP to manage translation projects, jobs, files, and glossaries, and run machine translation and localization workflows from your AI...
Smartling MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set 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> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_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)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'smartlingmcp_smartling_get_available_accounts_for_current_user',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_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)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Update smartling — Get detailed information about a specific Smartling job by its UID
- Search smartling — Search translation memory for similar translations in a Smartling project
- Url smartling request upload — Requests a short-lived URL for uploading a local file, for use with other tools that accept an “upload_id” parameter (e.g
- Strings smartling remove tags from, smartling remove all tags from, smartling add tags to — Remove tags from strings in a Smartling project
- Job smartling remove strings from, smartling authorize, smartling add strings to — Remove strings from an existing Smartling job by their hashcodes
- Issue smartling open or close — Open or close (resolve) an issue
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
smartlingmcp_smartling_add_issue_comment#Post a new comment on an issue.
# Use cases
- Reply to a translator question
- Add additional context to a flagged issue
# Examples
- project_id="p1", issue_uid="i1", comment_text="Use the formal 'vous' form here"3 params
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"
comment_textstringrequiredComment body text (1–4000 chars)issue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_add_strings_to_job#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 elsewhere5 params
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
hashcodesarrayrequiredArray of string hashcodes to add to the job. Each hashcode uniquely identifies a translatable string.job_uidstringrequiredThe unique identifier of the job to add strings to (e.g., "job-uid-123", "translation-job-456")project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")move_enabledbooleanoptional(Optional) Whether to move strings from other jobs if they already exist elsewhere. Default is false.target_locale_idsarrayoptional(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_add_tags_to_strings#Add tags to strings in a Smartling project.
# Use cases
- Categorize subsets of your content in a Project for quick and easy filtering
# Examples
- Add tags to mark strings for a specific release: tags=["v2.1", "new-feature"]
- Tag strings by component: tags=["navigation", "header"]
- Mark strings for review: tags=["needs-review", "high-priority"]
# Parameters
- project_id: The unique identifier of the Smartling project
- tags: Array of tag strings to add (max 100 tags, each max 128 characters)
- string_hashcodes: Array of string hashcodes to tag (max 1000 hashcodes)3 params
Add tags to strings in a Smartling project. # Use cases - Categorize subsets of your content in a Project for quick and easy filtering # Examples - Add tags to mark strings for a specific release: tags=["v2.1", "new-feature"] - Tag strings by component: tags=["navigation", "header"] - Mark strings for review: tags=["needs-review", "high-priority"] # Parameters - project_id: The unique identifier of the Smartling project - tags: Array of tag strings to add (max 100 tags, each max 128 characters) - string_hashcodes: Array of string hashcodes to tag (max 1000 hashcodes)
project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")string_hashcodesarrayrequiredArray of string hashcodes to add tags to. Maximum 1000 string hashcodes can be processed at once.tagsarrayrequiredArray of tag strings to add to the strings. Each tag must be 128 characters or less, and maximum 100 tags can be added at once.smartlingmcp_smartling_authorize_job#Authorize a Smartling job to begin translation work with optional locale workflow assignments.
# What does job authorization mean?
Job authorization moves a job from "AWAITING_AUTHORIZATION" status to "IN_PROGRESS" status, allowing translators to begin working on the content. This is a critical step in the translation workflow.
# Use cases
- User has prepared a job with all necessary strings and is ready to begin translation
- User wants to start the translation process for a completed job setup
- User needs to move a job from draft/preparation phase to active translation
- User wants to trigger translator notifications and workflow assignment
- User needs to assign specific workflows to target locales during authorization
# Examples
- Basic authorization: Provide project_id and job_uid to authorize the job
- Authorization with locale workflows: Include locale_workflows to assign specific workflows to target locales
- Start translation work: Once authorized, the job becomes available to translators
- Workflow activation: Authorization triggers any configured workflow assignments
# Locale Workflows
- Optional parameter to assign specific workflows to target locales
- Each entry maps a target locale to a specific workflow UID
- Format: [{"target_locale_id": "es-ES", "workflow_uid": "workflow-123"}]
- Useful for assigning different translation workflows to different languages
# Important Notes
- Jobs must be in "AWAITING_AUTHORIZATION" status to be authorized
- Once authorized, jobs typically cannot be moved back to unauthorized status
- Authorization may trigger notifications to assigned translators or project managers
- Locale workflows are optional and will use project defaults if not specified3 params
Authorize a Smartling job to begin translation work with optional locale workflow assignments. # What does job authorization mean? Job authorization moves a job from "AWAITING_AUTHORIZATION" status to "IN_PROGRESS" status, allowing translators to begin working on the content. This is a critical step in the translation workflow. # Use cases - User has prepared a job with all necessary strings and is ready to begin translation - User wants to start the translation process for a completed job setup - User needs to move a job from draft/preparation phase to active translation - User wants to trigger translator notifications and workflow assignment - User needs to assign specific workflows to target locales during authorization # Examples - Basic authorization: Provide project_id and job_uid to authorize the job - Authorization with locale workflows: Include locale_workflows to assign specific workflows to target locales - Start translation work: Once authorized, the job becomes available to translators - Workflow activation: Authorization triggers any configured workflow assignments # Locale Workflows - Optional parameter to assign specific workflows to target locales - Each entry maps a target locale to a specific workflow UID - Format: [{"target_locale_id": "es-ES", "workflow_uid": "workflow-123"}] - Useful for assigning different translation workflows to different languages # Important Notes - Jobs must be in "AWAITING_AUTHORIZATION" status to be authorized - Once authorized, jobs typically cannot be moved back to unauthorized status - Authorization may trigger notifications to assigned translators or project managers - Locale workflows are optional and will use project defaults if not specified
job_uidstringrequiredThe unique identifier of the job to authorize (e.g., "job-uid-123", "translation-job-456")project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")locale_workflowsarrayoptional(Optional) Array of locale-workflow mappings to assign specific workflows to target locales during authorization. Example: [{"target_locale_id": "es-ES", "workflow_uid": "workflow-123"}]smartlingmcp_smartling_count_account_issues#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"]19 params
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"]
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.answeredbooleanoptionalFilter by answered stateassignee_user_uidstringoptionalFilter to issues assigned to this user (max 12 chars)created_date_afterstringoptionalISO 8601 timestamp; include issues created after this datecreated_date_beforestringoptionalISO 8601 timestamp; include issues created before this datehas_commentsbooleanoptionalFilter by whether the issue has commentsissue_numbersarrayoptionalFilter by specific issue numbers (max 1000)issue_severity_level_codesarrayoptionalFilter by severity (LOW, MEDIUM, HIGH)issue_state_codesarrayoptionalFilter by state (OPENED, RESOLVED)issue_sub_type_codesarrayoptionalFilter by sub-type (CLARIFICATION, MISSPELLING, etc.)issue_type_codesarrayoptionalFilter by type (SOURCE, TRANSLATION)issue_watching_state_codestringoptionalFilter by current user's watching statejob_filterobjectoptionalFilter by job containmentproject_idsarrayoptionalOptional: limit to specific project UIDsreopenedbooleanoptionalFilter by reopened statereported_by_user_uidstringoptionalFilter to issues reported by this user (max 12 chars)resolved_date_afterstringoptionalISO 8601 timestamp; include issues resolved after this dateresolved_date_beforestringoptionalISO 8601 timestamp; include issues resolved before this datestring_filterobjectoptionalFilter by string propertiessmartlingmcp_smartling_count_project_issues#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"]18 params
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"]
project_idstringrequiredThe Smartling project UIDansweredbooleanoptionalFilter by answered stateassignee_user_uidstringoptionalFilter to issues assigned to this user (max 12 chars)created_date_afterstringoptionalISO 8601 timestamp; include issues created after this datecreated_date_beforestringoptionalISO 8601 timestamp; include issues created before this datehas_commentsbooleanoptionalFilter by whether the issue has commentsissue_numbersarrayoptionalFilter by specific issue numbers (max 1000)issue_severity_level_codesarrayoptionalFilter by severity (LOW, MEDIUM, HIGH)issue_state_codesarrayoptionalFilter by state (OPENED, RESOLVED)issue_sub_type_codesarrayoptionalFilter by sub-type (CLARIFICATION, MISSPELLING, etc.)issue_type_codesarrayoptionalFilter by type (SOURCE, TRANSLATION)issue_watching_state_codestringoptionalFilter by current user's watching statejob_filterobjectoptionalFilter by job containmentreopenedbooleanoptionalFilter by reopened statereported_by_user_uidstringoptionalFilter to issues reported by this user (max 12 chars)resolved_date_afterstringoptionalISO 8601 timestamp; include issues resolved after this dateresolved_date_beforestringoptionalISO 8601 timestamp; include issues resolved before this datestring_filterobjectoptionalFilter by string propertiessmartlingmcp_smartling_create_issue#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=HIGH7 params
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
issue_sub_typestringrequiredIssue sub-type (CLARIFICATION, MISSPELLING, POOR_TRANSLATION, DOES_NOT_FIT_SPACE, PLACEHOLDER_ISSUE, REVIEW_TRANSLATION, CUSTOM, MT_ERROR)issue_textstringrequiredIssue body text (1–4000 chars)issue_typestringrequiredIssue type: SOURCE or TRANSLATIONproject_idstringrequiredThe Smartling project UIDstringobjectrequiredThe string this issue is attached toassignee_user_uidstringoptionalOptional: user UID to assign the issue to (max 12 chars)issue_severity_levelstringoptionalOptional: severity (LOW, MEDIUM, HIGH)smartlingmcp_smartling_create_job#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 timestamps9 params
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
job_namestringrequiredName of the jobproject_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")target_locale_idsarrayrequiredArray of target locale IDs for translationcallback_methodstringoptionalCallback method configuration (GET, POST, etc.)callback_urlstringoptionalCallback URL for job notificationscustom_fieldsarrayoptionalArray of custom field values for the jobdescriptionstringoptionalJob descriptiondue_datestringoptionalDue date for job completionreference_numberstringoptionalReference number for the jobsmartlingmcp_smartling_create_strings#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.5 params
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.
project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")stringsarrayrequiredArray of string objects to create. Maximum 100 strings can be created in a single requestnamespacestringoptional(Optional) Namespace to organize and group related strings (e.g., "app.navigation", "forms.validation")placeholder_formatstringoptional(Optional) Predefined placeholder format. Common values: "java" ({name}), "python" (%(name)s), "c" (%s), "resx" ({0}), "yaml" (%{name})placeholder_format_customstringoptional(Optional) Custom regular expression pattern for identifying placeholders in the string textsmartlingmcp_smartling_delete_issue_assignee#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"2 params
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"
issue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_delete_issue_comment#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.3 params
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.
issue_comment_uidstringrequiredThe comment UID to deleteissue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_edit_issue_text#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"3 params
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"
issue_textstringrequiredNew issue body text (1–4000 chars)issue_uidstringrequiredThe issue UID to editproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_execute_lqa_evaluation#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"}12 params
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"}
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.hashcodestringrequiredHashcode 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_stringstringrequiredThe original (source) string textproject_uidstringrequiredThe Smartling project UID the string belongs tosource_locale_idstringrequiredLocale identifier of the source string (e.g. "en")target_locale_idstringrequiredLocale identifier of the translation (e.g. "fr-FR")translationstringrequiredThe translated text to evaluate against the sourcejob_uidstringoptionalOptional: translation job UID this evaluation is associated withmetadataobjectoptionalOptional: arbitrary string key/value metadata to attach to the evaluation (e.g. {"integrationType": "TEST"})word_countintegeroptionalOptional: word count of the string, used for reporting/metricsworkflow_step_uidstringoptionalOptional: workflow step UID this evaluation is associated withworkflow_uidstringoptionalOptional: workflow UID this evaluation is associated withsmartlingmcp_smartling_export_glossary#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"}22 params
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"}
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.formatstringrequiredExport format. CSV for comma-separated values, XLSX for Excel format, TBX for translation exchange format.glossary_uidstringrequiredUID of the glossary to export entries from.created_by_filterobjectoptionalFilter entries by creator.created_filterobjectoptionalFilter entries by creation date.dnt_locale_idstringoptionalFilter entries by "Do Not Translate" flag for specified locale.dnt_term_setbooleanoptionalFilter entries based on "Do Not Translate" term setting.entry_statestringoptionalFilter entries by their state. ACTIVE for active entries only, ARCHIVED for archived entries only, BOTH for all entries.entry_uidsarrayoptionalArray of specific entry UIDs to export. If provided, only these entries will be exported.focus_locale_idstringoptionalFocus locale ID for the export. This locale will be prioritized in the export.labelsobjectoptionalFilter entries by labels.last_modified_by_filterobjectoptionalFilter entries by last modifier.last_modified_filterobjectoptionalFilter entries by last modified date.locale_idsarrayoptionalArray 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_idstringoptionalFilter to include entries missing translations in specified locale.pagingobjectoptionalPagination settings for the export.present_translation_locale_idstringoptionalFilter to include entries with translations present in specified locale.querystringoptionalSearch query to filter entries by term content.return_fallback_translationsbooleanoptionalWhether to include fallback translations in the export. Default is false.skip_entriesbooleanoptionalWhether to skip entry details and export only metadata. Default is false.sortingobjectoptionalSorting settings for the export.tbx_versionstringoptionalTBX version to use when exporting in TBX format. Only relevant when format is "TBX".smartlingmcp_smartling_find_account_issues#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"]22 params
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"]
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.answeredbooleanoptionalFilter by answered stateassignee_user_uidstringoptionalFilter to issues assigned to this user (max 12 chars)created_date_afterstringoptionalISO 8601 timestamp; include issues created after this datecreated_date_beforestringoptionalISO 8601 timestamp; include issues created before this datehas_commentsbooleanoptionalFilter by whether the issue has commentsissue_numbersarrayoptionalFilter by specific issue numbers (max 1000)issue_severity_level_codesarrayoptionalFilter by severity (LOW, MEDIUM, HIGH)issue_state_codesarrayoptionalFilter by state (OPENED, RESOLVED)issue_sub_type_codesarrayoptionalFilter by sub-type (CLARIFICATION, MISSPELLING, etc.)issue_type_codesarrayoptionalFilter by type (SOURCE, TRANSLATION)issue_watching_state_codestringoptionalFilter by current user's watching statejob_filterobjectoptionalFilter by job containmentlimitintegeroptionalPage size (1–30; default 30)offsetintegeroptionalPagination offset, non-negativeproject_idsarrayoptionalOptional: limit to specific project UIDsreopenedbooleanoptionalFilter by reopened statereported_by_user_uidstringoptionalFilter to issues reported by this user (max 12 chars)resolved_date_afterstringoptionalISO 8601 timestamp; include issues resolved after this dateresolved_date_beforestringoptionalISO 8601 timestamp; include issues resolved before this datesort_byobjectoptionalSort specificationstring_filterobjectoptionalFilter by string propertiessmartlingmcp_smartling_find_project_issues#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=3021 params
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
project_idstringrequiredThe Smartling project UIDansweredbooleanoptionalFilter by answered stateassignee_user_uidstringoptionalFilter to issues assigned to this user (max 12 chars)created_date_afterstringoptionalISO 8601 timestamp; include issues created after this datecreated_date_beforestringoptionalISO 8601 timestamp; include issues created before this datehas_commentsbooleanoptionalFilter by whether the issue has commentsissue_numbersarrayoptionalFilter by specific issue numbers (max 1000)issue_severity_level_codesarrayoptionalFilter by severity (LOW, MEDIUM, HIGH)issue_state_codesarrayoptionalFilter by state (OPENED, RESOLVED)issue_sub_type_codesarrayoptionalFilter by sub-type (CLARIFICATION, MISSPELLING, etc.)issue_type_codesarrayoptionalFilter by type (SOURCE, TRANSLATION)issue_watching_state_codestringoptionalFilter by current user's watching statejob_filterobjectoptionalFilter by job containmentlimitintegeroptionalPage size (1–30; default 30)offsetintegeroptionalPagination offset, non-negativereopenedbooleanoptionalFilter by reopened statereported_by_user_uidstringoptionalFilter to issues reported by this user (max 12 chars)resolved_date_afterstringoptionalISO 8601 timestamp; include issues resolved after this dateresolved_date_beforestringoptionalISO 8601 timestamp; include issues resolved before this datesort_byobjectoptionalSort specificationstring_filterobjectoptionalFilter by string propertiessmartlingmcp_smartling_get_available_accounts_for_current_user#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 use0 params
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
smartlingmcp_smartling_get_glossary#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.2 params
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.
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.glossary_uidstringrequiredUID of the glossary to retrieve.smartlingmcp_smartling_get_issue#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"2 params
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"
issue_uidstringrequiredThe unique identifier of the issue to retrieveproject_idstringrequiredThe Smartling project UID the issue belongs tosmartlingmcp_smartling_get_issue_comment#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"3 params
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"
issue_comment_uidstringrequiredThe comment UIDissue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_get_job#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 timestamps2 params
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
job_uidstringrequiredThe unique identifier of the job to retrieve (e.g., "job-uid-123", "translation-job-456")project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")smartlingmcp_smartling_get_job_history#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 total4 params
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
job_uidstringrequiredThe unique identifier of the job to retrieve history for (e.g., "job-uid-123")project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")limitintegeroptional(Optional) Page size (1-100; default 100). Capped at 100 to keep responses manageable; use offset to page through longer histories.offsetintegeroptional(Optional) Pagination offset, non-negative. Defaults to 0 if omitted.smartlingmcp_smartling_get_linguistic_package#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.2 params
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.
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.linguistic_package_uidstringrequiredUID of the linguistic package to retrieve.smartlingmcp_smartling_get_project#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.
1 param
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.
project_uidstringrequiredUID of the project to retrieve.smartlingmcp_smartling_get_styleguide#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.2 params
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.
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.style_guide_uidstringrequiredUnique identifier of the style guide to retrieve. Must ask user if not provided.smartlingmcp_smartling_get_word_count_report#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"}12 params
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"}
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.end_datestringrequiredEnd 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_datestringrequiredStart 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_uidstringoptionalThe unique identifier of the agency to get report forfieldsstringoptionalList 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_uidsarrayoptionalList of the unique identifiers of the job to get report forlimitnumberoptionalMaximum number of items to return (default: 10000, max: 10000)offsetnumberoptionalPagination offset (0-based)project_idsarrayoptionalList of the unique identifiers of the Smartling project to get report fortarget_locale_idsarrayoptionalList of the target locale identifiers (e.g., "es", "fr-FR") to get report foruser_uidsarrayoptionalList of the unique identifiers of the translation resource/user to get report forworkflow_step_typesarrayoptionalThe workflow step types to filter by (e.g., "Translation", "Review", "Edit"). Entire list can be fetched using the "Get Workflow Step Types" toolsmartlingmcp_smartling_get_workflow_step_types#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)0 params
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)
smartlingmcp_smartling_list_content_assignments#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)1 param
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)
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.smartlingmcp_smartling_list_file_jobs#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 for2 params
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
file_uristringrequiredThe URI of the file to check (e.g., "/content/app.json", "strings/mobile.properties")project_uidstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")smartlingmcp_smartling_list_glossaries#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 UIDs6 params
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
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.glossary_statestringoptionalGlossary state. Enum: "ACTIVE" "ARCHIVED" "BOTH".glossary_uidsarrayoptionalFilter by glossary UIDs.include_entries_countbooleanoptionalAllows excluding or including glossary entries count for each glossary found by the criteria.querystringoptionalAllows searching glossaries by query within glossaryName or description properties. Also supports exact search by glossaryUid.target_locale_idstringoptionalFilter glossaries that have the specified target locale preconfigured.smartlingmcp_smartling_list_issue_comments#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"2 params
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"
issue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_list_jobs#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 completion3 params
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
project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")job_namestringoptional(Optional) Filter jobs by name. Supports partial matching to find jobs containing this text.job_statusesarrayoptional(Optional) Filter jobs by status. Provide an array of job statuses to filter by. Example: ["IN_PROGRESS", "AWAITING_AUTHORIZATION"]smartlingmcp_smartling_list_linguistic_packages#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"}1 param
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"}
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.smartlingmcp_smartling_list_projects#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"]
}4 params
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"] }
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.include_archivedbooleanoptionalWhether to include archived projects in the list. If not provided, only active projects will be listed.project_name_filterstringoptionalName 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_codesarrayoptionalArray 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_styleguides#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"
}2 params
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" }
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.namestringoptionalName 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_users#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 Owner6 params
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
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.keywordstringoptional(Optional) Search keyword to filter users by first or last name. The search is performed as a wildcard match.project_idsarrayoptional(Optional) Array of project IDs to filter users who are assigned to specific projects. Example: ["project-123", "project-456"]user_rolesarrayoptional(Optional) Array of role names to filter users by their assigned roles. Example: ["ROLE_TRANSLATION_RESOURCE", "ROLE_PROJECT_MANAGER"]user_statusstringoptional(Optional) Filter users by their status. ALL (default) returns all users, ACTIVE returns only active users, PENDING returns users with pending invitations.user_uidsarrayoptional(Optional) Array of specific user UIDs to retrieve. Example: ["user-123", "user-456"]smartlingmcp_smartling_list_workflows#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"]
}6 params
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"] }
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.keywordstringoptionalOptional keyword to search for in workflow names. Supports partial matching.locale_idsarrayoptionalOptional array of locale identifiers to filter workflows that include these locales. Example: ["es-ES", "fr-FR", "de-DE"]project_idstringoptionalThe unique identifier of the Smartling project to search workflows within. If not provided, returns workflows across all projects (if supported).workflow_step_uidsarrayoptionalOptional array of workflow step UIDs to filter workflows that contain these steps.workflow_uidsarrayoptionalOptional array of specific workflow UIDs to retrieve. Use this when you need to get specific workflows by their unique identifiers.smartlingmcp_smartling_machine_translate_file#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.7 params
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.
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.file_namestringrequiredOriginal filename for context.mime_typestringrequiredMIME type of the file.target_localestringrequiredTarget language locale code (2 or 5 letters, e.g., "en" or "en-US", dash separator only). Must ask user if not provided.file_contentstringoptionalFile 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_localestringoptionalSource language locale code (2 or 5 letters, e.g., "it" or "it-IT", dash separator only). Auto-detected if omitted.upload_idstringoptionalIdentifier 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_text#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.4 params
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.
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.target_localestringrequiredTarget 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_translatearrayrequiredArray of text items to be translated. Each item should have a unique key and the text to be translated.source_localestringoptionalSource language locale code (2 or 5 letters, e.g., "it" or "it-IT", dash separator only). Auto-detected if omitted.smartlingmcp_smartling_match_glossary_terms#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": ""
}
]
}7 params
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": "" } ] }
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.glossary_uidsarrayrequiredArray of glossary UIDs to search within.source_locale_idstringrequiredSource locale ID for the terms to match.source_text_to_matcharrayrequiredSource text to match against glossary terms.translation_locale_idstringrequiredTarget locale ID for the terms to match.translation_text_to_matcharrayrequiredTranslation 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_onlybooleanoptionalWhether to include only MT-optimized terms. If not specified then MT-optimized only terms will be included.smartlingmcp_smartling_open_or_close_issue#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"3 params
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"
issue_statestringrequiredNew state: OPENED or RESOLVEDissue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_remove_all_tags_from_strings#Remove all tags from strings in a Smartling project.
# Use cases
- Clean slate for string reorganization - remove all tags before applying new categorization
- Prepare strings for migration to a different tagging system
- Batch clean up of strings during project restructuring
# Examples
- Clean up strings before project migration
- Remove all tags from deprecated feature strings
- Reset tagging for strings that will be recategorized
- Clean up test strings that accumulated development tags
# Parameters
- project_id: The unique identifier of the Smartling project
- string_hashcodes: Array of string hashcodes to remove all tags from (max 1000 hashcodes)
# Important Note
This operation removes ALL tags from the specified strings. Use with caution as this action cannot be easily undone.2 params
Remove all tags from strings in a Smartling project. # Use cases - Clean slate for string reorganization - remove all tags before applying new categorization - Prepare strings for migration to a different tagging system - Batch clean up of strings during project restructuring # Examples - Clean up strings before project migration - Remove all tags from deprecated feature strings - Reset tagging for strings that will be recategorized - Clean up test strings that accumulated development tags # Parameters - project_id: The unique identifier of the Smartling project - string_hashcodes: Array of string hashcodes to remove all tags from (max 1000 hashcodes) # Important Note This operation removes ALL tags from the specified strings. Use with caution as this action cannot be easily undone.
project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")string_hashcodesarrayrequiredArray of string hashcodes to remove all tags from. Maximum 1000 string hashcodes can be processed at once.smartlingmcp_smartling_remove_strings_from_job#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 for4 params
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
hashcodesarrayrequiredArray of string hashcodes to remove from the job. Each hashcode uniquely identifies a translatable string.job_uidstringrequiredThe unique identifier of the job to remove strings from (e.g., "job-uid-123", "translation-job-456")project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")target_locale_idsarrayoptional(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_tags_from_strings#Remove tags from strings in a Smartling project.
# Use cases
- Remove outdated tags from strings
# Examples
- Clean up categorization tags: tags=["old-feature", "deprecated"]
- Remove release tags after deployment: tags=["v2.0", "pending-release"]
# Parameters
- project_id: The unique identifier of the Smartling project
- tags: Array of tag strings to remove (max 100 tags, each max 128 characters)
- string_hashcodes: Array of string hashcodes to remove tags from (max 1000 hashcodes)3 params
Remove tags from strings in a Smartling project. # Use cases - Remove outdated tags from strings # Examples - Clean up categorization tags: tags=["old-feature", "deprecated"] - Remove release tags after deployment: tags=["v2.0", "pending-release"] # Parameters - project_id: The unique identifier of the Smartling project - tags: Array of tag strings to remove (max 100 tags, each max 128 characters) - string_hashcodes: Array of string hashcodes to remove tags from (max 1000 hashcodes)
project_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")string_hashcodesarrayrequiredArray of string hashcodes to remove tags from. Maximum 1000 string hashcodes can be processed at once.tagsarrayrequiredArray of tag strings to remove from the strings. Each tag must be 128 characters or less, and maximum 100 tags can be removed at once.smartlingmcp_smartling_request_upload_url#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.1 param
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.
account_idstringrequiredAccount UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.smartlingmcp_smartling_search_strings#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)24 params
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)
project_uidstringrequiredThe unique identifier of the Smartling project to search strings within (e.g., "project-uid-123", "abc123def456")active_strings_filterobjectoptionalFilter by active string presence.assignment_filterobjectoptionalFilter by user assignmentcontext_filterobjectoptionalFilter by context presence with optional URL/UID filteringestimated_edit_effort_filterobjectoptionalFilter by estimated edit effort levels.hashcodesarrayoptionalArray of specific string hashcodes to search for (unique string identifiers)history_filterobjectoptionalFilter by history actions and time intervals.ingestion_warning_type_filterobjectoptionalFilter by ingestion warning types like CHARACTER_TO_WORD_RATIO_HIGH, STRING_TOO_LONG, etc.instructions_filterobjectoptionalFilter by presence and content of translation instructionsissues_filterobjectoptionalFilter by string issues.key_variant_filterobjectoptionalFilter by string key keyword with exact match optionlocale_idsarrayoptionalArray of target locale identifiers to filter strings (e.g., ["es-ES", "fr-FR", "de-DE"])namespace_filterobjectoptionalFilter by specific namespace nameplaceholder_plurals_selectorstringoptionalControl display of placeholder and plural forms. Available options: HAS_PLACEHOLDERS, HAS_PLURALS, HAS_BOTHprepublish_filterobjectoptionalFilter by prepublish presencesource_keywordstringoptionalText to search for within source string content (partial text matching)source_onlybooleanoptionalWhether to return only source strings without translation datastatusstringoptionalFilter strings by translation status. AWAITING_AUTH: awaiting authorization, IN_PROGRESS: translation in progress, PUBLISHED: completed and published, EXCLUDED: excluded from translationtags_filterobjectoptionalFilter by string tags.translation_jobs_filterobjectoptionalFilter by translation job associationtranslation_review_filterobjectoptionalFilter by translation review presence and optional review state codestranslations_filterobjectoptionalFilter by translation presence and optionally search within translation text.urls_filterobjectoptionalFilter by URL with exact match optionworkflow_steps_filterobjectoptionalFilter by specific workflow step UIDssmartlingmcp_smartling_search_translation_memory#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
}4 params
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 }
locale_idstringrequiredThe target locale identifier (e.g., "es-ES", "fr-FR") to search translations for. Must ask user if not provided.project_idstringrequiredThe unique identifier of the Smartling project to search translation memory within. Must ask user if not provided.searchstringrequiredThe source text to search for in translation memory. This is the text you want to find similar translations for.minimum_scorenumberoptionalMinimum 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.smartlingmcp_smartling_update_issue_answered#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=true3 params
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
answeredbooleanrequiredNew answered stateissue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_update_issue_assignee#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"3 params
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"
assignee_user_uidstringrequiredUser UID to assign the issue to (max 12 chars)issue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_update_issue_comment#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"4 params
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"
comment_textstringrequiredNew comment body text (1–4000 chars)issue_comment_uidstringrequiredThe comment UIDissue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_update_issue_severity_level#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"3 params
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"
issue_severity_levelstringrequiredNew severity: LOW, MEDIUM, or HIGHissue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDsmartlingmcp_smartling_update_issue_type#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"5 params
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"
issue_sub_typestringrequiredNew sub-typeissue_typestringrequiredNew type: SOURCE or TRANSLATIONissue_uidstringrequiredThe issue UIDproject_idstringrequiredThe Smartling project UIDlocale_idstringoptionalOptional: narrow the issue to this target locale (max 5 chars)smartlingmcp_smartling_update_job#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 timestamps9 params
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
job_namestringrequiredName of the jobjob_uidstringrequiredUnique identifier for the translation jobproject_idstringrequiredThe unique identifier of the Smartling project (e.g., "project-123", "abc123def456")callback_methodstringoptionalCallback method configuration (GET, POST, etc.)callback_urlstringoptionalCallback URL for job notificationscustom_fieldsarrayoptionalArray of custom field values for the jobdescriptionstringoptionalJob descriptiondue_datestringoptionalDue date for job completionreference_numberstringoptionalReference number for the job