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帐户
安装
- 克隆存储库:
git clone https://github.com/yourusername/translator-mcp.git
cd translator-mcp- 安装依赖项:
npm install- 配置环境变量:
cp .env.example .env
# Edit .env with your Azure credentials- 构建项目:
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=developmentAzure安装程序
- 创建Azure翻译资源:
- 转到Azure门户>创建资源>AI+机器学习>翻译器 - 复制终结点和订阅密钥
- 注册Entra ID申请:
- 转到Azure门户>Microsoft Entra ID>应用程序注册 - 创建新注册 - 为Microsoft Graph添加API权限(Files.ReadWrite.All,User.Read) - 创建客户端密钥
- 创建存储帐户:
- 转到Azure门户>创建资源>存储>存储帐户 - 从Access密钥复制连接字符串
用法
发展
在开发模式下启动服务器:
npm run dev生产
构建并启动服务器:
npm run build
npm start使用克劳德代码
添加到Claude代码配置:
claude mcp add translator-dev --transport stdio -- npm run devMCP工具
服务器提供以下MCP工具:
翻译工具
translate_text:将文本翻译成指定语言detect_language:检测输入文本的语言get_supported_languages:列出所有支持的语言
文档翻译(同步)
translate_document:使用Azure Translator Document API翻译完整文档(Word、PDF、Excel等)并保存到OneDrive
文档翻译(异步-用于Copilot Studio)
start_document_translation:启动文档翻译作业并返回用于监视的作业IDcheck_translation_status:按作业ID检查文档翻译作业的状态get_translation_result:通过下载链接获取已完成文档翻译作业的结果
异步工作流: 在Copilot Studio中使用异步工具防止超时:
start_document_translation→ 获取作业IDcheck_translation_status→ 监控进度(重复直到“完成”)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-mcpAzure容器应用
使用Azure Developer CLI部署到Azure容器应用程序:
- 先决条件:
- Azure命令行界面 - Azure开发者命令行界面(azd)
- 登录Azure:
az login- 部署:
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身份验证用于安全访问
- 为生产部署提供托管身份支持
- 自动处理令牌刷新
贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 运行测试
- 提交拉取请求
许可证
麻省理工学院
支持
有关问题和疑问,请使用GitHub问题页面。
