Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Smartling MCP server

Vendor MCP
Open markdown

The Smartling MCP connector routes your AI agent's tool calls to Smartling's own MCP server through Scalekit. Each user signs in to Smartling once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 115 tools.

Tools
115
What they doRead · write · destructive
32 · 62 · 2132 read62 write21 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Smartling MCP connection

    In AgentKit > Connections, create a Smartling MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Smartling MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'smartlingmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Smartling MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'smartlingmcp_smartling_get_available_accounts_for_current_user',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • smartlingmcp_smartling_count_account_issuesCount issues across all projects in the current Smartling account (with optional project narrowing).Read-only

    SmartlingCountAccountIssues

    Count issues across all projects in the current Smartling account (with optional project narrowing). The account is taken from the MCP token credentials. # Use cases - Show a global issue badge for the user # Examples - All open: issue_state_codes=["OPENED"]

    Inputs

    account_idstringrequired
    Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
    answeredboolean
    Filter by answered state
    assignee_user_uidstring
    Filter to issues assigned to this user (max 12 chars)
    created_date_afterstring
    ISO 8601 timestamp; include issues created after this date
    created_date_beforestring
    ISO 8601 timestamp; include issues created before this date
    has_commentsboolean
    Filter by whether the issue has comments
    issue_numbersarray
    Filter by specific issue numbers (max 1000)
    issue_severity_level_codesarray
    Filter by severity (LOW, MEDIUM, HIGH)
    issue_state_codesarray
    Filter by state (OPENED, RESOLVED)
    issue_sub_type_codesarray
    Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
    issue_type_codesarray
    Filter by type (SOURCE, TRANSLATION)
    issue_watching_state_codestring
    Filter by current user's watching stateone of WATCHINGNOT_WATCHING
    job_filterobject
    Filter by job containment
    project_idsarray
    Optional: limit to specific project UIDs
    reopenedboolean
    Filter by reopened state
    reported_by_user_uidstring
    Filter to issues reported by this user (max 12 chars)
    resolved_date_afterstring
    ISO 8601 timestamp; include issues resolved after this date
    resolved_date_beforestring
    ISO 8601 timestamp; include issues resolved before this date
    string_filterobject
    Filter by string properties
  • smartlingmcp_smartling_count_project_issuesCount issues within a single Smartling project matching the given filters.Read-only

    SmartlingCountProjectIssues

    Count issues within a single Smartling project matching the given filters. # Use cases - Display a badge of how many open issues a project has - Sanity-check filter shape before running a full find # Examples - Count all open issues: project_id="p1", issue_state_codes=["OPENED"]

    Inputs

    project_idstringrequired
    The Smartling project UID
    answeredboolean
    Filter by answered state
    assignee_user_uidstring
    Filter to issues assigned to this user (max 12 chars)
    created_date_afterstring
    ISO 8601 timestamp; include issues created after this date
    created_date_beforestring
    ISO 8601 timestamp; include issues created before this date
    has_commentsboolean
    Filter by whether the issue has comments
    issue_numbersarray
    Filter by specific issue numbers (max 1000)
    issue_severity_level_codesarray
    Filter by severity (LOW, MEDIUM, HIGH)
    issue_state_codesarray
    Filter by state (OPENED, RESOLVED)
    issue_sub_type_codesarray
    Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
    issue_type_codesarray
    Filter by type (SOURCE, TRANSLATION)
    issue_watching_state_codestring
    Filter by current user's watching stateone of WATCHINGNOT_WATCHING
    job_filterobject
    Filter by job containment
    reopenedboolean
    Filter by reopened state
    reported_by_user_uidstring
    Filter to issues reported by this user (max 12 chars)
    resolved_date_afterstring
    ISO 8601 timestamp; include issues resolved after this date
    resolved_date_beforestring
    ISO 8601 timestamp; include issues resolved before this date
    string_filterobject
    Filter by string properties
  • smartlingmcp_smartling_execute_lqa_evaluationRun an automated Linguistic Quality Assurance (LQA) evaluation on a single translated string and get back any detected quality errors.Read-only

    SmartlingExecuteLqaEvaluation

    Run an automated Linguistic Quality Assurance (LQA) evaluation on a single translated string and get back any detected quality errors. # What is an LQA evaluation? LQA evaluation checks a translation against its source string using Smartling's linguistic quality rules (e.g. blocklist compliance, omissions, mistranslations) and returns the list of errors found, each with a category and severity. It does not modify the string or record the errors anywhere; it only reports what an LQA scan would flag. # Use cases - Automatically screen a translation for quality issues right after it's produced (e.g. from MT or a translator) - Gate a workflow step transition on the string passing LQA with no critical/major errors - Spot-check a translation on demand without waiting for a scheduled LQA pass # Examples - Minimal: account_id, project_uid, hashcode, source_locale_id="en", target_locale_id="fr-FR", original_string, translation - With job/workflow context: also pass job_uid, workflow_uid, workflow_step_uid so the evaluation is attributed to that job step - With custom metadata: metadata={"integrationType": "TEST"}

    Inputs

    account_idstringrequired
    Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
    hashcodestringrequired
    Hashcode of the string being evaluated. Not validated against Smartling content and does not need to correspond to an existing string; any non-empty string is accepted.
    original_stringstringrequired
    No description.
    project_idstringrequired
    The Smartling project UID the string belongs to
    source_locale_idstringrequired
    Locale identifier of the source string (e.g. "en")
    target_locale_idstringrequired
    Locale identifier of the translation (e.g. "fr-FR")
    translationstringrequired
    The translated text to evaluate against the source
    job_uidstring
    Translation job UID this evaluation is associated with
    metadataobject
    Arbitrary string key/value metadata to attach to the evaluation
    word_countinteger
    Word count of the string, used for reporting/metrics
    workflow_step_uidstring
    Workflow step UID this evaluation is associated with
    workflow_uidstring
    Workflow UID this evaluation is associated with
  • smartlingmcp_smartling_export_glossaryExport glossary entries in various formats (CSV, XLSX, TBX).Read-only

    SmartlingExportGlossary

    Export glossary entries in various formats (CSV, XLSX, TBX). # What is glossary export? Glossary export allows you to export glossary entries with various filtering and formatting options. You can export entries in CSV, XLSX, or TBX formats with comprehensive filtering capabilities including locale filtering, entry state filtering, label filtering, and more. # Use cases - User requests to export entire glossary in a specific format - User wants to export glossary entries for specific locales - User needs to export filtered glossary entries (by state, labels, date ranges, etc.) - User wants to export glossary in TBX format for translation memory systems - User needs to export glossary entries with specific sorting or pagination # Examples - Export full glossary as CSV: {"glossary_uid": "abc123", "format": "CSV", "locale_ids": ["en-US", "fr-FR"]} - Export active entries only: {"glossary_uid": "abc123", "format": "XLSX", "entry_state": "ACTIVE"} - Export with custom filters: {"glossary_uid": "abc123", "format": "TBX", "tbx_version": "TBXcoreStructV02", "query": "marketing terms"}

    Inputs

    account_idstringrequired
    Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
    formatstringrequired
    Export format. CSV for comma-separated values, XLSX for Excel format, TBX for translation exchange format.one of CSVXLSXTBX
    glossary_uidstringrequired
    UID of the glossary to export entries from.
    created_by_filterobject
    Filter entries by creator.
    created_filterobject
    Filter entries by creation date.
    dnt_locale_idstring
    Filter entries by "Do Not Translate" flag for specified locale.
    dnt_term_setboolean
    Filter entries based on "Do Not Translate" term setting.
    entry_statestring
    Filter entries by their state. ACTIVE for active entries only, ARCHIVED for archived entries only, BOTH for all entries.one of ACTIVEARCHIVEDBOTH
    entry_uidsarray
    Array of specific entry UIDs to export. If provided, only these entries will be exported.
    focus_locale_idstring
    Focus locale ID for the export. This locale will be prioritized in the export.
    labelsobject
    Filter entries by labels.
    last_modified_by_filterobject
    Filter entries by last modifier.
    last_modified_filterobject
    Filter entries by last modified date.
    locale_idsarray
    Array of locale IDs to include in export (e.g., ["en-US", "fr-FR", "de-DE"]). If not provided, all locales will be exported.
    missing_translation_locale_idstring
    Filter to include entries missing translations in specified locale.
    pagingobject
    Pagination settings for the export.
    present_translation_locale_idstring
    Filter to include entries with translations present in specified locale.
    querystring
    Search query to filter entries by term content.
    return_fallback_translationsboolean
    Whether to include fallback translations in the export. Default is false.
    skip_entriesboolean
    Whether to skip entry details and export only metadata. Default is false.
    sortingobject
    Sorting settings for the export.
    tbx_versionstring
    TBX version to use when exporting in TBX format. Only relevant when format is "TBX".one of TBXcoreStructV02TBXcoreStructV03
  • smartlingmcp_smartling_find_account_issuesSearch issues across all projects in the current Smartling account, with pagination, sorting, filters, and optional project narrowing.Read-only

    SmartlingFindAccountIssues

    Search issues across all projects in the current Smartling account, with pagination, sorting, filters, and optional project narrowing. The account is taken from the MCP token credentials. # Use cases - Find all HIGH-severity OPEN issues across the whole account - Cross-project triage of recent issues # Examples - All open: issue_state_codes=["OPENED"] - Narrow to two projects: project_ids=["p1","p2"]

    Inputs

    account_idstringrequired
    Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
    answeredboolean
    Filter by answered state
    assignee_user_uidstring
    Filter to issues assigned to this user (max 12 chars)
    created_date_afterstring
    ISO 8601 timestamp; include issues created after this date
    created_date_beforestring
    ISO 8601 timestamp; include issues created before this date
    has_commentsboolean
    Filter by whether the issue has comments
    issue_numbersarray
    Filter by specific issue numbers (max 1000)
    issue_severity_level_codesarray
    Filter by severity (LOW, MEDIUM, HIGH)
    issue_state_codesarray
    Filter by state (OPENED, RESOLVED)
    issue_sub_type_codesarray
    Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
    issue_type_codesarray
    Filter by type (SOURCE, TRANSLATION)
    issue_watching_state_codestring
    Filter by current user's watching stateone of WATCHINGNOT_WATCHING
    job_filterobject
    Filter by job containment
    limitinteger
    Page size (1–30; default 30)default 30
    offsetinteger
    Pagination offset, non-negative
    project_idsarray
    Optional: limit to specific project UIDs
    reopenedboolean
    Filter by reopened state
    reported_by_user_uidstring
    Filter to issues reported by this user (max 12 chars)
    resolved_date_afterstring
    ISO 8601 timestamp; include issues resolved after this date
    resolved_date_beforestring
    ISO 8601 timestamp; include issues resolved before this date
    sort_byobject
    Sort specification
    string_filterobject
    Filter by string properties
  • smartlingmcp_smartling_find_project_issuesSearch issues within a single Smartling project, with pagination, sorting, and rich filters.Read-only

    SmartlingFindProjectIssues

    Search issues within a single Smartling project, with pagination, sorting, and rich filters. # Use cases - List all OPEN issues in a project, newest first - Find HIGH-severity TRANSLATION issues assigned to a specific user - Count + page through a project's issue backlog # Examples - All open issues: project_id="p1", issue_state_codes=["OPENED"] - By assignee: assignee_user_uid="user-1" - Sorted by creation date: sort_by={items:[{direction:"DESC", field_name:"createdDate"}]}, limit=30

    Inputs

    project_idstringrequired
    The Smartling project UID
    answeredboolean
    Filter by answered state
    assignee_user_uidstring
    Filter to issues assigned to this user (max 12 chars)
    created_date_afterstring
    ISO 8601 timestamp; include issues created after this date
    created_date_beforestring
    ISO 8601 timestamp; include issues created before this date
    has_commentsboolean
    Filter by whether the issue has comments
    issue_numbersarray
    Filter by specific issue numbers (max 1000)
    issue_severity_level_codesarray
    Filter by severity (LOW, MEDIUM, HIGH)
    issue_state_codesarray
    Filter by state (OPENED, RESOLVED)
    issue_sub_type_codesarray
    Filter by sub-type (CLARIFICATION, MISSPELLING, etc.)
    issue_type_codesarray
    Filter by type (SOURCE, TRANSLATION)
    issue_watching_state_codestring
    Filter by current user's watching stateone of WATCHINGNOT_WATCHING
    job_filterobject
    Filter by job containment
    limitinteger
    Page size (1–30; default 30)default 30
    offsetinteger
    Pagination offset, non-negative
    reopenedboolean
    Filter by reopened state
    reported_by_user_uidstring
    Filter to issues reported by this user (max 12 chars)
    resolved_date_afterstring
    ISO 8601 timestamp; include issues resolved after this date
    resolved_date_beforestring
    ISO 8601 timestamp; include issues resolved before this date
    sort_byobject
    Sort specification
    string_filterobject
    Filter by string properties
  • smartlingmcp_smartling_get_available_accounts_for_current_userGet available accounts for the current user.Read-only

    SmartlingGetAvailableAccountsForCurrentUser

    Get available accounts for the current user. # What are available accounts? Available accounts are Smartling accounts that the current authenticated user has access to. This tool is essential for determining which account UID to use with other Smartling MCP tools. # Use cases - User needs to determine which account UID to use before calling other Smartling tools - User wants to see all accounts they have access to - User needs to select the correct account context for their operations - Required before using other Smartling MCP tools that need accountUid parameter # Important Notes - This tool must be used before other Smartling MCP tools that require accountUid parameter - If the tool returns more than 1 account UID, the user will be asked to specify which one to use - The account UID from this response should be used in subsequent tool calls # Examples - Get available accounts: Use without any parameters - Account selection: If multiple accounts are returned, user must choose which account UID to use

    Inputs

    limitinteger
    Defaults to 100 if omitted.
  • smartlingmcp_smartling_get_glossaryRetrieve a specific glossary from the current Smartling account by its UID.Read-only

    SmartlingGetGlossary

    Retrieve a specific glossary from the current Smartling account by its UID. # What is glossary? A Glossary is a list of terms and expressions that represent your brand, and influence your translations. Companies create Glossaries in order to provide a shared understanding of terms to be used across all business units and languages. With Smartling, you will be able to utilize the Glossary to synchronize translations across all responsible parties working on your translations. # Use cases - User requests to get detailed information about a specific glossary - Resolving glossary(s) by project: - If you have only project name then you can chain next tools to get glossaries uids: smartling_list_projects -> smartling_get_project -> smartling_get_linguistic_package (glossaries uids might be inside linguistic package) -> smartling_list_glossaries or smartling_get_glossary. - If you have project uid then you can chain next tools to get glossaries uids: smartling_get_project -> smartling_get_linguistic_package (glossaries uids might be inside linguistic package) -> smartling_list_glossaries or smartling_get_glossary.

    Inputs

    account_idstringrequired
    Account UID. Call smartling_get_available_accounts_for_current_user first to retrieve it.
    glossary_uidstringrequired
    UID of the glossary to retrieve.