Skip to main content
Glama
fabkho
by fabkho

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
discoverA

Discover the complete i18n setup. Returns project config (locales, default locale, layers, fallback chain, glossary, translation style) plus per-layer directory listings with file counts and top-level key namespaces, and the active translation mode ("provider" when the server has an env-configured LLM provider, "agent" otherwise). Call this first to understand the project before reading or writing translations. layerGraph answers where a new key belongs: a key used by more than one app belongs in a layer those apps share, and layerGraph.shared names those layers.

list_namespacesA

List the translation key tree grouped by namespace prefix. Returns a hierarchical view of all keys with counts per namespace node. Use this to explore available keys without guessing path prefixes.

find_empty_translationsA

Find keys whose value is an empty string. These exist in the locale file, so they are not reported as missing, and they render as nothing in the UI. Use this after a scaffold or an interrupted translation run to find keys that were created but never filled.

get_translationsB

Get translation values for given key paths from a specific locale and layer. Use "*" as locale to read from all locales.

write_translationsA

Write translation key-value pairs to a layer. Mode "upsert" adds new keys and updates existing ones (default, most common). Mode "add" only creates new keys, skipping existing ones. Mode "update" only modifies existing keys, skipping missing ones. Keys are inserted in alphabetical order. Use dryRun to preview without writing.

get_missing_translationsB

Find translation keys that exist in the reference locale but are missing in other locales. Scans a specific layer or all layers.

get_translation_statusA

Translation coverage in one call: per-locale and per-layer counts of total, translated, missing and empty keys, plus an overall completion percentage. Use this instead of calling get_missing_translations per layer and counting keys yourself. Empty-string values count as untranslated. Locales listed in protectedLocales are reported but excluded from the overall figure, since they are maintained by hand.

search_translationsA

Search translation files by key path or value. Simple case-insensitive substring match — not fuzzy or regex. Useful for finding existing translations before adding duplicates.

remove_translationsA

Remove one or more translation keys from ALL locale files in the specified layer. Use dryRun to preview changes before applying them.

move_translation_keyA

Move a key from one layer to another, carrying every locale that defines it — promoting an app-layer key to a shared layer once a second app needs it, or demoting a shared key that turned out to be app-specific. Call discover first: layerGraph.shared names the layers more than one app consumes. Writes nothing at all if the target layer already holds the key with a different value in any locale; if it holds the same value, that locale is deduplicated instead. Use dryRun to preview the plan.

rename_translation_keyA

Rename/move a translation key across ALL locale files in a layer. Preserves the value in every locale. Use dryRun to preview changes before applying them.

translate_missingA

Find keys missing in target locales and translate them. Two modes: in provider mode (server env-configured with I18N_PROVIDER, I18N_MODEL, and an API key) the server calls the LLM provider directly and writes the results; in agent mode (no provider configured) it returns per-locale fallbackContexts — translate those inline and persist via write_translations. Check the discover output for the active mode. Uses project config (glossary, translation prompt, locale notes, examples) if available. Translates all locales concurrently by default — pass all targetLocales at once.

translate_keyA

Add/update one source translation key and translate it into target locales. Unlike translate_missing, this can overwrite existing stale target translations. Same two modes as translate_missing: provider mode (server env-configured) translates directly; agent mode returns a fallbackContext — translate it inline and persist via write_translations.

find_orphan_keysA

Find translation keys that exist in locale JSON files but are not referenced in any Vue/TS source code. Scans a specific layer or all layers. Reports keys that can potentially be removed. Also detects dynamic key patterns and uncertain matches. Scope-aware: each layer is checked only against code of the apps that consume it (summary.scanScope shows each layer's effective scope); keys referenced only from non-consuming apps are reported separately as misplacedUsages, not orphans.

find_undefined_keysA

The inverse of find_orphan_keys: find keys referenced in source code but defined in NO locale file of the using app's consumed layers — the direction that ships raw keys to production. Scope-aware: each scan unit (app) is checked against the layers it consumes (summary.searchedLayersByApp); a key defined only in a layer the using app does not consume is still undefined for that app. Known limitation: extraction is line-based and static — dynamically built keys (template literals, concatenation) cannot be verified and are reported as uncertainKeys, never as hard findings.

find_duplicate_keysA

Find translation keys defined in BOTH a shared layer and an app layer that consumes it (e.g. the same key in a monorepo root layer and in app-shop). At runtime the app layer's value shadows the shared one — collisions with divergent values are the dangerous case, because the shared value silently never shows. Compares one reference locale and reports each collision with both values and a divergent flag. Fix by deleting one side, never by moving.

remove_orphan_keysA

Find orphan keys (not referenced in source code) and remove them from all locale files. Always does a dry run first. Scope-aware like find_orphan_keys: each layer is checked against its consuming apps (summary.scanScope), and keys referenced only from non-consuming apps are reported as misplacedUsages and never removed.

scaffold_localeA

Create empty locale files for new languages. Copies the key structure from the default locale with all values set to empty strings. Supports both JSON (Nuxt) and PHP (Laravel) formats. Does NOT modify framework config — the agent must add the locale to the framework config before calling this tool.

Prompts

Interactive templates invoked by user choice

NameDescription
add-feature-translationsGuided workflow for adding i18n translations when building a new feature.
add-languageAdd a new language to the project: update framework config, scaffold empty locale files, then translate all keys.

Resources

Contextual data attached and managed by the client

NameDescription
nuxt/deDeutsch translations for nuxt layer
nuxt/enEnglish translations for nuxt layer
nuxt/frFrançais translations for nuxt layer
nuxt/esEspañol translations for nuxt layer

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/fabkho/the-i18n-kit'

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