Weblate MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.23.4Updated Nov 7, 2026

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

The publisher's own server: Ably MCP by usefulapi

Overview

AI-generated overview

Hosted MCP endpoint for Weblate that lets an assistant read projects, strings and statistics, and translate, suggest, comment, autotranslate and run…

What you can do
  • Browse projects, components, translations and languages with their settings and metadata
  • Read translation statistics and progress per project, component or language
  • Search and read strings (units), their comments and pending suggestions
  • Review the activity log of who changed or translated what, and check repository status
  • Look up and search translation memory entries for source strings
  • Write translations, add or accept suggestions, comment on strings, run autotranslation, and commit, pull or push repositories
When to use it
Useful when you work with Weblate (Hosted Weblate, Weblate Cloud or self-hosted) and want an assistant to report translation progress, find untranslated or fuzzy strings, review recent changes, or draft and apply translations without switching to the web UI.
Requirements
Remote streamable HTTP endpoint; no local install. Connect with the endpoint URL only and sign in through OAuth with your own Weblate credentials. A usage plan applies: free tier of 50 tool calls per month, or a paid Pro/Pro+ subscription.
Before you install
Six tools write to Weblate: updating translations, adding and accepting suggestions, commenting, autotranslation and repository operations, and push publishes to the remote repository. Autotranslate can write translations in bulk, and an added suggestion may be auto-accepted. The service is a paid third-party proxy: usage is metered, upgrade returns a payment link, and your Weblate credentials and translation data pass through it.

Installation

In SourceWeft

  1. Open Weblate MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fweblate/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "weblate-by-usefulapi": {
      "type": "http",
      "url": "https://weblate.usefulapi.io/mcp"
    }
  }
}

README

Weblate MCP by usefulapi

Use Weblate (Hosted Weblate, Weblate Cloud or self-hosted) from Claude, Cursor, or any MCP client — projects, components, translations and statistics, strings, suggestions, comments, changes and translation memory, plus translating strings, suggestions, comments, repository commit/pull/push and automatic translation. Hosted, no local install: connect with your own Weblate credentials.

Live endpoint: https://weblate.usefulapi.io/mcp · Homepage: https://usefulapi.io/weblate

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://weblate.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http weblate https://weblate.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "weblate": {      "url": "https://weblate.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Weblate credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/weblate/

Tools

ToolTypeWhat it does
weblate_list_projectsreadList projects
weblate_get_projectreadGet project
weblate_list_componentsreadList components
weblate_get_componentreadGet component
weblate_list_translationsreadList translations
weblate_get_translationreadGet translation
weblate_get_statisticsreadGet translation statistics
weblate_list_project_languagesreadList project languages
weblate_list_languagesreadList languages
weblate_list_unitsreadList strings (units)
weblate_get_unitreadGet string (unit)
weblate_list_unit_commentsreadList string comments
weblate_list_suggestionsreadList suggestions
weblate_list_changesreadList changes
weblate_search_memoryreadSearch translation memory
weblate_lookup_memoryreadLook up translation memory
weblate_get_repository_statusreadGet repository status
weblate_update_translationwriteUpdate a translation
weblate_add_suggestionwriteAdd a suggestion
weblate_accept_suggestionwriteAccept a suggestion
weblate_add_unit_commentwriteAdd a string comment
weblate_repository_operationwriteRun a repository operation
weblate_autotranslatewriteRun automatic translation
weblate_usage_statusmetaUsage status (free-tier meter)
weblate_request_featuremetaRequest a missing feature
weblate_upgrademetaUpgrade to Pro or Pro+
weblate_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per API token)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with weblate_upgrade (it returns a Stripe Checkout link). Cancel any time with weblate_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running weblate_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by Weblate.

Source: servers/weblate/README.md at commit 4046075

Tools

23

weblate_list_projects

List projects

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

Parameterspagepage_size

weblate_get_project

Get project

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

Parametersprojectrequired

weblate_list_components

List components

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

Parameterspageprojectpage_size

weblate_get_component

Get component

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

Parametersprojectrequiredcomponentrequired

weblate_list_translations

List translations

List the translations (one language each) of a component with their statistics: total, translated, fuzzy, percent, last change. GET /api/components/{project}/{component}/translations/.

Parameterspageprojectrequiredcomponentrequiredpage_size

weblate_get_translation

Get translation

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

Parametersprojectrequiredlanguagerequiredcomponentrequired

weblate_get_statistics

Get translation statistics

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

Parameterspageprojectrequiredlanguagecomponentpage_size

weblate_list_project_languages

List project languages

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

Parameterspageprojectrequiredpage_size

weblate_list_languages

List languages

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

Parameterspagepage_size

weblate_list_units

List strings (units)

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

Parametersqpageprojectlanguagecomponentpage_size

weblate_get_unit

Get string (unit)

One string by id: source and target forms, state, context, location, flags, labels, explanation, suggestions/comments flags, web link. GET /api/units/{id}/.

Parametersunit_idrequired

weblate_list_unit_comments

List string comments

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

Parameterspageunit_idrequiredpage_size

weblate_list_suggestions

List suggestions

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

Parameterspageunit_idpage_size

weblate_list_changes

List changes

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.

Parameterspageuseractionprojectlanguagecomponentpage_sizetimestamp_aftertimestamp_before

weblate_search_memory

Search translation memory

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

Parameterspagesourceprojectpage_sizesource_languagetarget_language

weblate_lookup_memory

Look up translation memory

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

Parametersexactprojectstringsrequiredsource_languagerequiredtarget_languagerequired

weblate_get_repository_status

Get repository status

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

Parametersprojectrequiredcomponent

weblate_update_translation

Update a translation

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

Parametersstaterequiredtargetrequiredunit_idrequired

weblate_add_suggestion

Add a suggestion

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

Parameterstargetrequiredunit_idrequired

weblate_accept_suggestion

Accept a suggestion

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

Parametersapprovesuggestion_idrequired

weblate_add_unit_comment

Add a string 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/.

Parametersscopecommentrequiredunit_idrequired

weblate_repository_operation

Run a repository operation

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

Parametersprojectrequiredcomponentoperationrequired

weblate_autotranslate

Run automatic translation

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

Parametersqmodeenginesprojectrequiredlanguagerequiredcomponentrequiredthresholdbackgroundauto_source

Version history

19
  1. v1.23.4LatestNov 7, 2026
  2. v1.22.3Nov 5, 2026
  3. v1.22.2Nov 5, 2026
  4. v1.22.1Nov 4, 2026
  5. v1.22.0Nov 3, 2026
  6. v1.21.1Nov 3, 2026
  7. v1.20.0Nov 1, 2026
  8. v1.18.0Oct 31, 2026
  9. v1.17.0Oct 31, 2026
  10. v1.16.2Oct 30, 2026
  11. v1.16.0Oct 30, 2026
  12. v1.11.0Oct 26, 2026
  13. v1.8.3Oct 25, 2026
  14. v1.8.0Oct 25, 2026
  15. v1.7.0Oct 24, 2026
  16. v1.4.0Oct 23, 2026
  17. v1.3.4Oct 22, 2026
  18. v1.3.3Oct 21, 2026
  19. v1.0.0Oct 12, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations