使用说明

项目简介

OmniAI 是一个 Ruby 工具库,旨在为各种 AI 提供商提供统一的接口。其中包含了 Model Context Protocol (MCP) 服务器的实现,允许开发者构建符合 MCP 协议的服务端,为 LLM 应用提供上下文信息和功能支持。

主要功能点

  • 资源管理: 通过工具(Tools)的执行间接管理和访问外部数据资源。
  • 工具注册与执行: 允许注册和执行外部工具,扩展 LLM 的能力,例如示例中的天气查询工具。
  • Prompt 模板: 虽然仓库中没有显式定义 Prompt 模板管理,但其 'chat' 功能和工具的结合使用,可以看作是 Prompt 模板的一种灵活实现方式,支持定制化的 LLM 交互模式。
  • JSON-RPC 通信: 通过 JSON-RPC 协议与 MCP 客户端进行通信,接收请求并返回响应。
  • Stdio 传输协议: 支持 Stdio 传输协议,方便集成和部署。

安装步骤

  1. 安装 OmniAI Gem: 在你的 Ruby 环境中,运行以下命令安装 'omniai' gem:
    gem install omniai
    如果需要使用特定的 AI 提供商功能(例如 OpenAI),还需要安装相应的 provider gem,例如:
    gem install omniai-openai

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 以建立连接。以下是 OmniAI MCP 服务器的基本配置信息,通常情况下无需修改参数:

{
  "serverName": "OmniAI",
  "command": "ruby",
  "args": ["main.rb"]
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,这里设置为 "OmniAI"。
  • 'command': 启动 MCP 服务器的命令,这里使用 'ruby' 命令来执行 'main.rb' 文件。
  • 'args': 启动命令的参数,这里指定执行 'main.rb' 文件。

注意: 你需要将以下“基本使用方法”中创建的 'main.rb' 文件放置在 MCP 客户端能够执行的路径下,并根据实际情况调整 'command' 和 'args' 配置。

基本使用方法

  1. 创建 'main.rb' 文件: 在你的项目目录下,创建一个名为 'main.rb' 的 Ruby 文件,并复制粘贴以下示例代码。这个示例代码创建了一个简单的 MCP 服务器,并注册了一个 'Weather' 工具:

    # main.rb
    require 'omniai'
    
    class Weather < OmniAI::Tool
      description "Lookup the weather for a location"
    
      parameter :location, :string, description: "A location (e.g. 'London' or 'Madrid')."
      required %i[location]
    
      # @param location [String] required
      # @return [String]
      def execute(location:)
        case location
        when 'London' then 'Rainy'
        when 'Madrid' then 'Sunny'
        else 'unknown location=' + location
        end
      end
    end
    
    transport = OmniAI::MCP::Transport::Stdio.new
    mcp = OmniAI::MCP::Server.new(tools: [Weather.new])
    mcp.run(transport:)
  2. 运行 MCP 服务器: 在命令行中,导航到 'main.rb' 文件所在的目录,并执行以下命令启动 MCP 服务器:

    ruby main.rb

    服务器启动后,将监听来自 MCP 客户端的 JSON-RPC 请求。

  3. MCP 客户端发送请求: 使用任何 MCP 客户端,配置上述服务器配置信息,并发送符合 MCP 协议的 JSON-RPC 请求到服务器。例如,发送 'tools/call' 请求调用 'weather' 工具查询伦敦的天气:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": { "name": "weather", "input": { "location": "London" } }
    }

    MCP 服务器将处理请求,执行 'Weather' 工具,并通过 Stdio 将 JSON-RPC 响应返回给客户端。

信息

分类

AI与计算