Weblate MCP by usefulapi
io.usefulapi/weblate · v1.0.0
Read Weblate projects, strings, stats and changes; translate, suggest, comment and autotranslate.
MCPremoteno credentialsDeveloper toolsScience & open data
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 23 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
B 87/100
What it does: 23 tools · 17 read, 6 write (incl. delete/pay) · Developer tools
Test call weblate_list_projects: needs a key: HTTP 401 (1,124 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +9
- Read/write annotations: +5
- Safe test call: +8
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://weblate.usefulapi.io/mcpTools
23 tools listed at last check
weblate_list_projectsList the projects visible to this token: name, slug, website and settings (review workflow, access control). GET /api/projects/.weblate_get_projectOne project by slug: name, website, settings, instructions and links. GET /api/projects/{project}/.weblate_list_componentsList 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/.weblate_get_componentOne component: repository, branch, file mask, template, source language, commit and merge settings, lock state. GET /api/components/{project}/{component}/.weblate_list_translationsList the translations (one language each) of a component with their statistics: total, translated, fuzzy, percent, last change. GET /api/components/{project}/{component}/translations/.weblate_get_translationOne translation (a component in one language): statistics, language, file name, revision and links. GET /api/translations/{project}/{component}/{language}/.weblate_get_statisticsTranslation 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}/sweblate_list_project_languagesPer-language translation statistics for a whole project (code, total, translated, percentages). GET /api/projects/{project}/languages/.weblate_list_languagesList the languages known to this Weblate instance: code, name, text direction, plural forms. GET /api/languages/.weblate_list_unitsList 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 + languageweblate_get_unitOne string by id: source and target forms, state, context, location, flags, labels, explanation, suggestions/comments flags, web link. GET /api/units/{id}/.weblate_list_unit_commentsComments on one string (Weblate 5.15+). GET /api/units/{id}/comments/.weblate_list_suggestionsList 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/.weblate_list_changesThe 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.weblate_search_memoryBrowse the translation memory entries visible to the token, filtered by source text (substring), languages or project. GET /api/memory/.weblate_lookup_memoryFind 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/.weblate_get_repository_statusVersion-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/.weblate_update_translationWRITE: 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 aweblate_add_suggestionWRITE: 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+)weblate_accept_suggestionWRITE: 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/.weblate_add_unit_commentWRITE: 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/.weblate_repository_operationWRITE: 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}/repositweblate_autotranslateWRITE: 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 (defau
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.usefulapi/weblate)