翻译服务协议服务器

一个支持Azure翻译服务、具备EntraID认证、Blob存储持久化和OneDrive集成的模型上下文协议(MCP)服务器。

  • by PlumyCat
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 PlumyCat/translator-mcp

使用说明

Azure翻译MCP服务器

用于Azure翻译服务的模型上下文协议(MCP)服务器,具有EntraID身份验证、Blob存储持久性和OneDrive for Business集成。

特性

  • Azure翻译集成:完全支持文本翻译、语言检测和支持的语言列表
  • 文档翻译:使用Azure Translator document API完成文档翻译工作流,支持.docx、.xlsx、.pptx、.pdf、.html、.txt、.rtf、.odt、.ods、.odp、.xlf和.xliff格式
  • EntraID身份验证:使用Microsoft Entra ID(以前称为Azure AD)进行安全身份验证
  • Blob存储持久性:使用TTL存储翻译历史记录、术语表和临时文档处理(1小时)
  • OneDrive集成:将翻译和翻译后的文档直接保存到用户的OneDrive for Business
  • SAS URL生成:为1小时到期的翻译文件提供安全的下载链接
  • MCP协议:通过工具、资源和提示全面实施MCP

先决条件

  • Node.js 18或更高版本
  • Azure订阅,包括以下服务:
    • Azure翻译服务
    • Azure存储帐户(用于Blob存储)
    • Microsoft Entra ID应用程序注册
  • 使用OneDrive for Business的Microsoft 365帐户

安装

  1. 克隆存储库:
git clone https://github.com/yourusername/translator-mcp.git
cd translator-mcp
  1. 安装依赖项:
npm install
  1. 配置环境变量:
cp .env.example .env
# Edit .env with your Azure credentials
  1. 构建项目:
npm run build

配置

环境变量

创建一个 .env 文件基于 .env.example:

# Azure Translator
AZURE_TRANSLATOR_ENDPOINT=https://api.cognitive.microsofttranslator.com
AZURE_TRANSLATOR_SUBSCRIPTION_KEY=your-translator-key
AZURE_TRANSLATOR_REGION=your-region

# Azure EntraID (formerly Azure AD)
AZURE_CLIENT_ID=your-client-id
AZURE_TENANT_ID=your-tenant-id
AZURE_CLIENT_SECRET=your-client-secret
AZURE_AUTHORITY=https://login.microsoftonline.com/your-tenant-id

# Azure Blob Storage
AZURE_STORAGE_CONNECTION_STRING=your-storage-connection-string
AZURE_STORAGE_CONTAINER_NAME=translations

# Server Configuration
PORT=3000
NODE_ENV=development

Azure安装程序

  1. 创建Azure翻译资源:

    • 转到Azure门户>创建资源>AI+机器学习>翻译器
    • 复制终结点和订阅密钥
  2. 注册Entra ID申请:

    • 转到Azure门户>Microsoft Entra ID>应用程序注册
    • 创建新注册
    • 为Microsoft Graph添加API权限(Files.ReadWrite.All,User.Read)
    • 创建客户端密钥
  3. 创建存储帐户:

    • 转到Azure门户>创建资源>存储>存储帐户
    • 从Access密钥复制连接字符串

用法

发展

在开发模式下启动服务器:

npm run dev

生产

构建并启动服务器:

npm run build
npm start

使用克劳德代码

添加到Claude代码配置:

claude mcp add translator-dev --transport stdio -- npm run dev

MCP工具

服务器提供以下MCP工具:

翻译工具

  • translate_text:将文本翻译成指定语言
  • detect_language:检测输入文本的语言
  • get_supported_languages:列出所有支持的语言

文档翻译(同步)

  • translate_document:使用Azure Translator Document API翻译完整文档(Word、PDF、Excel等)并保存到OneDrive

文档翻译(异步-用于Copilot Studio)

  • start_document_translation:启动文档翻译作业并返回用于监视的作业ID
  • check_translation_status:按作业ID检查文档翻译作业的状态
  • get_translation_result:通过下载链接获取已完成文档翻译作业的结果

异步工作流: 在Copilot Studio中使用异步工具防止超时:

  1. start_document_translation → 获取作业ID
  2. check_translation_status → 监控进度(重复直到“完成”)
  3. get_translation_result → 下载翻译文档

存储工具

  • list_onedrive_files:列出OneDrive文件夹中的文件

MCP资源

  • translation://history:访问翻译历史记录
  • translation://glossary:访问自定义术语表

MCP提示

  • translate:交互式翻译提示
  • document-workflow:文档翻译工作流程

测试

运行单元测试:

npm test

运行覆盖率测试:

npm run test:coverage

运行E2E测试:

npm run test:e2e

部署

地方发展

在本地启动服务器:

npm run dev

码头工人

使用Docker构建和运行:

docker build -t translator-mcp .
docker run -p 3530:3530 --env-file .env translator-mcp

Azure容器应用

使用Azure Developer CLI部署到Azure容器应用程序:

  1. 先决条件:

  2. 登录Azure:

    az login
    
  3. 部署:

    npm run deploy
    

部署将创建:

  • 容器应用程序环境
  • 容器注册表
  • 应用洞察
  • 秘密密钥库
  • 用于安全身份验证的托管身份
  • Azure翻译服务(可选,可以使用现有)
  • 持久性存储帐户(可选,可以使用现有)

有关详细的部署选项和配置,请参阅 scripts/README.md.

建筑

src/
├── server.ts              # Main MCP server
├── auth/                  # Authentication modules
│   └── EntraIdAuth.ts     # Entra ID authentication
├── services/              # Azure service integrations
│   ├── TranslatorService.ts    # Azure Translator client
│   ├── BlobStorageService.ts   # Blob Storage client
│   └── OneDriveService.ts      # OneDrive integration
├── tools/                 # MCP tools
│   ├── translation/       # Translation tools
│   └── onedrive/          # OneDrive tools
└── types/                 # TypeScript definitions

安全

  • 所有Azure凭据都存储为环境变量
  • EntraID身份验证用于安全访问
  • 为生产部署提供托管身份支持
  • 自动处理令牌刷新

贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试
  5. 提交拉取请求

许可证

麻省理工学院

支持

有关问题和疑问,请使用GitHub问题页面。

致谢

基于 Microsoft MCP服务器示例