Localazy MCP by usefulapi
Server Details
Read Localazy projects, files, keys and glossary; submit translations, import keys, AI suggestions.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 98.9% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 17 tools
Most tools target distinct resources and actions, making selection straightforward. The translation-related tools (MT suggestions, TM suggestions, AI translation, submit translation) could cause slight hesitation, but their descriptions clearly differentiate their purposes and costs.
All tool names follow a consistent localazy_verb_noun snake_case pattern (e.g., localazy_create_glossary_term, localazy_get_file_keys). Verbs like create, get, list, import, submit, translate, and update are used predictably across the set.
With 17 tools, the set is slightly above the ideal range of 15 but remains well-scoped for a comprehensive translation management API. Each tool maps to a distinct endpoint and appears to earn its place without excessive redundancy.
Core operations for reading and writing translations, keys, and glossary terms are present, but notable gaps exist: no delete operations for glossary terms, keys, or translations, and no review/approval workflow despite translator submissions being stored as candidates. File management (create/delete) is also absent.
Available Tools
17 toolslocalazy_create_glossary_termCreate glossary termADestructiveInspect
WRITE: add one term to a project's glossary (max 1,000 terms per project). Needs the Reviewer role. The term guides translators and Localazy AI from now on. POST /projects/{projectId}/glossary.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | The term in each language: [{lang, term}]. Include the project's source language. | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). | |
| description | No | Explanation for translators. | |
| exact_match | No | Match the exact form only (no inflected forms). | |
| case_sensitive | No | Match case exactly. | |
| translate_term | No | true = the term is translated; false = keep it as is in every language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=true), so the description's added context is valuable: it discloses the Reviewer role requirement, the 1,000-term project cap, the underlying endpoint, and that the term takes effect for translators and Localazy AI going forward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short sentences with the write operation front-loaded. Every sentence carries useful information (action, quota, role, effect, endpoint) with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with full schema coverage and existing annotations, the description supplies the key prerequisites and limits an agent needs. It does not cover duplicate-term behavior or what a successful response contains, which is a minor gap given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the schema, making 3 the baseline. The description adds no parameter-level detail beyond the schema and its phrase 'one term' does not convey the per-language array structure documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'add one term to a project's glossary', and scopes it with a per-project limit. It is clear on its own, but it never explicitly distinguishes itself from the sibling `localazy_update_glossary_term` or states what makes creation different from updating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the 'WRITE: add one term' framing and the prerequisite that it needs the Reviewer role, but there is no explicit when-to-use guidance versus alternatives, no when-not-to-use, and no routing to `localazy_update_glossary_term` or `localazy_list_glossary`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_get_file_keysGet file keys and translationsARead-onlyInspect
Read the strings of one file in one language: key id, key path, current translation (a string, an array or a plural object keyed @one/@other). Pages of up to 1000 keys; pass next for the following page. Set extra_info for hidden/limit/deprecated/comment, no_content to list keys without text. Counts against the project's daily fetch cap. GET /projects/{projectId}/files/{fileId}/keys/{lang}.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | Yes | Language code, e.g. en, cs, pt_BR, zh#Hans (as listed with localazy_list_projects languages=true). | |
| next | No | Paging key: pass the previous reply's `next`. Absent `next` = last page. | |
| limit | No | Items per page, 1-1000 (default 100 for keys; Localazy's own default for links is 1000). | |
| file_id | Yes | File id (from localazy_list_files). | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). | |
| deprecated | No | Include deprecated keys. | |
| extra_info | No | Add hidden, limit, deprecated and comment to each key. | |
| no_content | No | Omit the translation text (keys only). | |
| unapproved | No | Include translations that are not yet approved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive/openWorld annotations, it discloses a quota constraint ('Counts against the project's daily fetch cap'), pagination mechanics ('Pages of up to 1000 keys'), and the return shape including plural objects. These are behavioral facts the annotations do not carry, so it adds genuine value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then layers paging, flags, quota, and the endpoint. Every clause carries information, though the trailing raw endpoint path is slightly redundant with the purpose statement. Dense but well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by describing return values (key id, key path, translation as string/array/plural object) and covers pagination and quota for a 9-parameter tool. It omits error behavior, but for a read-only listing call it is essentially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter and the baseline is 3. The description adds meaning by explaining how `next` chains pages, the 1000-key page ceiling, and the semantics of extra_info/no_content in relation to the returned data, lifting it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'Read the strings of one file in one language', and enumerates the returned fields (key id, key path, translation shape). This clearly separates it from siblings like localazy_list_files or localazy_list_key_links, which cover different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context for the paging and flag parameters ('pass `next` for the following page', 'Set extra_info for hidden/limit/deprecated/comment', 'no_content to list keys without text'). It does not name a competing sibling or state when NOT to use this tool, so it falls short of explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_get_glossary_termGet glossary termBRead-onlyInspect
One glossary term by id. GET /projects/{projectId}/glossary/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Localazy project id or slug (from localazy_list_projects). | |
| term_id | Yes | Glossary term id (from localazy_list_glossary). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only the underlying REST endpoint, which is minor context and reveals nothing about errors, auth scope, or return shape beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, purpose front-loaded before the endpoint. The REST path is somewhat redundant for an agent-facing tool but runs to only a few words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple single-resource read with full schema coverage and annotations covering safety; no output schema exists so return-value explanation is not required. Adequate, though it could note what happens if the term id is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented with their source tools. The description adds no additional meaning beyond the schema, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieves a single glossary term by id. The 'one ... by id' phrasing implicitly distinguishes it from the sibling localazy_list_glossary, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus localazy_list_glossary or localazy_get_glossary_term's related update/create tools. The precondition that ids come from list tools exists only in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_get_import_progressGet import progressARead-onlyInspect
Progress of an import batch started with localazy_import_keys (pass its import_batch). The endpoint is used by Localazy's own API client but is not in the public docs yet, so the reply is returned as Localazy sends it. GET /projects/{projectId}/import/{importBatch}.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Localazy project id or slug (from localazy_list_projects). | |
| import_batch | Yes | The `import_batch` returned by localazy_import_keys. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: the endpoint is undocumented and the reply is returned verbatim as Localazy sends it, warning the agent not to expect a normalized shape. It does not mention polling cadence or batch lifecycle states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: what it returns, the required link to localazy_import_keys, then the undocumented-endpoint caveat and raw path. Front-loaded and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description importantly discloses that the response is an unprocessed passthrough from an undocumented endpoint, which is exactly the caveat an agent needs to avoid over-parsing results. Minor gaps remain around progress states or whether polling is expected, but the essential context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters already carry descriptions in the schema ('project id or slug from localazy_list_projects', 'the `import_batch` returned by localazy_import_keys'). The description restates the import_batch provenance rather than adding new syntax, format, or constraint detail, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Progress of an import batch') and explicitly ties it to the sibling that creates the batch, localazy_import_keys, plus the underlying endpoint GET /projects/{projectId}/import/{importBatch}. An agent can distinguish it from list/import siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly specifies the precondition: this only makes sense for a batch started with localazy_import_keys, and instructs the caller to pass that call's `import_batch`. It stops short of saying what to do when no batch exists or how to poll/abandon, so it is not a full when/when-not specification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_get_mt_suggestionsGet machine translation suggestionsARead-onlyInspect
Machine Translation suggestions (one per engine) for one source key into a target language. Free: it does not consume Localazy credits (Localazy AI does; see localazy_translate_with_ai). The first request for a key can be slower. Nothing is saved. GET /projects/{projectId}/keys/{keyId}/suggestions/mt.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target language code. | |
| from | No | Source language code (default: the project's source language). | |
| key_id | Yes | Source key id (the `id` of a key from localazy_get_file_keys). | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/destructive annotations: discloses billing behavior (no credit consumption), a latency caveat (first request for a key can be slower), and persistence behavior (nothing is saved). These are exactly the traits an agent needs that structured fields cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the purpose and the credit-cost distinction. The trailing raw endpoint path is mildly redundant given the structured schema but serves as confirmation, so it is nearly waste-free.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially covers the return shape ('one per engine'), and annotations plus the description handle safety, billing, latency and persistence. It could say more about the suggestion payload format, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, including the target/source language defaults and where key_id and project come from. The description adds no param-level meaning beyond 'one source key into a target language', so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: MT suggestions, one per engine, for a single source key into a target language. It distinguishes itself from the paid path by naming localazy_translate_with_ai, and the 'MT' qualifier separates it from the TM sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear condition for choosing this tool: it's free and consumes no Localazy credits, whereas Localazy AI does, pointing to localazy_translate_with_ai as the alternative. It stops short of contrasting with localazy_get_tm_suggestions, so the MT-vs-TM choice is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_get_tm_suggestionsGet translation memory suggestionsARead-onlyInspect
Translation Memory suggestions for one source key into a target language: earlier translations of the same text, with the project they came from. Free; no Localazy credits. GET /projects/{projectId}/keys/{keyId}/suggestions/tm.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target language code. | |
| from | No | Source language code (default: the project's source language). | |
| key_id | Yes | Source key id (the `id` of a key from localazy_get_file_keys). | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: the cost model ('Free; no Localazy credits') and the fact that results carry their originating project, both of which affect whether and how an agent calls this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences that front-load the purpose and return content, followed by a short cost note and the endpoint path. The raw endpoint string is mildly redundant but useful for API-literate callers; nothing else is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the necessary work of describing the return shape (earlier translations plus their source project). For a read-only suggestion lookup with fully documented parameters, that is close to sufficient; ordering, result limits, and the effect of the optional 'from' filter are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so key_id, project, to, and from (including its project-default behavior) are already fully documented. The description only restates 'one source key into a target language' without adding format, default, or constraint detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: TM suggestions for one source key into a target language, and clarifies that these are earlier human translations of the same text. This is enough to separate it from most siblings, but it never explicitly distinguishes itself from the near-identical localazy_get_mt_suggestions (machine translation), which is the main confusion risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Free; no Localazy credits' note implies this is a cheap operation worth trying, and the one-key/one-language scope is stated, but there is no explicit when-to-use rule and no mention of when to prefer localazy_get_mt_suggestions or localazy_translate_with_ai instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_import_keysImport a few keysADestructiveInspect
WRITE: add or update up to 50 string keys in ONE file, in ONE language (flat key -> text; use a key like "home.title" for the key name). Needs the Owner role. Nothing is deleted or deprecated, and Localazy does not overwrite existing current translations by default (translations identical to the source are skipped). By default the language is the project's source language, so this adds new source keys or changes the source text of existing ones (which marks their translations as changed); pass a different language to import translations, optionally through review with import_as_new. Imports count against the project's daily import cap (Free plan: 100/day). Returns an import_batch id for localazy_get_import_progress. POST /projects/{projectId}/import.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | Key name -> text, 1-50 entries (e.g. {"home.title": "Welcome"}). | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). | |
| language | Yes | Language of the strings in `keys`, e.g. en. Use the project's source language to add source keys. | |
| file_name | No | Target file name in the project (default content.json). A new name creates a new file. | |
| file_path | No | Optional path of the file in the project, without the file name. | |
| import_as_new | No | Send the imported translations through the review process (recommended for translations you are unsure about). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Far exceeds the annotations: it states nothing is deleted or deprecated, that existing current translations are not overwritten by default, that identical-to-source translations are skipped, that changing source text marks translations as changed, and that calls consume a daily import cap (Free: 100/day). It also discloses the Owner-role requirement and the returned import_batch id. This is exactly the mutation/accounting context an agent needs before a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The WRITE label front-loads the critical classification and the sentences are dense with non-redundant facts (limits, defaults, role, quota, return value). It is on the long side for a single dense paragraph, but almost no sentence is filler, so the length is largely earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema the description explains the return value (import_batch id) and the follow-up tool for tracking it, and covers auth, quota, file/language scoping, and defaulted behavior. For a 6-parameter nested-object write with a review path, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds real semantics: the 50-entry ceiling, the dotted 'home.title' key convention, and that the default language is the source language so omitting it changes source text rather than translations. gain over structured fields is genuine, though file_name's default (content.json) is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add or update), resource (string keys), and tight scope (up to 50 keys, one file, one language) with the flat key->text shape spelled out. The 'WRITE:' prefix and the HTTP endpoint make it immediately distinguishable from read-only siblings like get_file_keys or get_import_progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use context: default language targets the source language, while passing a different language imports translations, optionally routed through review via import_as_new. It also names the Owner role prerequisite and points forward to localazy_get_import_progress. It does not explicitly compare against alternative write paths such as submit_translation or update_key_properties, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_list_cdn_metadataList CDN metadata filesARead-onlyInspect
List the Localazy CDN release tags of a project and the URL of each tag's metadata file (languages, plural rules). Needs the Manager role. GET /projects/{projectId}/cdn.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond them: the Manager role requirement and the endpoint, which is meaningful authorization information for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core action, followed by the permission and endpoint details. No filler and every clause carries signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description names what is returned (release tags and their metadata file URLs, covering languages and plural rules), plus the auth requirement and endpoint. An agent has everything needed to invoke and interpret the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage, so the schema fully documents 'project' (id or slug, with provenance from localazy_list_projects). The description adds little beyond reusing the term 'project', so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Localazy CDN release tags, plus each tag's metadata file URL), and clarifies the payload of the metadata (languages, plural rules). No sibling tool touches CDN metadata, so it is cleanly distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides the operative prerequisite ('Needs the Manager role') and the underlying endpoint, which tells the agent the permission context required to call it. It does not name an alternative, but no sibling overlaps this capability, so there is little to disambiguate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_list_filesList filesARead-onlyInspect
List the files in a project (id, name, type, optional path). Use a file id with localazy_get_file_keys to read its strings. GET /projects/{projectId}/files.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so safety is covered. The description adds value beyond that by disclosing the response shape (id, name, type, path) and the underlying endpoint, which is genuinely useful given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: what it lists, where to go next, and the endpoint. The core purpose is front-loaded with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, the description supplies the return fields and the sibling routing an agent needs to act correctly. Annotations cover the safety profile, leaving little missing, though it does not mention pagination or whether the list is exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and schema description coverage is 100% – the schema already explains that 'project' is a Localazy project id or slug sourced from localazy_list_projects. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the files in a project') and enumerates the returned fields (id, name, type, optional path), so the agent knows exactly what comes back. It also explicitly distinguishes itself from localazy_get_file_keys by naming that sibling and its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear routing rule: use a file id with localazy_get_file_keys to read strings. That tells the agent the natural next step after this call. There is no explicit when-not-to-use or exclusion, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_list_glossaryList glossary termsARead-onlyInspect
All glossary terms of a project: id, description, translate/case-sensitive/exact-match flags and the term in each language. GET /projects/{projectId}/glossary.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered. The description adds the API endpoint mapping, which is mildly useful, but says nothing about pagination, result size, or auth requirements for a collection-returning call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence naming the scope and the fields returned, followed by the endpoint as a compact appendix. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by enumerating the returned fields and the endpoint, and the single required parameter is fully documented in the schema. It stops short of stating whether the result set is paginated or bounded, which is the only real gap for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage — the schema already tells the agent it is a project id or slug from localazy_list_projects. The description adds no parameter detail beyond scope ('of a project'), so the baseline 3 for schema-driven parameters applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource precisely ('All glossary terms of a project') and enumerates the returned fields (id, description, translate/case-sensitive/exact-match flags, term per language), plus the underlying endpoint. The word 'All' plus the plural resource implicitly distinguishes it from the singular siblings get_glossary_term and update_glossary_term.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the tool's nature — an agent can infer 'use this to see the glossary' — but no when-to-use condition, prerequisites, or named alternative (e.g. get_glossary_term for a single term) is given. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_list_import_formatsList import file typesARead-onlyInspect
List the file types Localazy can store strings as (type id, name, support for plurals/arrays/structured keys). The json type is what localazy_import_keys uses. GET /import/formats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so safety is covered. The description adds real value by describing the shape of the result (type id, name, plural/array/structured-key support) and the endpoint, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: contents first, the practical tie-in to localazy_import_keys second. Every clause carries information, with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only list with no output schema, the description compensates by enumerating the returned fields and linking to the consuming tool. Nothing an agent needs to call it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document; the baseline for a no-param tool is 4. Nothing extra is needed or missing here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (import file types Localazy can store strings as) and enumerates the returned fields, making it clearly distinct from other list_* siblings. No other tool covers import formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It ties itself to a concrete use case by noting 'The `json` type is what localazy_import_keys uses,' which tells the agent when this matters. It stops short of stating explicit when-not or alternative tools, but the routing intent to localazy_import_keys is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_list_key_linksList key links (duplicities)ARead-onlyInspect
List links between duplicate source keys (key id, linked project id, linked key id), paged. Needs the Reviewer role. GET /projects/{projectId}/links.
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | Paging key: pass the previous reply's `next`. Absent `next` = last page. | |
| limit | No | Items per page, 1-1000 (default 100 for keys; Localazy's own default for links is 1000). | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds value beyond that: an explicit authorization requirement (Reviewer role) and a paginated/cursor-based access pattern, plus the underlying endpoint. It does not state rate limits or pagination termination beyond what the schema says.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the resource and its returned fields, followed by the prerequisite and endpoint. Every clause carries information the agent needs to decide and call correctly; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description compensates by naming the returned fields (key id, linked project id, linked key id) and that results are paged. Combined with the Reviewer-role prerequisite and the read-only annotations, an agent has everything needed to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (project, limit, next) are fully documented in the schema itself, including the paging chain semantics. The description only says 'paged' and does not add format or constraint detail beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — list links between duplicate source keys — and goes further by enumerating the fields each link carries (key id, linked project id, linked key id), so the agent knows exactly what a 'link' is. No sibling tool in the list touches key links, so it is unambiguously differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one real prerequisite — 'Needs the Reviewer role' — and flags paging, which is useful selection context. However it names no alternative tool and gives no when-to-use/when-not guidance, so the agent must infer that this is the way to audit duplicate-key links.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_list_projectsList projectsARead-onlyInspect
List the Localazy projects the token can reach (a project token reaches one project): id, slug, name, source language, your role and visibility. Optionally add owning-organization limits (keys used/available, feature flags) and per-language progress counts (active, review, current, translated, sourceChanged, needImprovement). GET /projects.
| Name | Required | Description | Default |
|---|---|---|---|
| languages | No | Add per-language translation progress. | |
| organization | No | Add the owning organization's key usage and feature flags. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context: token-based visibility scoping ('a project token reaches one project') and the exact extra data the optional flags return. It does not mention pagination or response size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core action, and the parenthetical token-scoping caveat is placed where it matters. Dense but every clause carries information; the field enumeration is slightly list-heavy but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating return fields and the effect of each optional param. Complete for invocation; the only gap is absence of any note on pagination or ordering of the project list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description goes beyond the terse schema text: it names the specific per-language counters (active, review, current, translated, sourceChanged, needImprovement) and spells out that 'organization' adds keys used/available plus feature flags, clarifying the cost of each flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List the Localazy projects') and enumerates the returned fields (id, slug, name, source language, role, visibility). It doesn't need sibling differentiation because none of the siblings list projects, but it also never explicitly distinguishes itself from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains scope ('the token can reach') and what the two optional flags add, which implies when to enable them, but gives no explicit when-to-use vs alternatives guidance or prerequisites. Adequate but implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_submit_translationSubmit a translationADestructiveIdempotentInspect
WRITE: set the translation of ONE source key in ONE target language. Reviewers, managers, owners and trusted translators set it as the current version (it overwrites the existing translation and goes live in the next download/CDN release); a translator's value is stored as a candidate for review. Values are stored as-is, with no placeholder, plural or length check, and the source language cannot be written. Check the reply's stored. POST /projects/{projectId}/keys/{keyId}/translations/{lang}.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | Yes | Target language code (not the source language). | |
| value | Yes | The translation: a string for a singular key, an array of strings for an array key, or an object keyed by plural form (zero, one, two, few, many, other; the @one/@other form that localazy_get_file_keys returns is accepted too) for a plural key, with at least one form. It must match the key's form. | |
| key_id | Yes | Source key id (the `id` of a key from localazy_get_file_keys). | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, but the description goes well beyond them: it spells out that the write overwrites the existing translation and goes live in the next download/CDN release, that a translator's value is only a candidate, that no placeholder/plural/length validation runs, that the source language cannot be written, and that the caller should inspect the reply's `stored` field. This is exactly the extra behavioral context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the operation type and scope, then layered with role semantics, validation gaps, and the endpoint. Dense but each clause carries information; the trailing raw endpoint path is the only near-filler, and the whole thing is a single efficient paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter write tool with no output schema, the description covers the mutation effect, who it affects, what validation is skipped, and where to look for the result (`stored`). Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantic constraints on top: values are 'stored as-is, with no placeholder, plural or length check' and the source language cannot be targeted via `lang`. These are behavioral facts about the parameters that the schema alone does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: 'set the translation of ONE source key in ONE target language'. The 'WRITE:' prefix and the single-key/single-language scoping distinguish it from siblings like localazy_translate_with_ai or localazy_import_keys without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the role-dependent outcome clearly: reviewers/managers/owners/trusted translators write live, a plain translator's value becomes a pending candidate. That is strong context for predicting effect, but it never explicitly names an alternative tool or states when not to use this one (e.g., bulk translation via localazy_translate_with_ai).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_translate_with_aiTranslate texts with Localazy AI (spends credits)ADestructiveInspect
COSTS CREDITS: translate up to 10 texts with Localazy AI. Every call consumes Localazy credits from the account balance, by the number of translated words (see localazy.com/pricing); nothing is stored in the project, the translations are only returned. Limits: 10 requests/minute, 32 items and 16,384 characters per request. Beta. Needs the Owner role. POST /projects/{projectId}/ai.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target language code, e.g. cs. | |
| from | Yes | Source language code, e.g. en. | |
| items | Yes | 1-10 texts to translate. | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). | |
| fallback | No | Engine to use when Localazy AI is unavailable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already declare destructiveHint, openWorldHint and non-idempotency, the description adds valuable behavior beyond them: credits are consumed per translated word, nothing is persisted to the project, only returned, plus explicit 10 req/min, 32-item and 16,384-character limits and a required Owner role. This is exactly the operational context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The cost warning is front-loaded in caps and each following clause carries real information (limits, storage behavior, role, endpoint). It is dense but well ordered; the repeated Beta/limits block could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, credit-spending mutation tool with no output schema, the description covers cost, persistence, rate limits and auth prerequisites. It stops short of explaining response shape (mitigated by no output schema) or routing to alternative translation tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents project, from, to, items and fallback. The description adds only the 'up to 10 texts' framing plus request-level limits, so the baseline 3 applies. Note the stated '32 items per request' sits awkwardly against the schema's maxItems of 10.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('translate up to 10 texts with Localazy AI') and pins the operation to POST /projects/{projectId}/ai. An agent can distinguish this from sibling suggestion/candidate tools such as localazy_get_mt_suggestions without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong constraints (credit cost, rate limit, item/char ceilings, Beta, Owner role) but never states when to prefer this over alternatives like localazy_get_mt_suggestions or localazy_submit_translation. Usage is implied by the constraints rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_update_glossary_termUpdate glossary termADestructiveIdempotentInspect
WRITE: replace the content of one glossary term (the term list and any flags you pass overwrite the old values). Needs the Reviewer role. Read the term first with localazy_get_glossary_term. PUT /projects/{projectId}/glossary/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | The term in each language: [{lang, term}]. Include the project's source language. | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). | |
| term_id | Yes | Glossary term id (from localazy_list_glossary). | |
| description | No | Explanation for translators. | |
| exact_match | No | Match the exact form only (no inflected forms). | |
| case_sensitive | No | Match case exactly. | |
| translate_term | No | true = the term is translated; false = keep it as is in every language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=true, and the description goes further: it explains the replace-not-merge behavior ('the term list and any flags you pass overwrite the old values'), names the required Reviewer role, and discloses the underlying PUT endpoint. This tells the agent exactly what data is lost on invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the WRITE marker and the destructive-replace warning before the role and prerequisite details. No filler or restated field documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation with no output schema, the description supplies the critical missing pieces: mutation semantics, permission requirement, read-before-write workflow, and the API surface. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the baseline load. The description still adds non-obvious semantics: that the term array and any flag parameters overwrite prior values rather than patching them, which changes how the agent should populate optional fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with the operation class (WRITE) plus a concrete verb+resource: replacing the content of one glossary term. It is immediately distinguishable from localazy_create_glossary_term and localazy_get_glossary_term, which it names as the read counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a required precondition (Reviewer role) and a sequencing instruction (read the term first with localazy_get_glossary_term), which routes the agent to the right sibling. It does not state when to prefer this over creation or what to do when the term does not exist, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localazy_update_key_propertiesUpdate key comment/limit/visibilityADestructiveIdempotentInspect
WRITE: change a source key's translator comment, maximum translation length, or hidden flag (fields you omit stay as they are). Needs the Manager role. It does not change texts and cannot deprecate or delete the key. PUT /projects/{projectId}/keys/{keyId}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum translation length; -1 removes the limit. | |
| hidden | No | Hide the key from translators. | |
| key_id | Yes | Source key id (the `id` of a key from localazy_get_file_keys). | |
| comment | No | Context note for translators. | |
| project | Yes | Localazy project id or slug (from localazy_list_projects). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: the Manager role requirement, the partial-update contract (omitted fields stay unchanged), and the explicit non-effects (no text changes, no deprecation, no deletion). The only mild tension is destructiveHint=true versus the stated non-destructiveness, but overwriting existing property values is consistent with a destructive hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with the operation type front-loaded, followed by the mutation semantics, the permission requirement, and the exclusions. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter mutation with no output schema, the description covers auth, partial-update semantics, and side-effect boundaries, which is enough for correct invocation. Return shape is unspecified, but annotations already declare idempotency and safety, so the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented, including the -1 sentinel for limit. The description paraphrases the same three mutable fields without adding format or constraint detail, so the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (change) and resource (a source key's properties), then enumerates the three mutable fields: translator comment, max translation length, hidden flag. It also names the underlying endpoint, so the agent knows exactly what operation this is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context on when this applies (editing existing key properties, with omissions preserved) and explicit exclusions: it does not change texts and cannot deprecate or delete the key. It does not route to a specific sibling alternative, but no sibling performs the same job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Read Weblate projects, strings, stats and changes; translate, suggest, comment and autotranslate.
Localize apps from your AI assistant: translate locale files, set glossaries, connect GitHub repos.
Find missing translations in your app, propose texts and publish and deploy them to your CDN.
- LocizeOAuthapp.locize.mcp
Locize TMS: 26 tools for translations, TM/glossary/styleguide/screenshot context, versions. OAuth.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables interaction with the SimpleLocalize API to manage translation keys, languages, and tags. It allows users to streamline their localization workflow by creating, updating, and retrieving translation data directly through MCP-compatible AI assistants.4726 npmApache 2.0
- AlicenseNot gradedqualityBmaintenanceLocalization backend for coding agents: push iOS String Catalogs, Android strings.xml and ICU JSON to locli, translate with the project's tone, glossary and UI context, and pull only human-approved releases.MIT
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive translation management through POEditor's API with project, language, term, and translation operations. Includes automation scripts for reporting, monitoring, AI-powered suggestions, and multi-format exports.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables localization of React, Next.js, and Vue apps from an AI assistant by managing projects, languages, translations, glossaries, style guides, and GitHub repository integration.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.