xliff-mcp-server


Namexliff-mcp-server JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryMCP server for processing XLIFF translation files
upload_time2025-08-13 10:26:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2024 XLIFF MCP Server Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords localization mcp translation xliff
VCS
bugtrack_url
requirements mcp translate-toolkit lxml pydantic
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # XLIFF MCP Server

An MCP (Model Context Protocol) server for processing XLIFF and TMX translation files. This server provides tools for parsing, validating, and manipulating translation files commonly used in localization workflows.

## Features

- **XLIFF Processing**: Parse and extract translation units from XLIFF files
- **TMX Processing**: Parse and extract translation units from TMX files  
- **Tag Preservation**: Special processing mode that preserves inline tags for AI translation
- **Validation**: Validate XLIFF and TMX file formats
- **Translation Replacement**: Replace target translations in XLIFF files

## Installation

### Automatic Setup (Recommended)

```bash
python setup.py
```

### Manual Installation

#### Using pip

```bash
pip install -r requirements.txt
pip install -e .
```

#### Using the install script

```bash
./install.sh  # Unix/Linux/macOS
install.bat   # Windows
```

## Configuration

### For Claude Desktop

Add the server to your Claude Desktop configuration file:

**macOS/Linux**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%AppData%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "xliff-processor": {
      "command": "python",
      "args": ["-m", "xliff_mcp.server"],
      "cwd": "/absolute/path/to/xliff-mcp-server"
    }
  }
}
```

Or if using uv:

```json
{
  "mcpServers": {
    "xliff-processor": {
      "command": "uv",
      "args": ["run", "python", "-m", "xliff_mcp.server"],
      "cwd": "/absolute/path/to/xliff-mcp-server"
    }
  }
}
```

## Available Tools

### process_xliff
Process XLIFF content and extract translation units.

**Parameters:**
- `file_name` (string): Name of the XLIFF file
- `content` (string): XLIFF file content

**Returns:** JSON with translation units including:
- fileName, segNumber, unitId, percent, source, target, srcLang, tgtLang

### process_xliff_with_tags
Process XLIFF preserving inline tags for AI translation.

**Parameters:**
- `file_name` (string): Name of the XLIFF file
- `content` (string): XLIFF file content

**Returns:** JSON with translation units preserving original formatting tags

### validate_xliff
Validate XLIFF content format.

**Parameters:**
- `content` (string): XLIFF file content to validate

**Returns:** JSON with validation status, message, and unit count

### replace_xliff_targets
Replace target translations in XLIFF file.

**Parameters:**
- `content` (string): Original XLIFF file content
- `translations` (string): JSON array of translations with segNumber/unitId and aiResult/mtResult

**Returns:** JSON with updated XLIFF content and replacement count

### process_tmx
Process TMX content and extract translation units.

**Parameters:**
- `file_name` (string): Name of the TMX file
- `content` (string): TMX file content

**Returns:** JSON with translation units including metadata

### validate_tmx
Validate TMX content format.

**Parameters:**
- `content` (string): TMX file content to validate

**Returns:** JSON with validation status and unit count

## Usage Examples

Once configured in Claude Desktop, you can use the tools like this:

1. **Process an XLIFF file:**
   "Please process this XLIFF file and show me the translation units"

2. **Validate XLIFF format:**
   "Can you validate if this XLIFF content is properly formatted?"

3. **Replace translations:**
   "Replace the target translations in this XLIFF file with these new translations"

4. **Process TMX file:**
   "Extract all translation units from this TMX file"

## Development

### Running tests

```bash
python -m pytest tests/
```

### Running the server directly

```bash
python -m xliff_mcp.server
```

## Requirements

- Python 3.10+
- mcp[cli] >= 1.2.0
- translate-toolkit >= 3.0.0
- lxml >= 4.9.0
- pydantic >= 2.0.0

## License

MIT

## Support

For issues and questions, please open an issue on the GitHub repository.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "xliff-mcp-server",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "localization, mcp, translation, xliff",
    "author": null,
    "author_email": "floydy <floydy@langlinking.com>",
    "download_url": "https://files.pythonhosted.org/packages/6f/3b/79dce022f26baa4971181e705fe6c93ca44b6fd5dde34a35e2c5a0fe4059/xliff_mcp_server-0.1.1.tar.gz",
    "platform": null,
    "description": "# XLIFF MCP Server\n\nAn MCP (Model Context Protocol) server for processing XLIFF and TMX translation files. This server provides tools for parsing, validating, and manipulating translation files commonly used in localization workflows.\n\n## Features\n\n- **XLIFF Processing**: Parse and extract translation units from XLIFF files\n- **TMX Processing**: Parse and extract translation units from TMX files  \n- **Tag Preservation**: Special processing mode that preserves inline tags for AI translation\n- **Validation**: Validate XLIFF and TMX file formats\n- **Translation Replacement**: Replace target translations in XLIFF files\n\n## Installation\n\n### Automatic Setup (Recommended)\n\n```bash\npython setup.py\n```\n\n### Manual Installation\n\n#### Using pip\n\n```bash\npip install -r requirements.txt\npip install -e .\n```\n\n#### Using the install script\n\n```bash\n./install.sh  # Unix/Linux/macOS\ninstall.bat   # Windows\n```\n\n## Configuration\n\n### For Claude Desktop\n\nAdd the server to your Claude Desktop configuration file:\n\n**macOS/Linux**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows**: `%AppData%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"xliff-processor\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"xliff_mcp.server\"],\n      \"cwd\": \"/absolute/path/to/xliff-mcp-server\"\n    }\n  }\n}\n```\n\nOr if using uv:\n\n```json\n{\n  \"mcpServers\": {\n    \"xliff-processor\": {\n      \"command\": \"uv\",\n      \"args\": [\"run\", \"python\", \"-m\", \"xliff_mcp.server\"],\n      \"cwd\": \"/absolute/path/to/xliff-mcp-server\"\n    }\n  }\n}\n```\n\n## Available Tools\n\n### process_xliff\nProcess XLIFF content and extract translation units.\n\n**Parameters:**\n- `file_name` (string): Name of the XLIFF file\n- `content` (string): XLIFF file content\n\n**Returns:** JSON with translation units including:\n- fileName, segNumber, unitId, percent, source, target, srcLang, tgtLang\n\n### process_xliff_with_tags\nProcess XLIFF preserving inline tags for AI translation.\n\n**Parameters:**\n- `file_name` (string): Name of the XLIFF file\n- `content` (string): XLIFF file content\n\n**Returns:** JSON with translation units preserving original formatting tags\n\n### validate_xliff\nValidate XLIFF content format.\n\n**Parameters:**\n- `content` (string): XLIFF file content to validate\n\n**Returns:** JSON with validation status, message, and unit count\n\n### replace_xliff_targets\nReplace target translations in XLIFF file.\n\n**Parameters:**\n- `content` (string): Original XLIFF file content\n- `translations` (string): JSON array of translations with segNumber/unitId and aiResult/mtResult\n\n**Returns:** JSON with updated XLIFF content and replacement count\n\n### process_tmx\nProcess TMX content and extract translation units.\n\n**Parameters:**\n- `file_name` (string): Name of the TMX file\n- `content` (string): TMX file content\n\n**Returns:** JSON with translation units including metadata\n\n### validate_tmx\nValidate TMX content format.\n\n**Parameters:**\n- `content` (string): TMX file content to validate\n\n**Returns:** JSON with validation status and unit count\n\n## Usage Examples\n\nOnce configured in Claude Desktop, you can use the tools like this:\n\n1. **Process an XLIFF file:**\n   \"Please process this XLIFF file and show me the translation units\"\n\n2. **Validate XLIFF format:**\n   \"Can you validate if this XLIFF content is properly formatted?\"\n\n3. **Replace translations:**\n   \"Replace the target translations in this XLIFF file with these new translations\"\n\n4. **Process TMX file:**\n   \"Extract all translation units from this TMX file\"\n\n## Development\n\n### Running tests\n\n```bash\npython -m pytest tests/\n```\n\n### Running the server directly\n\n```bash\npython -m xliff_mcp.server\n```\n\n## Requirements\n\n- Python 3.10+\n- mcp[cli] >= 1.2.0\n- translate-toolkit >= 3.0.0\n- lxml >= 4.9.0\n- pydantic >= 2.0.0\n\n## License\n\nMIT\n\n## Support\n\nFor issues and questions, please open an issue on the GitHub repository.",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2024 XLIFF MCP Server Contributors\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.",
    "summary": "MCP server for processing XLIFF translation files",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/langlink-localization/xliff-mcp-server",
        "Issues": "https://github.com/langlink-localization/xliff-mcp-server/issues",
        "Repository": "https://github.com/langlink-localization/xliff-mcp-server"
    },
    "split_keywords": [
        "localization",
        " mcp",
        " translation",
        " xliff"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f5875705e5f51fb9d39f9488611861c245d66df2d0cb440d1e30c3d6ebf1a7a6",
                "md5": "5a2413a98eccb9c6008ac9e9513d7940",
                "sha256": "3f366ab2de0372bcc8e1cec95b47bca6495332e15effdef720da8e2f70803be6"
            },
            "downloads": -1,
            "filename": "xliff_mcp_server-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5a2413a98eccb9c6008ac9e9513d7940",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 14622,
            "upload_time": "2025-08-13T10:25:58",
            "upload_time_iso_8601": "2025-08-13T10:25:58.926734Z",
            "url": "https://files.pythonhosted.org/packages/f5/87/5705e5f51fb9d39f9488611861c245d66df2d0cb440d1e30c3d6ebf1a7a6/xliff_mcp_server-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6f3b79dce022f26baa4971181e705fe6c93ca44b6fd5dde34a35e2c5a0fe4059",
                "md5": "430cce51f141603f99689396f4f8217f",
                "sha256": "9c5192b498d320f1e47ca71db2e811e5927aa219aaba42f903cdcad193c9b7d0"
            },
            "downloads": -1,
            "filename": "xliff_mcp_server-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "430cce51f141603f99689396f4f8217f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 32034,
            "upload_time": "2025-08-13T10:26:00",
            "upload_time_iso_8601": "2025-08-13T10:26:00.266842Z",
            "url": "https://files.pythonhosted.org/packages/6f/3b/79dce022f26baa4971181e705fe6c93ca44b6fd5dde34a35e2c5a0fe4059/xliff_mcp_server-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 10:26:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "langlink-localization",
    "github_project": "xliff-mcp-server",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "mcp",
            "specs": [
                [
                    ">=",
                    "1.2.0"
                ]
            ]
        },
        {
            "name": "translate-toolkit",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "lxml",
            "specs": [
                [
                    ">=",
                    "4.9.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        }
    ],
    "lcname": "xliff-mcp-server"
}
        
Elapsed time: 0.54922s