Weblate MCP by usefulapi

io.usefulapi/weblate

Read Weblate projects, strings, stats and changes; translate, suggest, comment and autotranslate.

Yes, your AI can use this right now.Answered a live MCP handshake in 191 ms with no sign-in needed and exposes 23 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://weblate.usefulapi.io/mcp

23 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
weblate_list_projectsread-only

List the projects visible to this token: name, slug, website and settings (review workflow, access control). GET /api/projects/.

weblate_get_projectread-only

One project by slug: name, website, settings, instructions and links. GET /api/projects/{project}/.

weblate_list_componentsread-only

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/.

weblate_get_componentread-only

One component: repository, branch, file mask, template, source language, commit and merge settings, lock state. GET /api/components/{project}/{component}/.

weblate_list_translationsread-only

List 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_translationread-only

One translation (a component in one language): statistics, language, file name, revision and links. GET /api/translations/{project}/{component}/{language}/.

weblate_get_statisticsread-only

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/.

weblate_list_project_languagesread-only

Per-language translation statistics for a whole project (code, total, translated, percentages). GET /api/projects/{project}/languages/.

weblate_list_languagesread-only

List the languages known to this Weblate instance: code, name, text direction, plural forms. GET /api/languages/.

weblate_list_unitsread-only

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/{proj

weblate_get_unitread-only

One 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_commentsread-only

Comments on one string (Weblate 5.15+). GET /api/units/{id}/comments/.

weblate_list_suggestionsread-only

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/.

weblate_list_changesread-only

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.

weblate_search_memoryread-only

Browse the translation memory entries visible to the token, filtered by source text (substring), languages or project. GET /api/memory/.

weblate_lookup_memoryread-only

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/.

weblate_get_repository_statusread-only

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/.

weblate_update_translationcan modify

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 rep

weblate_add_suggestioncan modify

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/.

weblate_accept_suggestioncan modify

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/.

weblate_add_unit_comment

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/.

weblate_repository_operationcan modify

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/.

weblate_autotranslatecan modify

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

Alternatives in Other

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”