Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the DeepL MCP server

Vendor MCP
Open markdown

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

Tools
32
What they doRead · write · destructive
12 · 15 · 512 read15 write5 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 DeepL MCP connection

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

    Scalekit credentials are available for DeepL 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 = 'deeplmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize DeepL 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: 'deeplmcp_get_source_languages',
    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
  • deeplmcp_get_custom_instructionGet one custom instruction of a style rule set: its label, prompt, and source language.Read-only

    Get Custom Instruction

    Get one custom instruction of a style rule set: its label, prompt, and source language. get-style-rule-set returns all instructions of a set at once. DeepL Pro only.

    Inputs

    instructionIdstringrequired
    Custom instruction id from get-style-rule-set.
    styleIdstringrequired
    Style rule set id from list-style-rule-sets.
  • deeplmcp_get_document_statusCheck the translation status of a document session.Read-only

    Get Document Status

    Check the translation status of a document session. Returns one of: 'awaiting_upload' (file not received yet), 'queued', 'translating', 'done', or 'error'. The additive 'uploadStatus' is 'awaiting', 'uploading', or 'complete' when known. Once the status is 'done', call download-document.

    Inputs

    sessionIdstringrequired
    The session id returned by upload-document.
  • deeplmcp_get_glossary_dictionary_entriesGet the terms of a glossary for one language pair, as TSV: one entry per line, source term and target term separated by a tab.Read-only

    Get Glossary Dictionary Entries

    Get the terms of a glossary for one language pair, as TSV: one entry per line, source term and target term separated by a tab. Use this to show or check what a glossary contains. list-glossaries and get-glossary-info show which language pairs it has. DeepL Pro only.

    Inputs

    glossaryIdstringrequired
    Glossary id from list-glossaries.
    sourceLangstringrequired
    Source language of the language pair, e.g. 'EN'.
    targetLangstringrequired
    Target language of the language pair, e.g. 'DE'.
  • deeplmcp_get_glossary_infoGet the name, language pairs (dictionaries), and creation time of one glossary.Read-only

    Get Glossary Info

    Get the name, language pairs (dictionaries), and creation time of one glossary. Returns no terms; use get-glossary-dictionary-entries for those. DeepL Pro only.

    Inputs

    glossaryIdstringrequired
    Glossary id from list-glossaries.
  • deeplmcp_get_source_languagesGet the source language codes supported by DeepL for translation, e.g.Read-only

    Get Source Languages

    Get the source language codes supported by DeepL for translation, e.g. 'EN' or 'DE'. Use one of these for the sourceLang parameter of translate-text.

    Inputs

    This tool takes no inputs.

  • deeplmcp_get_style_rule_setGet one style rule set with full detail: its enabled predefined style rules, its custom instructions, and the version that update-style-rule-set needs.Read-only

    Get Style Rule Set

    Get one style rule set with full detail: its enabled predefined style rules, its custom instructions, and the version that update-style-rule-set needs. A translation that passes its id as styleId applies both; pass only additional instructions in customInstructions. DeepL Pro only.

    Inputs

    styleIdstringrequired
    Style rule set id from list-style-rule-sets.
  • deeplmcp_get_target_languagesGet the target language codes supported by DeepL for translation, e.g.Read-only

    Get Target Languages

    Get the target language codes supported by DeepL for translation, e.g. 'EN-US' or 'DE'. Use one of these for the targetLang parameter of translate-text.

    Inputs

    This tool takes no inputs.

  • deeplmcp_list_assetsList the assets (files and folders) in a DeepL Link provider.Read-only

    List Assets

    List the assets (files and folders) in a DeepL Link provider. The provider must have status Connected in list-providers; if it is not connected, ask the user to connect it at https://www.deepl.com/your-account/my-apps. Entries with isFolder=true are folders — pass their id as folderId to list their contents. To find a file in a known folder, list the folders: start without folderId and filter, then follow the folder ids. A search with filter alone uses the provider's search index and can miss a file added in the last minutes. With folderId, filter matches only that folder's entries and has no such delay. unsupportedReason, when set, explains why an asset cannot be translated. Pass the id of a file as source to upload-document-from-link.

    Inputs

    providerIdstringrequired
    Provider id from list-providers.
    filterstring
    Text that the asset name (with its extension) must contain. Without folderId, this searches the whole provider and must meet the provider's minimum length.
    folderIdstring
    Id of the folder to list, from an earlier list-assets result. Omit for the root folder of the provider.