Tolgee

Your app's translations in Tolgee: search keys, create translations, trigger machine translation

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
97%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'store_big_meta' description lacks action verbin store_big_meta
  • LOWTool 'get_project_language_statistics' name length outside 3-30 rangein get_project_language_statistics

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,046Tokens (tool definitions)
~1.3 KBTypical response size
Significant attention impact (2.38% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "tolgee": {
      "url": "https://app.tolgee.io/mcp/developer"
    }
  }
}

Remote endpoints

https://app.tolgee.io/mcp/developerstreamable-http

What it can do

Tool inventory

Tools (22)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_batch_job_status(projectId, jobId)

Get the status of a batch job (e.g. machine translation) by its ID. Use to poll for completion.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "jobId": {
      "type": "number",
      "description": "ID of the batch job"
    }
  },
  "required": [
    "jobId"
  ]
}
🟢machine_translate(projectId, keyNames, targetLanguageTags, namespace, branch)

Start machine translation for specified keys into target languages. Returns a batch job ID — use get_batch_job_status to poll for completion.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keyNames": {
      "type": "array",
      "description": "Names of keys to translate",
      "items": {
        "type": "string"
      }
    },
    "targetLanguageTags": {
      "type": "array",
      "description": "Language tags to translate into (e.g. ['de', 'fr'])",
      "items": {
        "type": "string"
      }
    },
    "namespace": {
      "type": "string",
      "description": "Optional: namespace of the keys"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    }
  },
  "required": [
    "keyNames",
    "targetLanguageTags"
  ]
}
⚪store_big_meta(projectId, relatedKeysInOrder, branch)

Store key relationships so Tolgee can use translations of related keys as context during machine translation, producing more consistent results. Keys that appear near each other in source code (e.g. on the same page or component) should be stored as related.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "relatedKeysInOrder": {
      "type": "array",
      "description": "List of related keys in the order they appear together",
      "items": {
        "type": "object",
        "properties": {
          "keyName": {
            "type": "string",
            "description": "Key name"
          },
          "namespace": {
            "type": "string",
            "description": "Optional: key namespace"
          }
        },
        "required": [
          "keyName"
        ]
      }
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    }
  },
  "required": [
    "relatedKeysInOrder"
  ]
}
🟢list_branches(projectId, search, page)

List branches in a Tolgee project. Returns up to 100 results per page. Only available for projects with branching enabled (enterprise feature).

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "search": {
      "type": "string",
      "description": "Optional: search filter for branch names"
    },
    "page": {
      "type": "number",
      "description": "Optional: page number (0-based, default 0)"
    }
  },
  "required": []
}
🟡create_branch(projectId, name, originBranchId)

Create a new branch in a Tolgee project by forking from an existing branch. Only available for projects with branching enabled (enterprise feature).

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "name": {
      "type": "string",
      "description": "Name of the new branch"
    },
    "originBranchId": {
      "type": "number",
      "description": "ID of the branch to fork from"
    }
  },
  "required": [
    "name",
    "originBranchId"
  ]
}
🔴delete_branch(projectId, branchName)

Delete a branch from a Tolgee project. IMPORTANT: This is a destructive operation. The AI assistant should always confirm with the user before calling this tool.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "branchName": {
      "type": "string",
      "description": "Name of the branch to delete"
    }
  },
  "required": [
    "branchName"
  ]
}
🟢list_keys(projectId, branch, page)

List translation keys in a Tolgee project. Returns up to 100 keys per page. Use search_keys to find specific keys by name or translation text.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    },
    "page": {
      "type": "number",
      "description": "Optional: page number (0-based, default 0)"
    }
  },
  "required": []
}
🟢search_keys(projectId, query, languageTag, branch, page)

Search for translation keys in a Tolgee project by name or translation text. Returns up to 50 matching keys per page. Note: namespace and tags filtering is not yet supported — filter results client-side if needed.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "query": {
      "type": "string",
      "description": "Search query (matches key name or translation text)"
    },
    "languageTag": {
      "type": "string",
      "description": "Optional: language tag to search translations in"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    },
    "page": {
      "type": "number",
      "description": "Optional: page number (0-based, default 0)"
    }
  },
  "required": [
    "query"
  ]
}
🟡create_keys(projectId, keys, namespace, branch)

Create translation keys in a Tolgee project with optional translations and tags. Keys that already exist are silently skipped — their translations and tags are not updated. Use update_key and set_translation to modify existing keys.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keys": {
      "type": "array",
      "description": "List of keys to create",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Key name (e.g. 'home.welcome_message')"
          },
          "namespace": {
            "type": "string",
            "description": "Optional: namespace for the key (overrides top-level namespace)"
          },
          "translations": {
            "type": "object",
            "description": "Optional: translations as {languageTag: text} map",
            "additionalProperties": {
              "type": "string"
            }
          },
          "tags": {
            "type": "array",
            "description": "Optional: tags to assign to the key",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string",
            "description": "Optional: description / developer context for the key"
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "namespace": {
      "type": "string",
      "description": "Optional: default namespace for all keys (individual keys can override)"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    }
  },
  "required": [
    "keys"
  ]
}
🟢get_key(projectId, keyName, namespace, branch)

Get a translation key's metadata (name, namespace, description) by its name. To get the key's translations, use get_translations.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keyName": {
      "type": "string",
      "description": "The translation key name"
    },
    "namespace": {
      "type": "string",
      "description": "Optional: namespace of the key"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    }
  },
  "required": [
    "keyName"
  ]
}
🟡update_key(projectId, keyName, keyNamespace, keyBranch, newName, ...)

Update an existing translation key's name, namespace, or description

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keyName": {
      "type": "string",
      "description": "Current key name (used to find the key)"
    },
    "keyNamespace": {
      "type": "string",
      "description": "Optional: current namespace of the key (used to find the key)"
    },
    "keyBranch": {
      "type": "string",
      "description": "Optional: branch name (used to find the key, for branching projects)"
    },
    "newName": {
      "type": "string",
      "description": "New key name (provide the current name if unchanged)"
    },
    "newNamespace": {
      "type": "string",
      "description": "Optional: new namespace for the key"
    },
    "newDescription": {
      "type": "string",
      "description": "Optional: new description for the key"
    }
  },
  "required": [
    "keyName",
    "newName"
  ]
}
🔴delete_keys(projectId, keyNames, namespace, branch)

Delete translation keys from a Tolgee project. IMPORTANT: This is a destructive operation. The AI assistant should always confirm with the user before calling this tool.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keyNames": {
      "type": "array",
      "description": "Names of the keys to delete",
      "items": {
        "type": "string"
      }
    },
    "namespace": {
      "type": "string",
      "description": "Optional: namespace of the keys"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    }
  },
  "required": [
    "keyNames"
  ]
}
🟢list_languages(projectId, page)

List all languages configured for a Tolgee project. Returns up to 1000 results per page.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "page": {
      "type": "number",
      "description": "Optional: page number (0-based, default 0)"
    }
  },
  "required": []
}
🟡create_language(projectId, name, tag, originalName, flagEmoji)

Add a new language to a Tolgee project

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "name": {
      "type": "string",
      "description": "Language display name (e.g. 'German')"
    },
    "tag": {
      "type": "string",
      "description": "Language tag / IETF BCP 47 code (e.g. 'de')"
    },
    "originalName": {
      "type": "string",
      "description": "Native name of the language (e.g. 'Deutsch')"
    },
    "flagEmoji": {
      "type": "string",
      "description": "Flag emoji for this language"
    }
  },
  "required": [
    "name",
    "tag"
  ]
}
🟢list_namespaces(projectId)

List all namespaces in a Tolgee project. Namespaces organize translation keys into logical groups (e.g. by feature, page, or module).

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    }
  },
  "required": []
}
🟢list_projects(search, page)

List Tolgee projects accessible to the current user. Returns up to 100 results per page.

Input Schema

{
  "type": "object",
  "properties": {
    "search": {
      "type": "string",
      "description": "Optional search query to filter projects by name"
    },
    "page": {
      "type": "number",
      "description": "Optional: page number (0-based, default 0)"
    }
  },
  "required": []
}
🟡create_project(name, organizationId, languages, baseLanguageTag)

Create a new Tolgee project with initial languages

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Project name"
    },
    "organizationId": {
      "type": "number",
      "description": "ID of the organization to create the project in"
    },
    "languages": {
      "type": "array",
      "description": "Initial languages for the project",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Language name (e.g. 'English')"
          },
          "tag": {
            "type": "string",
            "description": "Language tag (e.g. 'en')"
          },
          "originalName": {
            "type": "string",
            "description": "Original name of the language"
          },
          "flagEmoji": {
            "type": "string",
            "description": "Flag emoji for the language"
          }
        },
        "required": [
          "name",
          "tag"
        ]
      }
    },
    "baseLanguageTag": {
      "type": "string",
      "description": "Tag of the base language (default: first language)"
    }
  },
  "required": [
    "name",
    "organizationId",
    "languages"
  ]
}
🟢get_project_language_statistics(projectId)

Get translation status and progress for each language in a project. Returns per-language statistics including translated, reviewed, and untranslated percentages.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    }
  },
  "required": []
}
🟢list_tags(projectId, search, page)

List all tags used in a Tolgee project. Returns up to 1000 results per page.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "search": {
      "type": "string",
      "description": "Optional: search filter for tag names"
    },
    "page": {
      "type": "number",
      "description": "Optional: page number (0-based, default 0)"
    }
  },
  "required": []
}
🟡tag_keys(projectId, keyNames, tags, namespace, branch)

Add tags to translation keys. Creates tags if they don't exist.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keyNames": {
      "type": "array",
      "description": "Names of the keys to tag",
      "items": {
        "type": "string"
      }
    },
    "tags": {
      "type": "array",
      "description": "Names of the tags to add",
      "items": {
        "type": "string"
      }
    },
    "namespace": {
      "type": "string",
      "description": "Optional: namespace of the keys"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    }
  },
  "required": [
    "keyNames",
    "tags"
  ]
}
🟢get_translations(projectId, keyName, namespace, branch, languages)

Get translations for a specific key in a Tolgee project. Returns translations in all project languages, or only the specified languages if provided.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keyName": {
      "type": "string",
      "description": "The translation key name"
    },
    "namespace": {
      "type": "string",
      "description": "Optional: namespace of the key"
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    },
    "languages": {
      "type": "array",
      "description": "Optional: language tags to filter by (e.g. ['en', 'de']). If omitted, returns all languages.",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "keyName"
  ]
}
🟡set_translation(projectId, keyName, namespace, translations, branch)

Set or update translations for a key in one or more languages. The key must already exist — use create_keys to create it first.

Input Schema

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "number",
      "description": "ID of the project (required for PAT, auto-resolved for PAK)"
    },
    "keyName": {
      "type": "string",
      "description": "The translation key name"
    },
    "namespace": {
      "type": "string",
      "description": "Optional: namespace of the key"
    },
    "translations": {
      "type": "object",
      "description": "Translations as {languageTag: text} map (e.g. {\"en\": \"Hello\", \"de\": \"Hallo\"})",
      "additionalProperties": {
        "type": "string"
      }
    },
    "branch": {
      "type": "string",
      "description": "Optional: branch name"
    }
  },
  "required": [
    "keyName",
    "translations"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded22 tools
verifiedversion not recorded22 tools