翻译服务器

基于Spring Boot和Spring AI构建的MCP服务器,利用本地Ollama实例提供翻译功能。

  • by arthurstrokov
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 arthurstrokov/translate-mcp-server

使用说明

翻译mcp服务器

使用Spring Boot和Spring AI构建的模型上下文协议(MCP)服务器,使用 当地Ollama的一个例子。

概述

此项目实现了一个公开翻译工具的MCP服务器。它利用Spring AI的MCP支持,并使用 translategemma 通过Ollama进行高质量翻译。

需求

  • Java 25:该项目配置为使用Java 25。
  • 奥拉玛:本地Ollama实例必须正在运行。
  • translategemma模型:您需要提取用于翻译的特定模型。
  • Gradle:用作构建工具(包括包装器)。

设置

  1. 安装Ollama:按照以下说明操作 ollama.com.
  2. 拉动翻译模型:
    ollama pull translategemma:latest
    
  3. 验证Ollama:确保Olama正在运行 http://localhost:11434.

构建并运行

构建项目

./gradlew build

运行服务器

./gradlew bootRun

注意:应用程序需要 --enable-native-access=ALL-UNNAMED,已在中预先配置 build.gradle.

清理建筑

./gradlew clean

测试

运行所有测试

./gradlew test

运行特定的测试类

./gradlew test --tests "OllamaChatClientServiceTest"

测试类型

  • 单元测试 (OllamaChatClientServiceTest, TranslateToolTest):使用Mockito来模拟依赖关系。无需外部服务即可运行。
  • 集成测试 (TranslationIntegrationTest):需要一个正在运行的Ollama实例 translategemma:latest 模型。

配置

应用程序通过以下方式配置 src/main/resources/application.yml关键配置包括:

  • 来源基地 URL: http://localhost:11434
  • 模型: translategemma:latest (通过配置 spring.ai.ollama.chat.model)
  • 服务器端口: 8080
  • 日志记录:详细日志 com.gmail.arthurstrokov MCP协议在以下位置启用 DEBUG 水平。
  • 提示模板:通过配置翻译提示 app.prompt.translate 财产。

环境变量

目前,该应用程序依赖于 application.yml。您可以使用标准的Spring Boot环境覆盖这些 变量(如果需要):

  • SPRING_AI_OLLAMA_BASE_URL:Ollama的基本URL。
  • SPRING_AI_OLLAMA_CHAT_MODEL:使用Olama模型。

项目结构

  • src/main/java/.../configuration/:ChatClient和MCP工具的Spring配置。
  • src/main/java/.../service/:核心翻译逻辑(OllamaChatClientService 实现 ChatClientService).
  • src/main/java/.../tool/:MCP工具定义使用 @Tool 注释。
  • src/main/resources/:配置文件,包括提示模板。
  • src/test/java/.../:单元测试(基于Mockito)和集成测试(@SpringBootTest).

MCP工具

服务器公开了以下工具:

  • translate:翻译提供的文本。
    • 参数: text (待翻译文本)。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。