项目简介

OllamaDrama是一个Java应用,其核心功能是作为LLM(大型语言模型)的客户端封装,提供模型性能比较、集成投票和故障恢复等增强功能。同时,它内部也包含了一个完整的Model Context Protocol (MCP) 服务器实现。该MCP服务器能够托管和执行工具,并以标准化的JSON-RPC协议向LLM客户端提供上下文服务。

主要功能点

  • 工具托管与执行: 作为MCP服务器,它能够注册和执行预定义的工具。目前内置的工具包括:
    • 'get_the_meaning_of_life':返回“生命的意义”。
    • 'get_current_time_in_UTC':返回当前的UTC时间。
    • 'use_hidden_algorithm_with_two_numbers':对两个数字执行一个简单的数学运算('num1 + num2 + 1')。
  • 标准化上下文服务: 通过MCP协议(基于JSON-RPC),LLM客户端可以向服务器发送请求,如获取可用工具列表、调用特定工具,并接收标准化响应。
  • 会话管理与能力声明: 服务器支持客户端的初始化请求,声明其支持的协议版本和能力。
  • 协议支持: 通过HTTP服务器处理MCP协议请求,支持SSE(Server-Sent Events)和直接HTTP响应传输协议。

安装步骤

  1. 克隆仓库: 使用Git将OllamaDrama项目克隆到本地。
    git clone https://github.com/SamuraiMDR/ollamadrama.git
    cd ollamadrama
  2. 构建项目: 使用Maven构建项目。这会编译所有Java代码,包括MCP服务器部分。
    mvn clean package install
    构建成功后,项目将被打包为一个可执行的JAR文件(或作为依赖)。

服务器配置(供MCP客户端参考)

此项目包含一个可嵌入的MCP服务器。当您启动该MCP服务器时,MCP客户端需要以下信息来与其建立连接和交互:

  • 服务器名称: 该服务器在初始化时会声明其名称为 "Samurai MCP Server"。
  • 服务器地址: MCP服务器通常会在本地网络上监听一个特定的端口。例如,如果服务器在本地运行并监听端口 '5656',则其基础URL可能为 'http://localhost:5656'。
  • 通信端口: 客户端需要知道服务器监听的端口,例如 '5656'。
  • 通信路径: 服务器提供 '/sse' 和 '/messages' 路径用于MCP协议通信。客户端通常会连接到这些路径之一。
  • 支持的工具: 客户端可以通过调用 'tools/list' 方法来发现服务器提供的工具及其输入输出规范,当前支持的工具包括 'get_the_meaning_of_life'、'get_current_time_in_UTC' 和 'use_hidden_algorithm_with_two_numbers'。
  • 认证信息: 目前该MCP服务器实现没有内置认证机制,客户端可以直接连接。

基本使用方法

启动该MCP服务器后,例如在端口 '5656' 上,一个LLM客户端(如OllamaDrama自身的客户端部分或其他兼容MCP的客户端)可以按照以下流程与其互动:

  1. 启动MCP服务器: 您可以通过Java代码调用 'ntt.security.ollamadrama.mcp.MCPServer.launchMcpService(5656)' 来启动服务器。
  2. 连接与初始化: 客户端首先向 'http://localhost:5656/sse' 或 'http://localhost:5656/messages' 发送一个 'initialize' 请求,以建立连接并获取服务器的能力信息。
  3. 列出可用工具: 客户端发送 'tools/list' 请求,获取服务器当前托管的所有工具的详细信息,包括工具名称、描述和输入参数。
  4. 调用工具: 根据获取到的工具信息,LLM客户端可以构建 'tools/call' 请求,指定工具名称和必要的参数(例如,调用 'use_hidden_algorithm_with_two_numbers' 并传入 'num1' 和 'num2')。服务器将执行工具逻辑并返回结果。
  5. 接收结果: 服务器会将工具执行结果或错误信息以JSON-RPC响应的形式返回给客户端。

信息

分类

AI与计算