使用说明
项目简介
OmniAI 是一个 Ruby 工具库,旨在为各种 AI 提供商提供统一的接口。其中包含了 Model Context Protocol (MCP) 服务器的实现,允许开发者构建符合 MCP 协议的服务端,为 LLM 应用提供上下文信息和功能支持。
主要功能点
- 资源管理: 通过工具(Tools)的执行间接管理和访问外部数据资源。
- 工具注册与执行: 允许注册和执行外部工具,扩展 LLM 的能力,例如示例中的天气查询工具。
- Prompt 模板: 虽然仓库中没有显式定义 Prompt 模板管理,但其 'chat' 功能和工具的结合使用,可以看作是 Prompt 模板的一种灵活实现方式,支持定制化的 LLM 交互模式。
- JSON-RPC 通信: 通过 JSON-RPC 协议与 MCP 客户端进行通信,接收请求并返回响应。
- Stdio 传输协议: 支持 Stdio 传输协议,方便集成和部署。
安装步骤
- 安装 OmniAI Gem:
在你的 Ruby 环境中,运行以下命令安装 'omniai' gem:
如果需要使用特定的 AI 提供商功能(例如 OpenAI),还需要安装相应的 provider gem,例如:gem install omniaigem 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' 配置。
基本使用方法
-
创建 '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:) -
运行 MCP 服务器: 在命令行中,导航到 'main.rb' 文件所在的目录,并执行以下命令启动 MCP 服务器:
ruby main.rb服务器启动后,将监听来自 MCP 客户端的 JSON-RPC 请求。
-
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与计算