Oldowan MCP 工具服务器
Oldowan 是 Machina Habilis 框架中的一个核心组件,专注于 Model Context Protocol (MCP) 服务器的实现。它提供了一个基础框架,使开发者能够快速构建和部署 MCP 兼容的工具服务器,为大型语言模型(LLM)提供可调用的功能(工具)。
主要功能点
- 构建自定义工具: 轻松定义和实现符合 MCP 规范的自定义工具逻辑。
- 封装现有 API: 支持通过 OpenAPI 规范将现有的 RESTful API 快速转换为 MCP 工具,使其可供 LLM 调用。
- MCP 协议支持: 基于 MCP SDK 构建,处理标准的 JSON-RPC 请求和响应,实现与 MCP 客户端(如 MachinaAgent)的通信。
- HTTP 传输: 专注于使用 HTTP 作为传输协议,支持无状态部署,方便集成到现代 Web 服务架构中(如 Cloudflare Workers)。
- 安全特性: 支持基于加密签名的工具调用认证,并具备支付门控(payment-gating)相关功能的描述和基础验证(支付本身需额外实现)。
- 能力声明: 服务器可以声明其提供的工具能力,供客户端发现和使用。
安装步骤
Oldowan 是一个 TypeScript 库,通常作为另一个项目(如使用 Machina Habilis 框架的项目)的依赖项进行安装。
- 安装 Bun: 该项目示例使用 Bun 作为运行时和包管理器。请确保您已安装 Bun。
- 克隆仓库: 如果需要查看或运行示例,请克隆 Machina Habilis 仓库:
git clone https://github.com/elite-agents/machina-habilis.git cd machina-habilis - 安装依赖: 在项目根目录或包含 'package.json' 的目录下运行:
bun install
服务器配置
作为一个 MCP 服务器,Oldowan 通常会启动一个 HTTP 服务监听特定端口。MCP 客户端需要知道服务器的网络地址和传输协议才能连接。根据仓库的实现(特别是 'packages/oldowan/src/transport/rest-http.ts'),服务器在指定的端口上提供一个 '/mcp' 端点来接收 JSON-RPC 请求。
MCP 客户端在连接时,可能需要以下配置信息(示例 JSON 结构,具体字段和用法取决于客户端实现):
{ "server name": "Oldowan MCP Server Example", "transport": "http", "address": "http://localhost:8080/mcp", "description": "A sample Oldowan MCP server hosting various tools.", "capabilities": { "tools": {} // 其他支持的能力... } // 对于某些客户端或传输方式(如 Stdio),可能需要指定启动命令和参数 // "command": "bun", // 例如,启动服务器进程的命令 // "args": ["run", "path/to/your/server/script.ts"] // 命令参数,例如指向服务器入口文件 }
说明:
- 'server name': 服务器的友好名称。
- 'transport': 使用的传输协议,此处通常是 'http'。
- 'address': 服务器的网络地址,LLM 客户端将连接到此地址的 '/mcp' 路径。例如,如果在本地 8080 端口运行,地址为 'http://localhost:8080/mcp'。
- 'command', 'args': 这两个字段主要用于客户端需要启动服务器进程的场景(如 Stdio 传输)。对于已运行的 HTTP 服务器,客户端通常只需要 'transport' 和 'address'。此处提供的 'command' 和 'args' 仅是示例,表示如何使用 Bun 运行一个位于 'path/to/your/server/script.ts' 的 Oldowan 服务器脚本。
基本使用方法
作为 MCP 服务器的开发者:
- 定义工具: 使用 'OldowanTool' 类创建工具实例,定义其名称、描述、输入 Schema ('zod' 定义) 和执行逻辑 ('execute' 函数)。
- 实例化服务器: 创建 'OldowanServer' 实例,传入服务器名称、版本和工具列表。
- 启动服务: 将 'OldowanServer' 实例的 Hono 服务器暴露给 HTTP 运行时(如 Bun.serve, Cloudflare Workers 等)监听端口。
作为 MCP 客户端的用户 (例如使用 MachinaAgent):
- 配置连接: 在客户端配置中指定 Oldowan 服务器的 'transport' 和 'address' (或其他必要的配置字段,如上述 JSON 示例所示)。
- 客户端发现/连接: 客户端将连接到指定的服务器地址,获取服务器信息和工具列表。
- 调用工具: LLM 或客户端逻辑可以根据需要调用服务器提供的工具,并传入符合工具 Schema 的参数。服务器将执行工具逻辑并返回结果。对于需要认证或支付的工具,客户端需要在调用参数中包含相应的 'auth' 字段。
示例 (参考 'examples/solana-oldowan-server')
该示例展示了如何使用 Oldowan 构建一个 Solana 相关的工具服务器,包含转移 SOL、铸造 NFT 等工具。您可以通过查看示例代码了解如何定义工具并将其添加到服务器中。
# 在仓库根目录,启动示例服务器 docker compose up --build # 示例服务器通常会运行在指定的本地端口,例如 8080 或 3004,并暴露 /mcp 端点
信息
分类
开发者工具