Weblate MCP by usefulapi
Server Details
Read Weblate projects, strings, stats and changes; translate, suggest, comment and autotranslate.
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
- 93.4% over 19 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 23 tools
Most tools target a distinct resource+action (get_project, list_units, update_translation, add_suggestion), so selection is usually clear. However, per-language statistics can be obtained three ways (get_statistics with project+language, list_project_languages, list_translations), and the two translation-memory tools (lookup_memory vs. search_memory) are easy to confuse at a glance.
Nearly all tools follow a predictable weblate_<verb>_<noun> snake_case pattern (get_, list_, add_, accept_, update_, search_). Only weblate_autotranslate (verb only, no noun) and weblate_repository_operation (noun+noun, action hidden in a parameter) deviate slightly, but they remain readable.
23 tools is on the heavy side of the suggested 3-15 band, but the Weblate surface genuinely spans projects, components, translations, units, suggestions, comments, memory and repository state, so most tools earn their place. No obvious redundant tools pad the count.
Read coverage is thorough and the translate/review workflow (update_translation, suggestions, comments, autotranslate, repository ops) is well supported. But the lifecycle is one-sided: there is no create/update/delete for projects, components or translations, and no file upload/download of translation files, leaving notable gaps for setup and bulk workflows.
Available Tools
23 toolsweblate_accept_suggestionAccept a suggestionADestructiveInspect
WRITE: apply a suggestion to its string (replaces the current translation). approve also marks it approved (review workflow and permission needed). Weblate 2026.8+. POST /api/suggestions/{id}/accept/.
| Name | Required | Description | Default |
|---|---|---|---|
| approve | No | Also mark the translation approved. | |
| suggestion_id | Yes | Suggestion id (from weblate_list_suggestions). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive/non-idempotent/write, and the description goes beyond them by stating the current translation is replaced, that approval needs a review workflow and permission, and the minimum Weblate version. It does not describe the response or error behavior, but the added context is substantive.
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 terse sentences lead with the WRITE marker and the core mutation, then the optional flag, then version and endpoint. No filler; every clause 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?
For a two-parameter mutation with full schema coverage and no output schema, the description supplies what structured data cannot: the replacement semantics, the permission/review prerequisite, and the version floor. Return-value behavior is the only omitted detail.
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 the schema already documents both `approve` and `suggestion_id` (including the cross-reference to weblate_list_suggestions). The description's note that `approve` requires review workflow and permission adds a little meaning, but the schema does the heavy lifting, so 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 (apply/accept) and resource (a suggestion to its string) and clarifies the side effect: 'replaces the current translation'. This clearly distinguishes it from weblate_list_suggestions and weblate_add_suggestion.
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 conditional path: passing `approve` also marks the translation approved and requires the review workflow plus permission. It gives context for choosing the approve variant, though it never explicitly names a sibling (e.g. weblate_update_translation) as an alternative for editing translations directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_add_suggestionAdd a suggestionADestructiveInspect
WRITE: propose a translation for one string; normally a reviewer accepts it later, but the author's automatic upvote (or an existing identical suggestion) can reach the project's auto-accept threshold and apply it at once. Needs the Add suggestion permission and suggestions enabled (Weblate 2026.8+). POST /api/units/{id}/suggestions/.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | The text as a list of plural forms; use a one-element list for a string without plurals. | |
| unit_id | Yes | Weblate unit id (from weblate_list_units). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by naming the required permission ('Add suggestion'), the feature/version gate (suggestions enabled, Weblate 2026.8+), and the non-obvious side effect that an author's automatic upvote or an identical existing suggestion can push past the auto-accept threshold and apply the translation immediately. That conditional mutation context is exactly what the destructive/open-world annotations flag but cannot explain.
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 WRITE marker and the core action, then two tight sentences covering permissions/version and the endpoint. No filler; each clause carries distinct operational information.
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 two-parameter write tool with no output schema, the description supplies the safety profile (permission and feature prerequisites), the conditional auto-apply behavior, and the underlying endpoint. An agent has everything it needs to decide whether and how to call it.
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% and both parameters are fully documented in the schema (unit_id cross-references weblate_list_units; target explains plural forms). The description adds no parameter-level 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 ('propose a translation') and resource ('one string') with a WRITE label that distinguishes it from read siblings like weblate_list_suggestions and from weblate_accept_suggestion, which acts on the proposal later.
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 normal flow (proposal is accepted by a reviewer later) and the auto-accept edge case, which implies the alternative of writing directly via weblate_update_translation or accepting via weblate_accept_suggestion. It never names those siblings explicitly, so routing is slightly inferential rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_add_unit_commentAdd a string commentAInspect
WRITE: add a comment to one string (Markdown, @username mentions notify users). scope is global (all languages), translation (this language) or report (a source-string issue report; needs the review workflow). Weblate 5.12+. POST /api/units/{id}/comments/.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Comment scope (default global). | |
| comment | Yes | The comment text (max 1000 characters). | |
| unit_id | Yes | Weblate unit id (from weblate_list_units). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, idempotentHint=false), and the description adds real behavioral context on top: Markdown support, the fact that @username mentions notify users, scope-level side effects, and a Weblate 5.12+ version requirement. It does not address auth/permissions or whether comments can later be edited or deleted, so not a full 5.
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 class ('WRITE:'), then scope semantics, then version and endpoint. Every clause carries information an agent needs; nothing is 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 3-parameter write tool with no output schema, the description covers the operation, the side effects, the enum semantics, the prerequisite workflow, and the version gate. 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 coverage is already 100%, so the baseline is 3, but the description goes further by explaining what each scope enum value means in domain terms ('this language' vs 'a source-string issue report') and by characterizing the comment as Markdown with mention semantics. That is meaningfully more than the schema's terse one-liners.
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 ('add a comment to one string') and is clearly separable from the sibling weblate_list_unit_comments. The 'WRITE:' prefix and the raw endpoint reinforce the operation without ambiguity.
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 what each `scope` value is for (global vs translation vs report) and notes that 'report' requires the review workflow, which is a genuine prerequisite. It does not explicitly contrast with alternatives like weblate_add_suggestion or list_unit_comments, so it stops just 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.
weblate_autotranslateRun automatic translationADestructiveInspect
WRITE: fill a translation automatically from other components (auto_source others, default) or from machine translation (mt, needs engines). mode suggest only adds suggestions (default), translate writes translations, fuzzy marks them needing edit. q limits it to strings matching a search (default state:<translated, the strings that are not translated yet); threshold is the minimum match score (default 80). Use background to schedule a task instead of waiting. POST /api/translations/{project}/{component}/{language}/autotranslate/.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Only strings matching this search (default 'state:<translated'). | |
| mode | No | suggest (default), translate, fuzzy or approved. | |
| engines | No | Machine translation engine ids; required when auto_source is mt. | |
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| language | Yes | Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans'). | |
| component | Yes | Component slug. A component inside a category is 'category/component'. | |
| threshold | No | Minimum match score, 1-100 (default 80). | |
| background | No | Schedule as a background task and return a task url (Weblate 2026.10+). | |
| auto_source | No | others = other components (default), mt = machine translation engines (needs engines). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write/destructive/open-world, but the description adds real context beyond them: the 'WRITE:' prefix, the fact that suggest is the default and is non-destructive, and that background returns a task url. It does not fully clarify overwrite/irreversibility of the translate mode, but the mode semantics are a meaningful addition.
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 critical 'WRITE:' signal and the two source options before diving into per-parameter detail, so the most important selection cue comes first. It is dense but each clause carries information; the trailing POST endpoint is a minor but harmless addition.
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 9-parameter mutation tool with no output schema, the description covers the branching behavior, defaults and the background return (task url) well enough to invoke correctly. It leaves only the exact response shape of the synchronous path 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?
With 100% schema coverage the baseline is 3, and the description genuinely exceeds it by restating defaults and behavior for auto_source, mode, q (default state:<translated) and threshold (default 80), including the engines dependency for mt. It reinforces rather than merely repeats 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 and resource ('fill a translation automatically') plus the two source strategies (others vs mt), which cleanly separates it from weblate_update_translation, weblate_add_suggestion and weblate_accept_suggestion. An agent can tell this is the batch auto-translation tool without opening the 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?
Explains how each mode behaves (suggest only adds suggestions, translate writes, fuzzy marks needing edit) and when to use background ('schedule a task instead of waiting'), giving clear operational context. It stops short of naming a sibling alternative or stating when NOT to use this tool versus manual editing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_get_componentGet componentARead-onlyInspect
One component: repository, branch, file mask, template, source language, commit and merge settings, lock state. GET /api/components/{project}/{component}/.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| component | Yes | Component slug. A component inside a category is 'category/component'. |
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 safety is covered. The description adds genuine value by itemizing the returned fields, which matters because there is no output schema. It omits error behavior (e.g., 404 for a missing component) and auth requirements.
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 telegraphic fragments with no filler; the resource identity and returned-field list are front-loaded before the endpoint. The fragment style is maximally dense, though it trades some readability for brevity.
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 read-only getter whose annotations carry the safety profile and which lacks an output schema, the field enumeration supplies the missing return-shape information. Only error/edge-case behavior is absent, a minor gap.
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%, with both project and component slugs fully documented in the schema, including the 'category/component' nesting. The description's URL path form reinforces the shape but adds no syntax or format detail beyond the schema, so 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 via 'One component' and enumerates the returned fields (repository, branch, file mask, template, source language, commit/merge settings, lock state), which clearly distinguishes it as a single-item fetch. It does not explicitly contrast with weblate_list_components, but the singular framing implies the distinction.
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 explicit when-to-use, when-not, or alternative routing is given. The singular 'One component' weakly implies this is the single-fetch counterpart to weblate_list_components, but the agent must infer that entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_get_projectGet projectARead-onlyInspect
One project by slug: name, website, settings, instructions and links. GET /api/projects/{project}/.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug (the URL name, for example 'hello'). |
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 and the bar is lower. The description adds the returned field set, which is useful, but says nothing about auth requirements, missing-slug behavior, or pagination (not applicable here).
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 sentences with the purpose and return fields front-loaded. The trailing raw endpoint ('GET /api/projects/{project}/.') adds little for an agent but is not enough to call the entry verbose.
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 tells the agent what comes back, and annotations cover the safety profile. For a simple one-parameter read it is essentially complete, missing only guidance on usage relative to its siblings.
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 the single 'project' parameter is fully described there as a slug with an example. The description adds no syntax or format detail beyond the schema, 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 ('One project by slug') and enumerates the returned fields (name, website, settings, instructions, links), which clearly separates it from the list-style siblings like weblate_list_projects. It stops short of explicitly naming an alternative, but the singular-by-slug framing is unambiguous.
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: fetch a single project when you have its slug. There is no statement of when to prefer this over weblate_list_projects or weblate_list_project_languages, nor any prerequisite or error guidance, leaving the agent to infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_get_repository_statusGet repository statusARead-onlyInspect
Version-control status: pending changes to commit, upstream changes to merge, changes to push, remote commit, merge failure. For a project (summary of all its repositories) or one component. GET /api/projects/{project}/repository/ or /api/components/{project}/{component}/repository/.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| component | No | Component slug. A component inside a category is 'category/component'. |
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 safety is covered. The description adds real value beyond that by listing the returned data (pending changes, upstream merges, merge failure) and the underlying GET endpoints, which matters because 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 tight segments, front-loaded with the resource and the returned fields. The raw REST endpoint paths are slightly redundant for an agent that never calls the API directly, but they are brief and can aid debugging.
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 carries the return-value burden and does so by enumerating the status fields. Parameter scope is covered too. Missing only minor operational detail such as response shape/pagination or permission requirements.
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 meaning the schema does not: omitting 'component' yields a project-level summary across all repositories, while supplying it narrows the result to one component. That directly explains the relationship between the two parameters.
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 ('Version-control status') and enumerates exactly what the status reports: pending commits, upstream merges, pushes, remote commit, merge failure. This is far more concrete than a tautology. It does not explicitly distinguish itself from the sibling 'weblate_repository_operation', which an agent could plausibly confuse with the commit/push/merge items listed here.
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?
'For a project (summary of all its repositories) or one component' tells the agent when to supply the optional component parameter versus leaving it out. There are no exclusions or named alternatives, so it stops short of a 5, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_get_statisticsGet translation statisticsARead-onlyInspect
Translation progress: strings and words total, translated, needing edit, with percentages and checks. Scope by project; add a component for per-language statistics of a component, add a language too for one translation. GET /api/projects/{project}/statistics/, /api/components/{project}/{component}/statistics/ or /api/translations/{project}/{component}/{language}/statistics/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| language | No | Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans'). | |
| component | No | Component slug. A component inside a category is 'category/component'. | |
| page_size | No | Results per page, 1-100 (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds useful substance beyond that by listing the concrete metrics returned and the underlying REST endpoints, giving the agent a sense of what data comes back. It does not mention auth requirements or pagination behavior, but with annotations present the bar is lower.
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, front-loaded with the return payload then the scoping rules. The appended list of three API endpoints is somewhat boilerplate but is compact and does convey the scope variants, so little 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 compensates by naming the returned fields, and pagination is handled in the schema (page, page_size). An agent can call this correctly and knows what to expect back; only auth/rate-limit context is absent, which is minor for a read-only statistics 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?
Schema coverage is 100%, so the baseline is 3. The description goes further by explaining the hierarchical relationship between parameters that the schema documents only individually: component switches to per-language component statistics and adding language narrows to one translation. That interaction is genuine semantics beyond the field-level descriptions.
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 resource (translation statistics) and enumerates exactly what is returned: strings and words, total/translated/needing edit, percentages, checks. The multi-level scoping (project / component / translation) makes it identifiable against siblings like weblate_get_component or weblate_get_translation.
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?
Explicitly tells the agent how to widen or narrow scope: project alone, add component for per-language component stats, add language for a single translation. That is real routing guidance, though it never names an alternative sibling tool or states when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_get_translationGet translationARead-onlyInspect
One translation (a component in one language): statistics, language, file name, revision and links. GET /api/translations/{project}/{component}/{language}/.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| language | Yes | Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans'). | |
| component | Yes | Component slug. A component inside a category is 'category/component'. |
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 which fields are returned (statistics, language, file name, revision, links) plus the raw endpoint, but says nothing about auth requirements or error behavior.
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?
Extremely tight — one content clause plus the endpoint, with the resource identity and return fields front-loaded. Nothing is wasted, though the sentence-fragment style trades a little readability for brevity.
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?
There is no output schema, so the description earns credit for enumerating the returned payload (statistics, language, file name, revision, links). Combined with the annotations, an agent has enough to call it correctly; only auth/error detail 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?
Schema description coverage is 100%, so all three parameters are already documented with formats and examples. The endpoint template 'GET /api/translations/{project}/{component}/{language}/' reinforces the path semantics and ordering but adds little 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+resource ('One translation') and immediately disambiguates the domain term as 'a component in one language', which is genuinely useful in Weblate's vocabulary. The singular form clearly contrasts with the sibling list_translations, 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?
Usage is only implied: fetching one translation versus the plural list_translations or the finer-grained get_unit. There is no explicit when-to-use statement, no prerequisite (e.g., needing a known project/component/language triplet), and no stated exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_get_unitGet string (unit)ARead-onlyInspect
One string by id: source and target forms, state, context, location, flags, labels, explanation, suggestions/comments flags, web link. GET /api/units/{id}/.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | Weblate unit id (from weblate_list_units). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real value by disclosing the returned payload (source/target forms, state, context, location, flags, labels, explanation, suggestion/comment flags, web link) and the underlying GET endpoint, though timestamps, auth or rate-limit behavior are not mentioned.
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?
A single front-loaded sentence with the identity and payload, plus the endpoint suffix. The field enumeration is a bit list-like but each item conveys what the agent will receive, so little 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 usefully compensates by listing the fields returned, which is the main thing an agent needs to decide whether this call supplies the data it wants. Only usage routing is missing, and that is minor for a one-parameter read.
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% and the schema already explains that unit_id is a Weblate unit id from weblate_list_units. The description only restates 'by id' and adds no format or lookup detail, so the baseline of 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 ('One string by id') and enumerates what the returned unit contains, which separates it from the plural weblate_list_units. It does not name the sibling tool explicitly, so differentiation is implied rather than stated.
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?
There is no when-to-use guidance or mention of when to prefer weblate_list_units or a search instead. The only hint that the id comes from a listing tool lives 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.
weblate_list_changesList changesARead-onlyInspect
The activity log: who changed or translated what, when, with the action name and the changed text. Scope by project, component or translation (language), or filter by user, action id and time range. GET /api/changes/ or the project/component/translation changes endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| user | No | Only changes by this username. | |
| action | No | Only these action ids (see Weblate's change actions). | |
| project | No | Project slug (the URL name, for example 'hello'). | |
| language | No | Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans'). | |
| component | No | Component slug. A component inside a category is 'category/component'. | |
| page_size | No | Results per page, 1-100 (default 25). | |
| timestamp_after | No | Only changes after this ISO 8601 time. | |
| timestamp_before | No | Only changes before this ISO 8601 time. |
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 real value beyond that by describing the shape of the returned records (who/what/when, action name, changed text) and confirming the read-only GET endpoint — useful 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: the first front-loads what the tool returns, the second covers scoping, filtering and the endpoint. No filler and nothing important buried.
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 nine-parameter, no-required, read-only listing tool with no output schema, the description covers the record contents, all filter dimensions and the endpoint, which is nearly everything needed. Pagination mechanics live only in the schema, a minor gap.
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 every parameter including paging and ISO timestamps is already documented at the field level. The description restates the filter dimensions (project, component, language, user, action, time range) but adds no syntax or format detail beyond the schema, so the baseline of 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?
The description states a specific resource (the activity log of changes) and enumerates its contents: actor, action, timestamp and changed text. It also names the backing endpoints, so an agent can distinguish it from the other weblate_list_* siblings on first read.
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 says how to scope the result (project, component, translation/language) and how to filter (user, action id, time range), which implies the use case. However, it never states when to reach for this tool over siblings such as weblate_get_unit or the per-object endpoints, and gives no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_list_componentsList componentsARead-onlyInspect
List translation components (one translatable file set in a repository), with repository, file mask, source language and status flags. Give a project to list only its components. Repository URLs have embedded credentials removed. GET /api/components/ or /api/projects/{project}/components/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| project | No | Only this project's components. | |
| page_size | No | Results per page, 1-100 (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe, read-only, open-world profile, so the bar is lower. The description still adds genuine operational context: repository URLs have embedded credentials stripped, and the returned fields include repository, file mask, source language and status flags. Pagination behavior, however, is left entirely to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences plus an endpoint citation; the core purpose and the scoping hint are front-loaded with no filler. The explicit GET path is slightly technical overhead but is compact and useful for API-oriented agents.
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 compensates by enumerating the notable returned fields and the credential-stripping safety behavior. Combined with the fully-documented input schema, an agent has enough to call this correctly; only pagination semantics are left implicit in the 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 three parameters (page, project, page_size) are already documented in the schema, including pagination chaining via next_page. The description only echoes the project filter ('Give a project to list only its components') and adds no syntax or format detail beyond 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 states a specific verb (List) and resource (translation components) and even defines the resource parenthetically as 'one translatable file set in a repository'. It also clarifies the scoping behavior ('Give a project to list only its components'), which cleanly separates it from weblate_list_projects, weblate_list_translations and weblate_list_units.
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 implies usage by explaining that supplying a project narrows the result set, and it cites the two backing endpoints. However, it never states when to prefer this tool over weblate_get_component (single component) or weblate_list_projects, so the routing guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_list_languagesList languagesBRead-onlyInspect
List the languages known to this Weblate instance: code, name, text direction, plural forms. GET /api/languages/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| page_size | No | Results per page, 1-100 (default 25). |
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 by structured data. The description adds the REST endpoint and the shape of the returned objects, but says nothing about pagination semantics or response envelope beyond what the schema provides.
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?
A single dense sentence plus endpoint reference, front-loaded with the verb and resource and no filler. Every clause carries information.
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 compensates by listing the returned fields, which is the key missing piece. It stops short of explaining pagination flow or instance-vs-project scoping, but is adequate for a simple read-only listing tool.
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% and the schema already documents page and page_size with defaults, ranges, and the next_page continuation hint. The description adds nothing about these parameters, 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 (List) and resource (languages) and enumerates the fields returned (code, name, text direction, plural forms), plus the underlying endpoint. The phrase 'known to this Weblate instance' weakly implies instance-wide scope versus the sibling weblate_list_project_languages, but the contrast is not made explicit.
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 when-to-use guidance and no named alternative, even though weblate_list_project_languages is a close sibling that an agent could easily confuse with this tool. The scope distinction is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_list_project_languagesList project languagesBRead-onlyInspect
Per-language translation statistics for a whole project (code, total, translated, percentages). GET /api/projects/{project}/languages/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| page_size | No | Results per page, 1-100 (default 25). |
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 corroborates this with the GET endpoint. It usefully discloses the returned statistics fields, but says nothing about pagination behavior or volume despite the page/page_size parameters.
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: the payload description is front-loaded, followed by the endpoint. No filler, though the raw API path is arguably redundant with the tool name.
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 read-only list tool with full schema coverage and annotations covering the safety profile, the description is nearly sufficient, and it compensates for the missing output schema by naming the returned fields. Only pagination semantics and sibling routing are 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?
Schema description coverage is 100%, so every parameter (project, page, page_size) is already documented with defaults, ranges, and the next_page chaining hint. The description adds no parameter meaning 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?
The description states a clear resource (per-language translation statistics) scoped explicitly to a whole project, and lists the payload fields (code, total, translated, percentages). The project-level scoping implicitly separates it from weblate_list_languages, but no sibling is named, so differentiation is left to inference.
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?
There is no guidance on when to choose this over weblate_list_languages, weblate_get_project, or weblate_get_statistics, nor any stated prerequisites (e.g. that a valid project slug is required). The project-scope wording hints at usage but never states it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_list_projectsList projectsBRead-onlyInspect
List the projects visible to this token: name, slug, website and settings (review workflow, access control). GET /api/projects/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| page_size | No | Results per page, 1-100 (default 25). |
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 genuine value by disclosing the auth scoping rule (results are limited to what the token can see) and the shape of returned records, but says nothing about rate limits, ordering, or total-count behavior.
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 sentence plus the endpoint, front-loaded with the verb and scope, and the field list earns its place by previewing the payload. No filler, though the bare endpoint citation is only marginally useful.
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?
There is no output schema, but the description compensates by enumerating the returned fields (name, slug, website, settings) and the access-control/review-workflow content. Pagination is fully handled by the schema, so an agent has enough to call 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% and both parameters (page, page_size) are fully documented in the schema with defaults and bounds, so the baseline of 3 applies. The description adds no pagination syntax or semantics beyond what the schema already states.
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?
Specific verb (list) plus resource (projects) and an explicit scope qualifier ("visible to this token"), with the returned fields enumerated. It distinguishes itself from weblate_get_project by being a collection listing, though it never names that sibling 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 when-to-use guidance and no exclusions: nothing tells the agent to prefer weblate_get_project for a single project or weblate_list_project_languages for nested language data. The pagination continuation hint lives 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.
weblate_list_suggestionsList suggestionsARead-onlyInspect
List suggestions (proposed translations waiting for review), newest first (Weblate 2026.8+). Give a unit id for one string's suggestions. GET /api/suggestions/ or /api/units/{id}/suggestions/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| unit_id | No | Weblate unit id (from weblate_list_units). | |
| page_size | No | Results per page, 1-100 (default 25). |
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 fully covered by structured data. The description adds the useful ordering guarantee ('newest first') and a Weblate-version caveat (2026.8+), which is genuine behavior the annotations do not convey, but no pagination or rate-limit detail.
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 core purpose, then scoping, then endpoint. Zero filler and 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?
For a 3-param read-only list tool whose annotations and full schema coverage already carry the safety and parameter burden, the description covers purpose, scope, ordering and endpoint adequately. It stops short of describing the response payload, but no output schema exists and the annotations cover 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 coverage is 100%, and the schema descriptions already explain page, page_size and unit_id (including the 'from weblate_list_units' provenance). The description only restates the unit_id behavior, so it adds no syntax or format meaning beyond the schema. Baseline 3 is 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+resource ('List suggestions') and immediately parenthesizes what a suggestion is ('proposed translations waiting for review'), disambiguating it from sibling list tools like weblate_list_units or weblate_list_changes. It also names the two underlying endpoints, so an agent knows exactly what resource is being fetched.
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 scoping choice: omitting unit_id lists all suggestions, passing one narrows to a single string. However it does not reference the natural workflow alternatives – that weblate_accept_suggestion or weblate_add_suggestion are the write-side siblings an agent might want after listing, nor any when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_list_translationsList translationsARead-onlyInspect
List the translations (one language each) of a component with their statistics: total, translated, fuzzy, percent, last change. GET /api/components/{project}/{component}/translations/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| component | Yes | Component slug. A component inside a category is 'category/component'. | |
| page_size | No | Results per page, 1-100 (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral content by enumerating the returned statistics (total, translated, fuzzy, percent, last change), which is valuable given there is no output schema. It stops short of describing pagination behavior or the next_page contract.
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 tight sentence front-loads the resource, scope, and returned fields, followed by the raw GET path. Efficient with no filler, though the path is somewhat redundant for an agent that does not construct URLs directly.
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 4 parameters, 100% schema coverage, and no output schema, the description supplies the otherwise-missing picture of the reply shape. It omits pagination semantics, which live in the schema, and does not relate itself to the adjacent list/get tools, but nothing essential for a correct call 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 the schema fully documents project, component, page, and page_size slugs and ranges. The description adds no format or constraint 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 (List) and resource scope (translations of a component, one language each), plus the exact fields returned. This is distinguishable from siblings like weblate_list_languages, weblate_list_project_languages, and weblate_get_translation because the scope is a single component's per-language translation records.
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 clearly scoped resource: call this to enumerate the languages a component is translated into with stats. However, no explicit when-to-use guidance, no exclusions, and no routing to alternatives such as weblate_list_project_languages or weblate_get_statistics for narrower/broader views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_list_unit_commentsList string commentsBRead-onlyInspect
Comments on one string (Weblate 5.15+). GET /api/units/{id}/comments/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| unit_id | Yes | Weblate unit id (from weblate_list_units). | |
| page_size | No | Results per page, 1-100 (default 25). |
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 two useful pieces of context beyond the annotations: that this requires Weblate 5.15+ and the underlying REST route GET /api/units/{id}/comments/. It says nothing about ordering, comment fields, or pagination behavior beyond what the schema already documents.
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, front-loaded with the purpose, followed by the version note and endpoint. Nothing is wasted, though the trailing REST path is largely redundant with the tool's own operation.
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 should ideally indicate the shape of the returned comment list (author, timestamp, text, pagination cursor). It covers pagination indirectly via the schema and flags the version prerequisite, but a consumer must guess at the return payload.
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%: unit_id, page (including the 'pass the previous reply's next_page' hint) and page_size are all fully documented in the schema. The description adds no parameter detail of its own, 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 resource and scope: comments attached to a single string, which is unambiguous against siblings like weblate_add_unit_comment (write) or weblate_list_suggestions (different resource). It never uses an explicit verb ('list'), but the name plus 'Comments on one string' leaves no real doubt about what it returns.
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 no when-to-use guidance, no prerequisites, and does not point to alternatives such as weblate_add_unit_comment for posting a comment or weblate_list_suggestions. The only constraint offered is the version requirement 'Weblate 5.15+', which is a compatibility note rather than usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_list_unitsList strings (units)ARead-onlyInspect
List or search translation strings (units): source, target, state (0 untranslated, 10 needs editing, 20 translated, 30 approved, 100 read-only), context, location, failing checks. Search with Weblate's query syntax, for example state:<translated or has:suggestion. Give project + component + language to read one translation; without them all visible strings are searched. GET /api/translations/{project}/{component}/{language}/units/ or /api/units/.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Weblate search query (https://docs.weblate.org/en/latest/user/search.html), for example 'state:<translated' or 'source:hello'. | |
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| project | No | Project slug (the URL name, for example 'hello'). | |
| language | No | Language code as Weblate names it (for example 'cs', 'pt_BR', 'zh_Hans'). | |
| component | No | Component slug. A component inside a category is 'category/component'. | |
| page_size | No | Results per page, 1-100 (default 25). |
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 safety is covered. The description adds genuine context beyond that: the numeric state legend (0/10/20/30/100), the searchable facets, and the two backing endpoints that reveal the scoped vs global behavior. It does not discuss pagination limits or result ordering, which would round this out.
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 verb+resource, then scoping, then query syntax, then endpoints in three dense sentences. Every sentence carries information, though the trailing endpoint URLs are somewhat redundant with the described scoping behavior.
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 compensates by naming the returned fields and explaining scoped vs global search, and pagination is documented in the schema itself. The remaining gap is return shape/paging behavior details, which an agent must infer from parameter descriptions.
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 meaning the schema lacks: the state-code legend used in queries and a concrete query example ('state:<translated or has:suggestion'). It does not explain page/page_size interaction beyond what the schema already states, so it is above baseline without being exhaustive.
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 or search translation strings (units)') and enumerates the fields returned (source, target, state, context, location, failing checks). The scoping rule ('Give project + component + language to read one translation; without them all visible strings are searched') makes clear how this differs from the singular get_unit / list_translations siblings.
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?
Explicitly describes two operating modes: scoped read when project+component+language are supplied, and global search when they are omitted, plus how to search via Weblate query syntax. It stops short of naming an alternative sibling (e.g. weblate_get_unit for a single string) or stating exclusions, so it is clear context rather than 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.
weblate_lookup_memoryLook up translation memoryARead-onlyInspect
Find translation memory matches (exact or fuzzy) for up to 20 source strings in one language pair. Read-only: nothing is stored. POST /api/memory/lookup/.
| Name | Required | Description | Default |
|---|---|---|---|
| exact | No | Return exact matches only, skipping fuzzy matching. | |
| project | No | Restrict to this project's memory. | |
| strings | Yes | Source strings to look up. | |
| source_language | Yes | Source language code. | |
| target_language | Yes | Target language code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Read-only: nothing is stored' is largely redundant reinforcement of what the structured fields already say. The description adds the batch cap and the POST /api/memory/lookup/ endpoint, which is modest added context for a read tool whose safety profile is already covered.
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 with zero waste; the core action and its scope are front-loaded ahead of the read-only and endpoint notes.
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 read-only lookup with no output schema, the description conveys the essential contract (find matches, exact or fuzzy, per language pair). It omits any hint of the return shape (match scores, multiple matches per string), but the tool is simple enough that this 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 the schema already documents all five parameters (exact, project, strings, source_language, target_language) including limits. The description echoes the batch ceiling and language-pair framing but adds no syntax or format detail 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?
The description states a specific verb and resource ('Find translation memory matches') plus its scope ('exact or fuzzy', 'up to 20 source strings', 'one language pair'). It is clear what the tool does, but it does not name or contrast itself with the sibling weblate_search_memory, which an agent might reasonably confuse it with.
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 lookup framing, but there is no explicit when-to-use, no exclusions, and no reference to the alternative weblate_search_memory or weblate_autotranslate. The agent must infer the choice rather than being routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_repository_operationRun a repository operationADestructiveInspect
WRITE: commit (write pending translations into the local repository), pull (merge upstream changes) or push (publish committed changes to the remote repository) for a project or one component. Push changes the remote repository. reset and cleanup are not offered. POST /api/projects/{project}/repository/ or /api/components/{project}/{component}/repository/.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug (the URL name, for example 'hello'). | |
| component | No | Omit to run the operation on every component of the project. | |
| operation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true and idempotentHint=false, so safety is covered. The description adds real value beyond that by disclosing which operation touches the remote ('Push changes the remote repository') and which are local-only, plus the explicit omission of reset/cleanup.
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 WRITE classification and the three operation meanings in a single dense sentence, with constraints and endpoint following. Efficient overall, though the raw REST endpoint paths at the end are marginal value for an agent that invokes tools rather than HTTP.
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 three-parameter mutation tool with no output schema, the description covers the operations, scope, remote-vs-local effects, and excluded variants. What it omits is the return behavior — whether the operation is synchronous, what a success/failure response looks like — which matters for a non-idempotent write.
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 67% and the operation enum has no schema-level descriptions, so the description carries meaningful weight by defining commit/pull/push in prose. The component parameter's omitting behavior is already in the schema, but the description reinforces the project-or-component scope. The project parameter itself gets no extra meaning.
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 opens with 'WRITE:' and names a concrete verb class with an explicit enumeration of what each operation does (commit writes pending translations locally, pull merges upstream, push publishes to remote). This clearly separates it from the read-only sibling weblate_get_repository_status.
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 states the scope (a project or one component) and gives a useful negative constraint ('reset and cleanup are not offered'), which prevents wasted calls. It does not explicitly contrast with weblate_get_repository_status or explain when a commit is even needed (e.g., after updating translations), 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.
weblate_search_memorySearch translation memoryBRead-onlyInspect
Browse the translation memory entries visible to the token, filtered by source text (substring), languages or project. GET /api/memory/.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| source | No | Case-insensitive substring of the source text. | |
| project | No | Project slug (the URL name, for example 'hello'). | |
| page_size | No | Results per page, 1-100 (default 25). | |
| source_language | No | ||
| target_language | No |
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 the auth-scoping detail 'visible to the token' and names the endpoint, which is modest but real added context.
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 with zero waste; the resource and its filters are front-loaded and the endpoint reference trails it.
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?
No output schema exists, so the description could reasonably say what a memory entry or page of results looks like, but it does not. Combined with the unexplained overlap with weblate_lookup_memory, it is only adequate for a search tool.
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 67%, so the schema documents most filters (page, source, project, page_size). The description restates source-as-substring and adds 'languages or project' but omits pagination, and source_language/target_language remain undocumented in both places.
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 (browse/search) and resource (translation memory entries) plus the filter dimensions. However, it does not distinguish itself from the sibling weblate_lookup_memory, which an agent must choose between, so it lacks full sibling differentiation.
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 statement of when to use this versus alternatives, and critically no mention of the near-identical sibling weblate_lookup_memory. The agent is left to infer the distinction from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weblate_update_translationUpdate a translationADestructiveIdempotentInspect
WRITE: set the translation of one string (replaces the current target). target is the list of plural forms. state is required (Weblate rejects a partial update without both): 0 untranslated with an empty target, 10 needs editing, 20 translated or 30 approved (approval needs the review workflow and permission). The number of plural forms must match the language. Changes are committed to the repository by Weblate's normal schedule. PATCH /api/units/{id}/.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | New state: 0 untranslated (target must be empty), 10 needs editing, 20 translated, 30 approved. | |
| target | Yes | The text as a list of plural forms; use a one-element list for a string without plurals. | |
| unit_id | Yes | Weblate unit id (from weblate_list_units). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it warns that the current target is replaced and that Weblate rejects a partial update lacking both target and state, states the plural-form/language count constraint, notes the commit happens on Weblate's normal schedule, and discloses the permission prerequisite for approval. These are real behavioral facts an agent cannot infer from readOnly/destructive/idempotent hints alone.
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 WRITE marker and the core action, then dense but purposeful detail on state, plurals, and commit timing. Every sentence carries information; the trailing PATCH endpoint is mildly extraneous but harmless.
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 three-parameter write with no output schema, the description covers mutation semantics, enum meanings, validation constraints, permission prerequisites, and commit behavior, while the annotations cover the safety profile. 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; the description adds value on top by explaining that target must have a plural-form count matching the language and that state cannot be omitted (partial updates rejected). It does not add anything for unit_id beyond the schema, but the added semantics on the other two parameters are substantive.
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 'WRITE: set the translation of one string (replaces the current target)', naming a specific verb, resource, and the exact mutation it performs. This cleanly separates it from sibling proposal tools like weblate_add_suggestion or weblate_accept_suggestion without requiring the schema to be opened.
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 useful context on when each state value applies and that state 30 requires the review workflow and permission, but never names an alternative (e.g., when to suggest via weblate_add_suggestion instead of writing directly). Usage is implied rather than explicitly routed.
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 Localazy projects, files, keys and glossary; submit translations, import keys, AI suggestions.
Manage Universally website translations: sites, languages, strings, glossary rules and analytics.
Manage app translations: find missing or duplicate phrases, add languages and export dictionaries.
Find missing translations in your app, propose texts and publish and deploy them to your CDN.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for managing translation projects in Weblate. With the ability to search, read and write transltaions.2063 npm24MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Crowdin translation projects with tools for listing projects, files, source strings, translations, and performing bulk search-and-replace operations.MIT
- AlicenseAqualityDmaintenanceEnables interaction with POEditor's translation management API to create terms, add translations, and manage multilingual content. Supports operations like adding translations, updating existing ones, and listing terms and languages for translation projects.1116 npm3MIT
- AlicenseBqualityDmaintenanceProvides tools for working with iOS Localizable.xcstrings files, enabling automated translation workflows and localization management for iOS/macOS projects using Xcode String Catalogs.75MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.