Skip to main content
Glama
DeepL
by DeepL

deepl-mcp-server

Version License: MIT

A Model Context Protocol (MCP) server that exposes DeepL text translation, document translation, rephrasing, and glossary and style rule lookups as MCP tools.

Usage

You need Node.js 18 or newer and a DeepL API key. Pick an API plan and create a key in your DeepL account.

The server communicates over stdio, so it is normally started by an MCP client rather than by hand. To try it directly:

DEEPL_API_KEY=your-api-key npx -y deepl-mcp-server

It exits immediately if DEEPL_API_KEY is not set.

To work on the server itself:

git clone https://github.com/DeepL/deepl-mcp-server.git
cd deepl-mcp-server
npm install

Related MCP server: AiryLark MCP Translation Server

Configuration

Register it as a stdio server with DEEPL_API_KEY in the server's environment. In Claude Code:

claude mcp add deepl --env DEEPL_API_KEY=your-api-key -- npx -y deepl-mcp-server

For clients configured through a JSON file:

{
  "mcpServers": {
    "deepl": {
      "command": "npx",
      "args": ["-y", "deepl-mcp-server"],
      "env": {
        "DEEPL_API_KEY": "your-api-key"
      }
    }
  }
}

Where that file lives and how each client expects local stdio servers to be declared:

To run a local checkout instead of the published package, use node as the command and the absolute path to src/index.mjs as the argument.

Tools

Tool

Description

Parameters

translate-text

Translates text into a target language.

text, targetLangCode, sourceLangCode?, formality?, glossaryId?, styleId?, context?, preserveFormatting?, splitSentences?, customInstructions?

translate-document

Translates a document file (PDF, DOCX, PPTX, XLSX, HTML, TXT, and more) and writes the result to disk.

inputFile, targetLangCode, outputFile?, sourceLangCode?, formality?, glossaryId?, styleId?, outputFormat?

rephrase-text

Rephrases text, optionally into another language.

text, targetLangCode?, style?, tone?

get-source-languages

Lists the language codes accepted as a translation source.

none

get-target-languages

Lists the language codes accepted as a translation target.

none

get-writing-styles

Lists the style values rephrase-text accepts.

none

get-writing-tones

Lists the tone values rephrase-text accepts.

none

list-glossaries

Lists every glossary in the account with its id, name, dictionaries, and creation time.

none

get-glossary-info

Returns the same metadata as list-glossaries for a single glossary.

glossaryId

get-glossary-dictionary-entries

Returns the term entries of one glossary dictionary, meaning one language pair in one direction.

glossaryId, sourceLangCode, targetLangCode

list-style-rules

Lists the style rules in the account with their id, name, language, and timestamps.

page?, pageSize?, detailed?

get-style-rule

Returns one style rule in full, including its configured rules and custom instructions.

styleId

get-custom-instruction

Returns a single custom instruction belonging to a style rule.

styleId, instructionId

Notes:

  • text takes either a single string or an array of strings. Each entry is translated or rephrased independently.

  • Language codes are ISO 639-1, optionally with a region (en-US). Omitting sourceLangCode triggers automatic detection. A target code whose language requires a region gets a default applied: en becomes en-US, pt becomes pt-BR, zh becomes zh-Hans.

  • Glossary dictionaries are keyed by non-regional codes, so get-glossary-dictionary-entries drops any region you pass.

  • Translating with a glossary requires an explicit sourceLangCode.

  • formality accepts less, more, default, prefer_less, and prefer_more. The prefer_* values fall back to the default when the target language has no formality support.

  • translate-document reads and writes files on the machine running the server. Without outputFile, the output path is derived from the input by appending the target language code, for example report_de.pdf. With outputFormat, the derived path uses that extension instead.

  • Style rules and custom instructions are read-only here. Create and edit them in your DeepL account.

License

MIT

Available Tools

13 tools
get-custom-instructionA

Get a single custom instruction belonging to a style rule. Use the get-style-rule tool to find out which custom instructions a style rule contains.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleIdYesThe unique identifier of the style rule
instructionIdYesThe unique identifier of the custom instruction

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It states the read-only action 'Get' but does not disclose error behavior, permission needs, or return format. However, the tool is a simple getter, and the description is not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. The first sentence states the purpose, the second gives usage guidance, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with two IDs, the description provides necessary context by referencing the parent style rule and how to discover instruction IDs. It doesn't describe return values, but no output schema exists; still, the description is fairly complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear descriptions for styleId and instructionId. The tool description adds no extra parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get a single custom instruction belonging to a style rule,' identifying the exact verb, resource, and scope. It distinguishes from siblings like get-style-rule and list-style-rules by specifying it fetches a single item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use the get-style-rule tool to find out which custom instructions a style rule contains,' providing a clear alternative for listing instructions. This tells the agent when to use this tool versus the sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-glossary-dictionary-entriesA

Retrieve all the entries from a given glossary dictionary. (A glossary consists one of one or more dictionaries, each of which contains entries for a specific language pair, in one direction. For example, one dictionary could contain entries for translations from German to English, and another dictionary could contain entries for translations from English to German.) To retrieve all entries for a glossary with multiple dictionaries, use the get-glossary-info or list-glossaries tool to find out what dictionaries it contains, then use this tool for each dictionary.

ParametersJSON Schema
NameRequiredDescriptionDefault
glossaryIdYesThe unique identifier of the glossary
sourceLangCodeYessource language code, in standard ISO-639-1 format without a regional variant (e.g. 'en', 'de', 'fr')
targetLangCodeYestarget language code, in standard ISO-639-1 format without a regional variant (e.g. 'en', 'de', 'fr')

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains that the tool retrieves entries for a single dictionary, not an entire glossary, and clarifies the relationship between glossaries and dictionaries. This is a meaningful behavioral trait beyond the bare function name. However, it does not mention potential side effects (which are likely none) or error conditions, but for a simple read operation, the transparency is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. It opens with the primary purpose, then provides the essential glossary/dictionary context, and ends with actionable usage instructions. Every sentence earns its place, and the information is front-loaded. Despite a minor typo ('consists one of one or more'), the structure is clear and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no annotations and no output schema, but the description covers the essential context: what the tool does, how it relates to the overall glossary concept, and how to use it correctly in multi-dictionary scenarios. It does not describe return format or pagination, but for a straightforward retrieval tool, the description is sufficiently complete for an agent to decide when and how to invoke it. A small gap is the lack of explicit mention of what happens if no entries exist, but this is not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for all three parameters (glossaryId, sourceLangCode, targetLangCode) with 100% coverage, including format examples. The tool description adds conceptual context about language pairs and directions, which aligns with the parameters but does not add significant new semantics beyond what the schema already offers. Baseline 3 is appropriate because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Retrieve all the entries from a given glossary dictionary.' It also distinguishes this from sibling tools by explaining that a glossary consists of dictionaries, and this tool operates on a single dictionary for a specific language pair. This is a specific verb+resource description that avoids confusion with get-glossary-info or list-glossaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides usage guidance: 'To retrieve all entries for a glossary with multiple dictionaries, use the get-glossary-info or list-glossaries tool to find out what dictionaries it contains, then use this tool for each dictionary.' This tells the agent when to use this tool, how to discover required parameters, and mentions alternative tools, offering clear when-to-use and when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-glossary-infoA

Given an id, get metadata about the glossary with that id - its name, available dictionaries, and creation time. This does not fetch any glossary entries. Use the get-glossary-dictionary-entries tool to fetch entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
glossaryIdYesThe unique identifier of the glossary

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It explicitly notes that the tool does not fetch glossary entries, which is a key behavioral constraint, and clarifies the exact metadata returned. While it does not discuss error handling or authentication, for a read-only metadata retrieval that is sufficient to meet most expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the core purpose and followed by a valuable scope clarification. Every word earns its place, with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter tool with no output schema or annotations, the description is complete enough: it states what it returns, what it does not return, and points to the correct sibling for entries. It could optionally mention error behavior or the relationship to 'list-glossaries', but the core context is well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the only parameter (glossaryId as a unique identifier string), so the description adds little beyond the schema. It uses 'Given an id' but doesn't elaborate on format, constraints, or behavior related to the parameter, which is acceptable given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('get metadata') and resource ('glossary'), and explicitly lists the returned metadata (name, available dictionaries, creation time). It also distinguishes itself from sibling tool 'get-glossary-dictionary-entries' by stating what it does not do, making its purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool (to get glossary metadata) and provides an alternative ('Use the get-glossary-dictionary-entries tool to fetch entries'), giving direct usage guidance and differentiating from a likely alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-source-languagesA

Get list of available source languages for translation

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must convey safety and behavior. 'Get' implies a read-only operation, which is useful but not elaborated. It does not mention whether authentication is required, what format the list takes (e.g., codes or names), or any potential side effects, though for a simple list retrieval, this may be sufficient. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the action and target. It contains no unnecessary words or repetition. For a tool with no parameters, this level of conciseness is ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters, no output schema, and simple functionality. The description is sufficient for an agent to know what the tool does, though it does not specify the exact return structure (e.g., language codes vs. names). Given the low complexity, this is nearly complete, but a single detail about the output format would make it fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is effectively complete (100% coverage). The description adds no parameter information, but none is needed. Per the rubric, with 0 parameters the baseline is 4, and the description does not detract from it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get list of available source languages for translation.' It uses a specific verb ('Get') and resource ('source languages'), and the phrase 'for translation' provides context. This distinguishes it from the sibling tool 'get-target-languages' without needing to read the sibling's description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool—whenever a list of source languages is needed—but does not explicitly mention alternatives or exclusion criteria. The presence of sibling tools like 'get-target-languages' suggests a related counterpart, but the description does not guide the agent to choose between them explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-style-ruleA

Given an id, get a single style rule with its full detail - configured rules and custom instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleIdYesThe unique identifier of the style rule

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions that the tool returns 'full detail' including 'configured rules and custom instructions', which is useful context, but it does not disclose potential errors, authorization requirements, or read-only semantics beyond the verb 'get'. This is reasonable for a read operation but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently communicates the tool's purpose and key detail. No unnecessary words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter get tool with no output schema, the description adequately indicates what the tool returns (full detail including configured rules and custom instructions). It could also mention error handling or differences from related tools, but given the low complexity, the description is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already defines 'styleId' as 'The unique identifier of the style rule' with 100% coverage. The description only says 'Given an id', which adds no additional semantic meaning. Since schema coverage is complete, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation ('get') and the resource ('single style rule'), and distinguishes it from sibling tools like list-style-rules by focusing on a single item and 'full detail'. This is a specific verb+resource combination that leaves no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Given an id' implies that this tool is used when you have a specific style rule ID and want its complete details, but no explicit comparison or exclusion of alternatives like list-style-rules or get-custom-instruction is provided. The usage context is implied rather than clearly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-target-languagesA

Get list of available target languages for translation

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It states that the tool returns a list, which is safe and read-only, but adds no detail about response format, possible empty results, or any special behavior. For a simple getter, this is minimally adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler. It immediately communicates the purpose and uses a consistent verb+resource structure, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters, no output schema), the description is sufficiently complete. It names the resource and purpose, and no return format or error handling is necessary for such a straightforward list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and the description does not need to explain any. With schema coverage at 100% (all parameters accounted for), the baseline of 4 applies; no additional parameter semantics are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get list') and the specific resource ('available target languages for translation'). It distinguishes from the sibling 'get-source-languages' by explicitly naming 'target languages', making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool — when you need target languages rather than source languages — given the sibling 'get-source-languages'. However, it does not explicitly state when to choose this over alternatives or mention any prerequisites or exclusions, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-writing-stylesA

Get list of writing styles the DeepL API can use while rephrasing text

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description relies on 'Get list' to convey a read-only operation. It doesn't mention return format, ordering, authentication, or any other behavioral traits, but for a simple list endpoint this is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the purpose and contains no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless list tool, the description adequately explains that it returns writing styles for rephrasing. However, given sibling tools like get-writing-tones, some disambiguation would be helpful, making it slightly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema covers all (none) parameters. With 0 params, the baseline is 4, and the description doesn't need to add parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get list' and identifies the resource as 'writing styles' used by DeepL when rephrasing text. It is clear and somewhat distinguishes from siblings by mentioning the rephrasing context, but it doesn't explicitly contrast with get-writing-tones or list-style-rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives, but the phrase 'while rephrasing text' implies it's for use before rephrasing. It lacks clear exclusions or references to sibling tools like get-writing-tones or list-style-rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-writing-tonesA

Get list of writing tones the DeepL API can use while rephrasing text

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. The verb 'Get' implies a read-only operation, but the description does not explicitly disclose return format, error behavior, or whether the list is static or dynamic. It adds minimal context beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant wording, earning maximum conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description provides adequate context by identifying the resource and its use case. It could mention the output format explicitly, but the high-level 'list' is sufficient for a simple lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, and the description correctly implies no parameters are needed. Since there are zero parameters, the baseline is 4, and the description does not need to add parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get list') and clearly identifies the resource ('writing tones') and the context ('while rephrasing text'), which distinguishes it from sibling tools like get-writing-styles that concern styles rather than tones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving tones used in rephrasing but does not explicitly state when to prefer it over get-writing-styles or other listing tools. It provides clear context but lacks exclusions or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-glossariesA

Get a list of all glossaries with metadata for each - name, dictionaries available, and creation time. This does not fetch any glossary entries. Use the get-glossary-dictionary-entries tool to fetch entries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states what the tool returns (metadata) and what it excludes (entries). While it does not mention read-only status or pagination, the behavior is sufficiently transparent for a simple list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no redundant information. It front-loads the primary purpose, then adds a crucial exclusion and referral to a sibling tool. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is complete. It explains what the return contains, clarifies the scope ('all glossaries'), sets expectations about entries, and provides a path to a related tool. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline of 4 applies. The description adds no parameter-specific details since there are none, but it does enrich the understanding of the output, which is relevant for parameterless list operations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool lists all glossaries with specific metadata (name, dictionaries, creation time), and clearly distinguishes itself from sibling tools by noting it does not fetch glossary entries. The verb 'Get a list of' is precise and the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when not to use this tool ('does not fetch any glossary entries') and explicitly recommends the alternative tool ('Use the get-glossary-dictionary-entries tool to fetch entries'). This gives the agent actionable decision-making information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-style-rulesA

Get a list of all style rules with metadata for each - id, name, language, and timestamps. Style rules can be applied when translating text or documents. Use the get-style-rule tool to fetch the configured rules and custom instructions of a single style rule.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 0-based
detailedNoSet to true to include the configured rules and custom instructions of each rule
pageSizeNoNumber of style rules per page (max 10)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the output metadata fields (id, name, language, timestamps) and the relationship to translation contexts. However, it does not disclose pagination behavior, default values, or the effect of the 'detailed' parameter on the response, which are relevant behavioral aspects for a list endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long and every sentence adds value: the first defines the purpose and return fields, the second gives context, and the third directs users to the appropriate single-rule tool. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description adequately explains what the tool returns (metadata fields). It also provides enough context for a simple list tool with optional pagination parameters that are well-documented in the input schema. A slightly higher score would require more detail on pagination defaults or the precise behavior of the 'detailed' flag, but the schema already covers those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters are already described in the JSON schema with 100% coverage, so the baseline is 3. The description adds no additional parameter-level semantics beyond what the schema provides, but it doesn't need to because the schema descriptions are sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists style rules with specific metadata fields (id, name, language, timestamps) and explicitly distinguishes it from get-style-rule, which fetches details for a single rule. This makes the purpose unambiguous and differentiated from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that style rules are used in translation and points users to get-style-rule for fetching a single rule's configured rules and instructions. It provides clear context for when to use this listing tool versus the alternative, though it doesn't mention all potential sibling tools or edge cases like pagination usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rephrase-textB

Rephrase text in the same language, or into a different language, using DeepL API

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to rephrase, as a single string or an array of strings handled independently
toneNoWriting tone for rephrasing
styleNoWriting style for rephrasing
targetLangCodeNotarget language code, in standard ISO-639-1 format (e.g. 'en-US', 'de', 'fr') to rephrase into a different language, or leave empty to keep the original language

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral disclosure burden. It only states the core function and external API, without covering return format, side effects, rate limits, or authentication requirements, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's purpose with no redundant words. It is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or annotations, the description should explain expected return values and edge cases (e.g., array handling is in schema, but not what the tool returns). The minimal description leaves the tool's behavior incomplete for an agent to know what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides descriptions for all parameters (100% coverage), so the description adds no additional meaning beyond what is already in the schema. Baseline 3 is appropriate because the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool rephrases text, optionally into a different language, and specifies the API. This distinguishes it from the sibling 'translate-text' tool by focusing on rephrasing rather than direct translation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when rephrasing is needed, but it does not explicitly mention alternatives like 'translate-text' or provide when-not-to-use guidance. The context is clear but not differentiated from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

translate-documentC

Translate a document file using DeepL API

ParametersJSON Schema
NameRequiredDescriptionDefault
styleIdNoStyle rule ID to apply. Use the list-style-rules tool to discover available style rules.
formalityNoControls whether translations should lean toward informal or formal language
inputFileYesPath to the input document file to translate
glossaryIdNoID of glossary to use for translation
outputFileNoPath where the translated document will be saved (if not provided, will be auto-generated)
outputFormatNoDesired output file format (e.g. 'pdf'), or leave empty to keep the input format. Only some conversions are supported.
sourceLangCodeNosource language code, in standard ISO-639-1 format (e.g. 'en', 'de', 'fr'), or leave empty for auto-detection
targetLangCodeYestarget language code, in standard ISO-639-1 format (e.g. 'en-US', 'de', 'fr')

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for disclosing behavior. It only mentions use of the DeepL API, but does not disclose output file handling, potential overwrites, external rate limits, or any side effects. This is inadequate for a tool that reads and writes files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler or repetition, making it concise and easy to scan. However, it is so brief that it borders on under-specification, missing key behavioral details that could be included without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters, no output schema, and no annotations, yet the description provides almost no contextual information beyond the basic translation action. It does not explain output file handling, format conversions, or integration with other tools like list-style-rules or list-glossaries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter having a description, so the baseline is 3. The tool description itself adds no additional meaning beyond what the schema provides; it does not clarify parameter formats or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'translate' and resource 'document file', clearly stating the tool's function. However, it does not distinguish this from sibling tools like translate-text or rephrase-text, leaving some ambiguity about which tool to use for document files specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. No context is given for when document translation is preferred over text translation, and no exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

translate-textA

Translate text to a target language using DeepL API. Review all available optional parameters and use those applicable to your scenario for best results. When the translation includes a glossary, you must specify the source language as well as the target language. If the user requests a glossary by name instead of by id, you can use the list-glossaries tool to get a name for each id.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to translate, as a single string or an array of strings handled independently
contextNoRecommended: describe what this text is about (e.g., 'Technical documentation for a software API'). Improves translation accuracy but is not itself translated.
styleIdNoStyle rule ID to apply. Use the list-style-rules tool to discover available style rules.
formalityNoControls formality: 'less' for informal, 'more' for formal/polite, 'prefer_less'/'prefer_more' to prefer but fall back to default
glossaryIdNoGlossary ID to ensure consistent terminology translation
sourceLangCodeNosource language code, in standard ISO-639-1 format (e.g. 'en', 'de', 'fr'), or leave empty for auto-detection
splitSentencesNoSentence splitting: '0' disables, '1' (default) splits on punctuation and newlines, 'nonewlines' preserves line breaks
targetLangCodeYestarget language code, in standard ISO-639-1 format (e.g. 'en-US', 'de', 'fr')
customInstructionsNoArray of custom instructions to guide translation style (max 10 instructions, 300 chars each)
preserveFormattingNoSet to true to preserve original formatting - recommended for markdown, code blocks, HTML, or any structured text

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the underlying API (DeepL), a constraint (glossary forces source language), and a tip (context improves accuracy). However, it does not mention authentication, rate limits, error behavior, or how array inputs are reflected in the response. Still, it adds meaningful usage constraints beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the primary purpose. Every sentence earns its place: the first states what it does, the second guides parameter use, and the third clarifies a non-obvious rule and points to a sibling tool. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, no output schema, and no annotations, the description covers key behavioral nuances (glossary constraint, optional parameters, glossary lookup path). It does not describe the return format, but the schema already explains array handling ('handled independently'), and translation output is intuitive. The guidance is sufficient for an agent to use it correctly in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the interaction between glossaryId and sourceLangCode (must specify source when glossary is used) and points to list-glossaries for resolving names. This goes beyond the schema's field-level descriptions, which don't mention the coupling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb+resource: 'Translate text to a target language using DeepL API.' This immediately distinguishes it from sibling tools like translate-document (which handles documents) and rephrase-text (which rewrites rather than translates).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete guidance: 'Review all available optional parameters and use those applicable to your scenario' and specifies that a glossary requires the source language. It names an alternative tool (list-glossaries) for resolving glossary names to IDs, which helps with tool selection. It does not explicitly contrast with translate-document, but the text focus is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv1.3.0
    • Addedget-custom-instruction
    • Addedget-glossary-dictionary-entries
    • Addedget-glossary-info
    • Changedget-source-languages2 fields changed
      • removedInput schema / $schema
        "http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        false
    • Addedget-style-rule
    • Changedget-target-languages2 fields changed
      • removedInput schema / $schema
        "http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        false
    • Addedget-writing-styles
    • Removedget-writing-styles-and-tones
    • Addedget-writing-tones
    • Addedlist-glossaries
    • Addedlist-style-rules
    • Changedrephrase-text5 fields changed
      • removedInput schema / additionalProperties
        false
      • addedInput schema / properties / targetLangCode
        {
          "description": "target language code, in standard ISO-639-1 format (e.g. 'en-US', 'de', 'fr') to rephrase into a different language, or leave empty to keep the original language",
          "type": "string"
        }
      • addedInput schema / properties / text / anyOf
        [
          {
            "type": "string"
          },
          {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        ]
      • changedInput schema / properties / text / description
        Before
        "Text to rephrase"
        After
        "Text to rephrase, as a single string or an array of strings handled independently"
      • removedInput schema / properties / text / type
        "string"
    • Addedtranslate-document
    • Changedtranslate-text15 fields changed
      • removedInput schema / additionalProperties
        false
      • addedInput schema / properties / context
        {
          "description": "Recommended: describe what this text is about (e.g., 'Technical documentation for a software API'). Improves translation accuracy but is not itself translated.",
          "type": "string"
        }
      • addedInput schema / properties / customInstructions
        {
          "description": "Array of custom instructions to guide translation style (max 10 instructions, 300 chars each)",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      • changedInput schema / properties / formality / description
        Before
        "Controls whether translations should lean toward informal or formal language"
        After
        "Controls formality: 'less' for informal, 'more' for formal/polite, 'prefer_less'/'prefer_more' to prefer but fall back to default"
      • addedInput schema / properties / glossaryId
        {
          "description": "Glossary ID to ensure consistent terminology translation",
          "type": "string"
        }
      • addedInput schema / properties / preserveFormatting
        {
          "description": "Set to true to preserve original formatting - recommended for markdown, code blocks, HTML, or any structured text",
          "type": "boolean"
        }
      • addedInput schema / properties / sourceLangCode
        {
          "description": "source language code, in standard ISO-639-1 format (e.g. 'en', 'de', 'fr'), or leave empty for auto-detection",
          "type": "string"
        }
      • addedInput schema / properties / splitSentences
        {
          "description": "Sentence splitting: '0' disables, '1' (default) splits on punctuation and newlines, 'nonewlines' preserves line breaks",
          "enum": [
            "0",
            "1",
            "nonewlines"
          ],
          "type": "string"
        }
      • addedInput schema / properties / styleId
        {
          "description": "Style rule ID to apply. Use the list-style-rules tool to discover available style rules.",
          "type": "string"
        }
      • removedInput schema / properties / targetLang
        {
          "description": "Target language code (e.g. 'en-US', 'de', 'fr')",
          "type": "string"
        }
      • addedInput schema / properties / targetLangCode
        {
          "description": "target language code, in standard ISO-639-1 format (e.g. 'en-US', 'de', 'fr')",
          "type": "string"
        }
      • addedInput schema / properties / text / anyOf
        [
          {
            "type": "string"
          },
          {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        ]
      • changedInput schema / properties / text / description
        Before
        "Text to translate"
        After
        "Text to translate, as a single string or an array of strings handled independently"
      • removedInput schema / properties / text / type
        "string"
      • changedInput schema / required
        Before
        [
          "text",
          "targetLang"
        ]
        After
        [
          "text",
          "targetLangCode"
        ]
  2. 5 tool updatesv1.0.0
    • First observedget-source-languages
    • First observedget-target-languages
    • First observedget-writing-styles-and-tones
    • First observedrephrase-text
    • First observedtranslate-text

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct resource or action: language listing, translation, rephrasing, glossary listing/detail/entries, and style rule listing/detail/custom instructions. The only pairs that could be confused (writing styles vs tones, style rule vs custom instruction) are distinguished by their descriptions, so ambiguity is minimal.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using lowercase with hyphens (get-, list-, translate-, rephrase-). There are no mixed conventions or vague verbs like 'process'.

Tool Count5/5

13 tools is within the ideal 3-15 range. The count reflects the breadth of DeepL features (translation, rephrasing, glossaries, style rules) without being overwhelming.

Completeness3/5

Core translation and rephrasing workflows are covered (language lists, translate text/document, rephrase, styles/tones). However, the server only offers read operations for glossaries and style rules (list/get), with no create/update/delete, leaving a notable gap for managing these resources.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A server implementing the Model Context Protocol that enables AI assistants like Claude to interact with Google's Gemini API for text generation, text analysis, and chat conversations.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A ModelContextProtocol server providing high-quality translation services with a three-stage translation workflow (analysis, segmented translation, full-text review) that supports multiple languages and integrates with Claude and OpenAI-compatible models.
    26
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An AI-driven text translation service supporting 20+ languages, based on the Model Context Protocol (MCP) for integration with Claude Desktop and other MCP-compatible applications.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DeepL/deepl-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server