翻译服务

基于MCP HTTP SSE协议的翻译服务,支持Google翻译和百度翻译,适用于需要多语言翻译的场景。

  • by baggiogan2000
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 baggiogan2000/translate-mcp-server

使用说明

Translate MCP Server

基于 MCP (Model Context Protocol) HTTP SSE 协议的翻译服务,支持 Google 翻译和百度翻译。

功能特性

  • 支持 Google 翻译(优先)和百度翻译(备用)
  • 支持 LLM 指定渠道翻译,如 "baidu 文本" 或 "文本 baidu" 使用百度渠道,"google 文本" 或 "文本 google" 使用 Google 渠道
  • MCP HTTP SSE 协议兼容
  • Docker 容器化部署
  • 支持代理配置
  • 智能 TKK 更新机制

快速开始

Docker 部署

  1. 构建镜像
docker build -t translate-mcp .
  1. 运行容器
docker run -d \
  -p 38089:38089 \
  -e TRANSLATE_PROXY="your-proxy:port" \
  -e HTTP_PROXY=http://your-proxy:port \
  -e HTTPS_PROXY=http://your-proxy:port \
  --name translate-mcp \
  translate-mcp
  1. 验证服务
# 测试 SSE 连接
curl -N -H "Accept: text/event-stream" http://localhost:38089/sse

# 输出示例:
# event: endpoint
# data: /messages/?session_id=xxx

环境变量

变量名 说明 必填
TRANSLATE_PROXY 翻译服务代理地址 否
HTTP_PROXY HTTP 代理 否
HTTPS_PROXY HTTPS 代理 否
BAIDU_TRANSLATE_APPID 百度翻译 App ID 否
BAIDU_TRANSLATE_SECRET_KEY 百度翻译密钥 否

AI 工具配置 MCP

Trae IDE 配置

在 Trae IDE 的 MCP 设置中添加以下配置:

{
  "mcpServers": {
    "translate": {
      "type": "sse",
      "url": "http://localhost:38089/sse"
    }
  }
}

Claude Desktop 配置

在 Claude Desktop 配置文件中添加:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "translate": {
      "type": "sse",
      "url": "http://localhost:38089/sse"
    }
  }
}

其他支持 MCP 的 AI 工具

对于支持 MCP HTTP SSE 协议的 AI 工具,配置方式类似:

  1. 服务类型: sse 或 http-sse
  2. SSE 端点: http://your-server:38089/sse
  3. 消息端点: http://your-server:38089/messages/

MCP 工具说明

translate

翻译文本到目标语言。

参数:

  • text (必填): 待翻译的文本
  • target (可选): 目标语言代码,默认 zh

支持的语言代码:

  • zh - 中文
  • en - 英文
  • ja - 日语
  • ko - 韩语
  • fr - 法语
  • de - 德语
  • es - 西班牙语
  • 等等...

示例调用:

  1. 默认翻译(先 Google 后百度)
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "translate",
    "arguments": {
      "text": "Hello world",
      "target": "zh"
    }
  }
}
  1. 指定百度渠道
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "translate",
    "arguments": {
      "text": "Hello world",
      "target": "zh",
      "channel": "baidu"
    }
  }
}
  1. 指定 Google 渠道
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "translate",
    "arguments": {
      "text": "Hello world",
      "target": "zh",
      "channel": "google"
    }
  }
}
  1. 通过文本前缀指定渠道
{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "translate",
    "arguments": {
      "text": "baidu Hello world",
      "target": "zh"
    }
  }
}
  1. 通过文本后缀指定渠道
{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "tools/call",
  "params": {
    "name": "translate",
    "arguments": {
      "text": "Hello world google",
      "target": "zh"
    }
  }
}

响应:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"originalText\":\"Hello world\",\"originalLanguageCode\":\"en\",\"targetText\":\"你好世界\",\"targetLanguageCode\":\"zh\"}"
      }
    ],
    "isError": false
  }
}

本地开发

# 安装依赖
pip install requests urllib3

# 运行服务
python sse_server.py

# 或使用代理
TRANSLATE_PROXY="192.168.1.1:7890" python sse_server.py

项目结构

translate/
├── sse_server.py          # MCP SSE 服务器
├── GoogleTranslator.py    # Google 翻译实现
├── BaiduTranslator.py     # 百度翻译实现
├── TranslationManager.py  # 翻译管理器
├── Dockerfile             # Docker 构建文件
├── start.sh               # 启动脚本
├── requirements.txt       # Python 依赖
└── README.md              # 本文档

协议规范

本项目遵循 MCP HTTP SSE 传输协议:

  1. 客户端通过 GET /sse 建立 SSE 连接
  2. 服务器发送 endpoint 事件,包含消息端点 URL
  3. 客户端通过 POST /messages/ 发送 JSON-RPC 请求
  4. 服务器返回 HTTP 202 Accepted,响应通过 SSE 推送

致谢

本项目的 Google 翻译实现基于 VictorZhang2014/free-google-translate 项目源码,感谢原作者的开源贡献。

许可证

MIT License