Evaluate machine translation quality with xCOMET scores, severity-labeled errors, batch processing, and optional GPU inference.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Xcomet MCP Server.
ๆฅๆฌ่ช็ README ใฏใใกใ
โ ๏ธ This is an unofficial community project, not affiliated with Unbabel.
Translation quality evaluation MCP Server powered by xCOMET (eXplainable COMET).
xCOMET MCP Server provides AI agents with the ability to evaluate machine translation quality. It integrates with the xCOMET model from Unbabel to provide:
xCOMET requires Python with several packages. We recommend using a virtual environment:
Why Python 3.9-3.12?
unbabel-cometdeclaresnumpy = "^1.20.0", so it resolves numpy 1.x. The last numpy 1.x release, 1.26.4, ships wheels for cp39-cp312 only. On Python 3.13 or later, pip has to build numpy from source.
Note (v0.5.0+): The Python worker now talks to Node.js over stdin/stdout (line-delimited JSON-RPC). FastAPI, uvicorn, and pydantic are no longer required โ only
unbabel-cometis.
Note: When using with Claude Desktop or other MCP hosts, set
XCOMET_PYTHON_PATHto point to the venv Python (see Configuration).
Important: XCOMET-XL and XCOMET-XXL are gated models on HuggingFace. You must:
Create a HuggingFace account
Visit Unbabel/XCOMET-XL and request access
Authenticate, either via the CLI:
(
huggingface-cli loginstill works but prints a deprecation warning since huggingface_hub 0.34;hfis the current command.)Or by setting
HF_TOKENin the MCP host'senvblock, which is the option when the host launches the server in an environment where no CLI login has been performed:huggingface_hub reads
HF_TOKENfirst and falls back to the token file written byhf auth login.
Unbabel/wmt22-comet-dadoes not require authentication (but requires reference translations).
After authentication, download the model (~14GB for XL, ~42GB for XXL):
Not in the virtualenv. The venv holds the Python packages; the model weights go to the huggingface_hub cache, which is a separate directory shared by every tool on the machine that pulls from the Hub.
download_model() passes cache_dir=None to snapshot_download(), so
huggingface_hub picks the location: HF_HUB_CACHE, which defaults to
HF_HOME/hub, where HF_HOME defaults to $XDG_CACHE_HOME/huggingface
(~/.cache/huggingface when XDG_CACHE_HOME is unset).
Three consequences worth knowing:
hf cache scan to see what is actually on disk, and hf cache delete to
remove a revision.To put the checkpoint somewhere else โ a larger volume, a shared drive โ set
XCOMET_SAVING_DIRECTORY (v0.7.0+) or the standard HF_HOME. Both are read at
download time, so a model already downloaded to the default location is not
moved; it is downloaded again into the new one.
engines.node in package.json; CI runs on 22 and 24)Note: If you just want to use xCOMET MCP Server, you do not need to clone this repository. Install the Python environment and model (see Prerequisites), then use
npx(see Usage). The section below is for contributors and local development only.
For contributors and local development:
Add to your Claude Desktop configuration (claude_desktop_config.json):
Tip: If you installed Python packages system-wide or use pyenv,
XCOMET_PYTHON_PATHmay be omitted (auto-detection will find it). See Python Path Auto-Detection for details.
If you prefer installing globally:
Then configure:
If you cloned and built the repository locally (see Installation):
xcomet_evaluateEvaluate translation quality for a single source-translation pair.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
source | string | โ | Original source text |
translation | string | โ | Translated text to evaluate |
reference | string | โ | Reference translation |
source_lang | string | โ | Source language code (ISO 639-1) |
target_lang | string | โ | Target language code (ISO 639-1) |
response_format | "json" | "markdown" | โ | Output format (default: "json") |
use_gpu | boolean | โ | Use GPU for inference (default: false) |
Example:
Response:
xcomet_detect_errorsFocus on detecting and categorizing translation errors.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
source | string | โ | Original source text |
translation | string | โ | Translated text to analyze |
reference | string | โ | Reference translation |
min_severity | "minor" | "major" | "critical" | โ | Minimum severity (default: "minor") |
response_format | "json" | "markdown" | โ | Output format |
use_gpu | boolean | โ | Use GPU for inference (default: false) |
xcomet_batch_evaluateEvaluate multiple translation pairs in a single request.
Performance Note: With the persistent server architecture (v0.3.0+), the model stays loaded in memory. Batch evaluation processes all pairs efficiently without reloading the model.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/shuji-bonji-xcomet-mcp-server)<a href="https://allmcps.com/mcp/shuji-bonji-xcomet-mcp-server"><img src="https://allmcps.com/api/badge/shuji-bonji-xcomet-mcp-server?style=directory" alt="Xcomet MCP Server on AllMCPs" /></a>