productivity

Weblate

by mmntm

Connect your project with Weblate for seamless translation management, project tracking, and multilingual workflow optim

Integrates with Weblate translation management systems to provide project and component management, translation operations, change tracking, and statistical reporting for multilingual application development workflows.

github stars

12

Natural language Weblate interactionFull Weblate REST API accessTypeScript with error handling

best for

  • / Localization teams managing multilingual applications
  • / Developers integrating translation workflows
  • / Project managers tracking translation progress

capabilities

  • / Manage translation projects and components
  • / Update and search translations
  • / Track translation changes and statistics
  • / List and configure supported languages
  • / Create new translation projects
  • / Query project status and progress

what it does

Connects AI assistants to Weblate translation management platforms, enabling natural language interaction with translation projects and content.

about

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.

how to install

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.

license

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.

readme

Weblate MCP Server

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.

🌟 Features

  • 🔧 Complete Weblate API Access: Full integration with Weblate's REST API
  • 🤖 AI-Powered Workflow: Natural language interaction with your translation projects
  • 📊 Project Management: Create, list, and manage translation projects
  • 🔍 Component Operations: Handle translation components and configurations
  • ✏️ Translation Management: Update, search, and manage translations
  • 🌐 Language Support: Work with all supported languages in your Weblate instance
  • 🚀 Multiple Transports: HTTP/SSE, Streamable HTTP, and STDIO support
  • 🛡️ Type Safety: Full TypeScript implementation with comprehensive error handling
  • ⚡ LLM-Optimized: Tools designed to guide AI models toward efficient usage patterns

🎯 What is This?

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:

  • "List all projects in my Weblate instance"
  • "Show me the French translations for the frontend component"
  • "Update the welcome message translation"
  • "Create a new translation project"

🚀 Quick Start

Option 1: Use with npx (Recommended)

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

Option 2: Development Setup

Prerequisites

  • Node.js 18+
  • pnpm package manager
  • Weblate instance with API access

Installation

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

Environment Configuration

WEBLATE_API_URL=https://your-weblate-instance.com
WEBLATE_API_TOKEN=your-api-token-here
PORT=3001
NODE_ENV=production
LOG_LEVEL=info

🔗 MCP Client Configuration

Claude Desktop (npx method - Recommended)

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"
      }
    }
  }
}

Claude Desktop (Development/Local)

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"
      }
    }
  }
}

HTTP Clients (Cursor, VS Code, Web Apps)

{
  "transport": "http",
  "url": "http://localhost:3001/mcp"
}

🛠️ Available Tools

📊 Project Management

ToolDescription
listProjectsList all available Weblate projects with URLs and metadata

🔧 Component Management

ToolDescription
listComponentsList components in a specific project with source language details

✏️ Translation Management

ToolDescription
searchUnitsWithFiltersEfficient search using Weblate's native filtering syntax
searchStringInProjectSearch for translations containing specific text in a project
getTranslationForKeyGet translation value for a specific key
writeTranslationUpdate or write translation values with approval support
bulkWriteTranslationsBatch update multiple translations efficiently with error handling
findTranslationsForKeyFind all translations for a specific key across languages

🚀 Why searchUnitsWithFilters is Recommended

The searchUnitsWithFilters tool uses Weblate's native filtering syntax, making it the most efficient way to find translations:

  • ❌ Inefficient: Getting all keys then checking each one individually (can make thousands of API calls)
  • ✅ Efficient: Single filtered search using Weblate's query syntax

Example efficient queries:

  • state:=0 - Find untranslated strings
  • state:=10 - Find strings that need editing
  • source:"login" - Find strings containing "login"
  • component:common AND state:=0 - Complex filters

🌐 Language Management

ToolDescription
listLanguagesList languages available in a specific project

📊 Translation Statistics Dashboard

ToolDescription
getProjectStatisticsComprehensive project statistics with completion rates and string counts
getComponentStatisticsDetailed statistics for a specific component
getProjectDashboardComplete dashboard overview with all component statistics
getTranslationStatisticsStatistics for specific translation (project/component/language)
getComponentLanguageProgressTranslation progress for all languages in a component with progress bars
getLanguageStatisticsStatistics for a language across all projects
getUserStatisticsUser contribution statistics and activity metrics

📈 Change Tracking & History

ToolDescription
listRecentChangesRecent changes across all projects with user and timestamp filtering
getProjectChangesRecent changes for a specific project
getComponentChangesRecent changes for a specific component
getChangesByUserRecent changes by a specific user

💡 Usage Examples

Project Operations

// 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"
});

Translation Operations

// 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"
  }
});

📚 Documentation

DocumentDescription
📖 Documentation HubComplete documentation overview and quick start
🚀 Installation & SetupInstallation, configuration, and Claude Desktop setup
📋 API ReferenceComplete API documentation with examples
🛠️ Development GuideContributing, development setup, and testing
🏗️ ArchitectureCodebase structure, patterns, and design decisions
📦 Release ProcessRelease management and publishing workflow
🔄 Changesets GuideVersion management with changesets

🏗️ Architecture

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   MCP Client    │───▶│  Weblate MCP     │───▶│  Weblate API    │
│  (IDE/Editor)   │    │     Server       │    │   (REST API)    │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌──────────────────┐
                       │   MCP Tools      │
                       │ • Projects       │
                       │ • Components     │
                       │ • Translations   │
                       │ • Languages      │
                       └──────────────────┘

Technology Stack:

  • NestJS: Modern Node.js framework with dependency injection
  • TypeScript: Full type safety and IntelliSense support
  • Weblate REST API: Comprehensive API wrapper with interfaces
  • MCP Protocol: Standard Model Context Protocol implementation
  • Axios: HTTP client for API communication

🧪 Development

Development Setup

# 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

Adding New Tools

  1. Create tool file in src/tools/
  2. Implement MCP tool interface
  3. Add to service providers
  4. Write tests
  5. Update documentation

See Development Guide for detailed instructions.

🎯 Use Cases

Translation Management

  • Project oversight: Monitor translation progress across projects
  • Content updates: Update translations programmatically
  • Quality assurance: Review and approve translations
  • Team coordination: Manage translation workflows

Development Integration

  • CI/CD pipelines: Automate translation updates in deployment
  • Content management: Sync translations with content systems
  • Localization testing: Validate translations in different contexts
  • **Docume

FAQ

What is the Weblate MCP server?
Weblate is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
How do MCP servers relate to agent skills?
Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
How are reviews shown for Weblate?
This profile displays 10 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.5 out of 5—verify behavior in your own environment before production use.
MCP server reviews

Ratings

4.510 reviews
  • Shikha Mishra· Oct 10, 2024

    Weblate is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.

  • Piyush G· Sep 9, 2024

    We evaluated Weblate against two servers with overlapping tools; this profile had the clearer scope statement.

  • Chaitanya Patil· Aug 8, 2024

    Useful MCP listing: Weblate is the kind of server we cite when onboarding engineers to host + tool permissions.

  • Sakshi Patil· Jul 7, 2024

    Weblate reduced integration guesswork — categories and install configs on the listing matched the upstream repo.

  • Ganesh Mohane· Jun 6, 2024

    I recommend Weblate for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.

  • Oshnikdeep· May 5, 2024

    Strong directory entry: Weblate surfaces stars and publisher context so we could sanity-check maintenance before adopting.

  • Dhruvi Jain· Apr 4, 2024

    Weblate has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.

  • Rahul Santra· Mar 3, 2024

    According to our notes, Weblate benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.

  • Pratham Ware· Feb 2, 2024

    We wired Weblate into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.

  • Yash Thakker· Jan 1, 2024

    Weblate is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.