Polyglot - Model Contexts Protocol for Translation
Polyglot is an open-source implementation of the Model Contexts Protocol (MCP) focused on translation services. It provides a standardized way to handle translation requests across multiple languages using Claude Sonnet 3.5.
Supported Languages
- Arabic (ar)
- Chinese (zh)
- English (en)
- French (fr)
- Russian (ru)
- Spanish (es)
Features
- Standardized translation request format
- Support for multiple domains (legal, medical, general)
- Formality level control (formal/informal)
- Claude Sonnet 3.5 integration
- MCP protocol server (via FastMCP)
- API key authentication
Installation
Using uv (Recommended)
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install the package and its dependencies
uv pip install .
# For development, install with dev dependencies
uv pip install ".[dev]"
Using pip
# Install the package and its dependencies
pip install .
# For development, install with dev dependencies
pip install ".[dev]"
Configuration
- Create a
.envfile in your project root:
ANTHROPIC_API_KEY=your_api_key_here
- Make sure to keep your API key secure and never commit it to version control.
Running the MCP Server
To run the MCP server, use the following command:
uv run polyglot/server.py
This will start the server on the configured port (default: 8001).
Testing the MCP Server
You can test the MCP server using a simple client script. For example, to test the health check resource, create a file named test_client.py with the following content:
import requests
response = requests.get("http://localhost:8001/health")
print(response.text)
Run the test client with:
uv run test_client.py
You should see the output: "Service is healthy".
Environment Variables
Make sure to set your Anthropic API key in a .env file in the project root:
ANTHROPIC_API_KEY=your_api_key_here
Additional Notes
- The server uses the Model Context Protocol (MCP) to expose tools and resources.
- Ensure all dependencies are installed using
uvorpip. - For more details, refer to the project documentation.
Protocol Specification
The translation request follows this JSON structure:
{
"version": "1.0",
"type": "translation_request",
"metadata": {
"source_language": "fr",
"target_language": "en",
"domain": "legal",
"formality": "formal",
"api_key": "your_api_key_here" // Required for authentication
},
"data": {
"text": "Le contrat a été signé hier à Genève."
}
}
Development
To set up the development environment:
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create and activate a virtual environment
uv venv
source .venv/bin/activate # On Unix/macOS
# or
.venv\Scripts\activate # On Windows
# Install development dependencies
uv pip install ".[dev]"
License
MIT License