by mmntm
Connect your project with Weblate for seamless translation management, project tracking, and multilingual workflow optim
Connects AI assistants to Weblate translation management platforms, enabling natural language interaction with translation projects and content.
Weblate is a community-built MCP server published by mmntm that provides AI assistants with tools and capabilities via the Model Context Protocol. Connect your project with Weblate for seamless translation management, project tracking, and multilingual workflow optim It is categorized under productivity.
You can install Weblate in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Weblate is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
We evaluated Weblate against two servers with overlapping tools; this profile had the clearer scope statement.
I recommend Weblate for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Weblate is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
We wired Weblate into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
We evaluated Weblate against two servers with overlapping tools; this profile had the clearer scope statement.
Weblate reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
Weblate has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Weblate has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
According to our notes, Weblate benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Weblate has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
showing 1-10 of 57
A Model Context Protocol (MCP) server that provides seamless integration with Weblate translation management platform. This server enables AI assistants to interact directly with your Weblate instance for comprehensive translation management.
This MCP server acts as a bridge between AI assistants (like Claude Desktop) and your Weblate translation management platform. Instead of manually navigating the Weblate web interface, you can use natural language to:
The easiest way to use this MCP server is with npx - no installation required!
For Claude Desktop or other MCP clients:
{
"mcpServers": {
"weblate": {
"command": "npx",
"args": ["-y", "@mmntm/weblate-mcp"],
"env": {
"WEBLATE_API_URL": "https://your-weblate-instance.com/api",
"WEBLATE_API_TOKEN": "your-weblate-api-token"
}
}
}
}
Manual testing:
# Test the server directly
npx @mmntm/weblate-mcp
# Clone and install
git clone <this-repo>
cd weblate-mcp
pnpm install
# Configure environment
cp .env.example .env
# Edit .env with your Weblate API URL and token
# Build and start
pnpm build
pnpm start
Server runs on http://localhost:3001 by default.
WEBLATE_API_URL=https://your-weblate-instance.com
WEBLATE_API_TOKEN=your-api-token-here
PORT=3001
NODE_ENV=production
LOG_LEVEL=info
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"weblate": {
"command": "npx",
"args": ["-y", "@mmntm/weblate-mcp"],
"env": {
"WEBLATE_API_URL": "https://your-weblate-instance.com/api",
"WEBLATE_API_TOKEN": "your-weblate-api-token"
}
}
}
}
For development or local builds:
{
"mcpServers": {
"weblate": {
"command": "node",
"args": ["/path/to/weblate-mcp/dist/main.js"],
"env": {
"WEBLATE_API_URL": "https://your-weblate-instance.com/api",
"WEBLATE_API_TOKEN": "your-api-token"
}
}
}
}
{
"transport": "http",
"url": "http://localhost:3001/mcp"
}
| Tool | Description |
|---|---|
listProjects | List all available Weblate projects with URLs and metadata |
| Tool | Description |
|---|---|
listComponents | List components in a specific project with source language details |
| Tool | Description |
|---|---|
searchUnitsWithFilters ⭐ | Efficient search using Weblate's native filtering syntax |
searchStringInProject | Search for translations containing specific text in a project |
getTranslationForKey | Get translation value for a specific key |
writeTranslation | Update or write translation values with approval support |
bulkWriteTranslations ⚡ | Batch update multiple translations efficiently with error handling |
findTranslationsForKey | Find all translations for a specific key across languages |
The searchUnitsWithFilters tool uses Weblate's native filtering syntax, making it the most efficient way to find translations:
Example efficient queries:
state:=0 - Find untranslated stringsstate:=10 - Find strings that need editingsource:"login" - Find strings containing "login"component:common AND state:=0 - Complex filters| Tool | Description |
|---|---|
listLanguages | List languages available in a specific project |
| Tool | Description |
|---|---|
getProjectStatistics | Comprehensive project statistics with completion rates and string counts |
getComponentStatistics | Detailed statistics for a specific component |
getProjectDashboard | Complete dashboard overview with all component statistics |
getTranslationStatistics | Statistics for specific translation (project/component/language) |
getComponentLanguageProgress | Translation progress for all languages in a component with progress bars |
getLanguageStatistics | Statistics for a language across all projects |
getUserStatistics | User contribution statistics and activity metrics |
| Tool | Description |
|---|---|
listRecentChanges | Recent changes across all projects with user and timestamp filtering |
getProjectChanges | Recent changes for a specific project |
getComponentChanges | Recent changes for a specific component |
getChangesByUser | Recent changes by a specific user |
// List all projects
await list_projects();
// Get specific project details
await get_project({ slug: "my-project" });
// Create a new project
await create_project({
name: "New Project",
slug: "new-project",
web: "https://example.com"
});
// List translations for a component
await list_translations({
project_slug: "my-project",
component_slug: "frontend"
});
// Get specific translation
await get_translation({
project_slug: "my-project",
component_slug: "frontend",
language_code: "fr"
});
// Update translations
await update_translation({
project_slug: "my-project",
component_slug: "frontend",
language_code: "fr",
translations: {
"welcome": "Bienvenue",
"goodbye": "Au revoir"
}
});
| Document | Description |
|---|---|
| 📖 Documentation Hub | Complete documentation overview and quick start |
| 🚀 Installation & Setup | Installation, configuration, and Claude Desktop setup |
| 📋 API Reference | Complete API documentation with examples |
| 🛠️ Development Guide | Contributing, development setup, and testing |
| 🏗️ Architecture | Codebase structure, patterns, and design decisions |
| 📦 Release Process | Release management and publishing workflow |
| 🔄 Changesets Guide | Version management with changesets |
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP Client │───▶│ Weblate MCP │───▶│ Weblate API │
│ (IDE/Editor) │ │ Server │ │ (REST API) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ MCP Tools │
│ • Projects │
│ • Components │
│ • Translations │
│ • Languages │
└──────────────────┘
Technology Stack:
# Start development server with hot reload
pnpm run dev
# Run tests
pnpm test
# Run end-to-end tests
pnpm run test:e2e
# Generate test coverage
pnpm run test:cov
# Build for production
pnpm build
src/tools/See Development Guide for detailed instructions.
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.