verbaly
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| verbaly_initA | Create the config file and the locale catalogs, and detect the bundler or meta-framework so the answer names the package to add and the line to wire (what |
| verbaly_doctorA | Diagnose a Verbaly project end to end (what |
| verbaly_wrapA | Find hardcoded user-visible text in JSX/TSX files and wrap it in a t tagged template so the compiler can extract it (what |
| verbaly_extractA | Scan the source files, add new messages to the locale catalogs and refresh the generated types (what |
| verbaly_statusA | Translation coverage of the Verbaly project: total messages, translated count per locale, machine translations awaiting review (drafts) and translations written for an older source text (outdated). Read-only. |
| verbaly_missingA | List missing translations, unknown keys, keys written with two texts (collisions: every place shows the first text) and translations that exist but cannot render what the source renders (a dropped {param}, a lost rich tag, a flattened plural block), the same gate |
| verbaly_translateA | Fill missing translations with the configured provider (default: Claude, needs @anthropic-ai/sdk and ANTHROPIC_API_KEY). New translations are saved as drafts awaiting human review ( |
| verbaly_write_draftsA | Save translations you wrote yourself, so neither a catalog nor the state file is ever edited by hand. Each one is checked the way |
| verbaly_draftsA | Every machine translation still waiting for a human, each with the source text and what the provider wrote, so a person can read both and decide. Read-only. Approving is deliberately not a tool here and never will be: a machine translation is unreviewed by definition, so accepting one is |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| verbaly-config | The resolved Verbaly config: source locale, every locale, the catalog directory and where the language lives in the url. Read this before reasoning about anything else in the project. |
| en catalog | Every message of one locale, keyed the way the runtime sees them: a nested catalog arrives flattened, a text the code owns reads as the code has it, and an empty value means untranslated. This is the only way to read what a message actually says. |
TDQS
Scored across 9 tools
Each tool maps to a distinct CLI operation (init, doctor, wrap, extract, status, missing, translate, write_drafts, drafts) with clear boundaries, and the descriptions explicitly orient the agent (doctor first, init when doctor says no config). The one soft spot is drafts: pending-review listings are surfaced in verbaly_status, optionally in verbaly_missing, and again in verbaly_drafts, so an agent may pick the wrong one for that question.
Every tool uses the same verbaly_ snake_case prefix with a single short token, which is highly predictable and mirrors the CLI commands. Minor deviation: the tokens mix verbs (init, wrap, extract, translate) with nouns/adjectives (status, missing, doctor, drafts), so the suffix does not consistently signal an action.
Nine tools is well within the ideal 3-15 range and each corresponds to a real stage of the localization workflow with no filler. Nothing appears redundant by count alone.
The surface covers onboarding (init, wrap), maintenance (extract, translate, write_drafts), and inspection (doctor, status, missing, drafts), with read/write variants and dryRun/overwrite flags. Gaps are minor: approving drafts and locale management are deliberately excluded (human-only), and pruning exists only as an extract flag rather than a standalone operation.