使用说明
项目简介
本项目 'mcp-server-diceroll' 是一个基于 Model Context Protocol (MCP) 的简单服务器实现。它提供了一个“掷骰子 (roll_dice)”工具,LLM客户端可以通过MCP协议调用该工具来模拟掷骰子,并获取随机数结果。这个项目旨在演示如何使用MCP协议构建一个提供简单工具的服务器。
主要功能点
- 提供掷骰子工具: 通过 'roll_dice' 工具,客户端可以指定骰子的面数和投掷次数,服务器返回掷骰子的结果。
- MCP协议实现: 实现了基本的MCP服务器功能,可以接收和处理来自MCP客户端的 'ListToolsRequest' 和 'CallToolRequest' 请求。
- Stdio传输: 使用标准输入/输出 (Stdio) 作为MCP服务器的传输协议。
安装步骤
- 安装 Node.js: 确保你的系统已安装 Node.js 运行时环境。你可以从 https://nodejs.org/ 下载并安装。
- 克隆仓库: 使用 Git 克隆 'mcp-server-diceroll' 仓库到本地:
git clone https://github.com/shimapon/mcp-server-diceroll.git cd mcp-server-diceroll - 安装依赖: 在仓库目录下,使用 npm 安装项目依赖:
npm install - 启动服务器: 运行以下命令启动 MCP 服务器:
服务器将通过 Stdio 监听来自 MCP 客户端的请求。npm run start
服务器配置
对于 MCP 客户端,你需要配置连接到 'mcp-server-diceroll' 服务器的命令。以下是一个 JSON 格式的配置示例,你需要将其配置到你的 MCP 客户端中。
{ "serverName": "dice-roll", // 服务器名称,与服务器声明的名称一致 "command": "node", // 启动服务器的命令,这里使用 node 运行 JavaScript 文件 "args": ["index.js"] // 启动命令的参数,指定服务器入口文件为 index.js }
配置参数说明:
- 'serverName': 服务器的名称,必须与 'mcp-server-diceroll' 代码中 'Server' 构造函数中定义的 'name' 字段一致,本例中为 '"dice-roll"'。
- 'command': 用于启动服务器进程的命令。由于 'mcp-server-diceroll' 是一个 Node.js 应用,所以这里使用 'node' 命令。请确保 'node' 命令在你的系统 PATH 环境变量中。
- 'args': 传递给启动命令的参数,以数组形式表示。这里指定了服务器的入口文件 'index.js'。
注意: 请根据你的 MCP 客户端的具体配置方法,将上述 JSON 配置信息填入到客户端的服务器配置中。
基本使用方法
- 启动 MCP 客户端和服务器: 首先确保按照上述步骤启动 'mcp-server-diceroll' 服务器,并启动你的 MCP 客户端。客户端会根据配置信息连接到服务器。
- 列出可用工具: 客户端可以发送 'ListToolsRequest' 请求到服务器,查询服务器提供的工具列表。'mcp-server-diceroll' 服务器会返回包含 'roll_dice' 工具的列表。
- 调用掷骰子工具: 客户端可以发送 'CallToolRequest' 请求来调用 'roll_dice' 工具。请求需要包含工具名称 'roll_dice' 和参数。
- 参数示例: 'roll_dice' 工具接受以下参数(均为可选):
- 'faces': 骰子的面数,默认为 6。
- 'rolls': 投掷次数,默认为 1。
- 请求示例 (JSON-RPC 格式):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "name": "roll_dice", "arguments": { "faces": 10, "rolls": 2 } }, "id": 1 }
- 参数示例: 'roll_dice' 工具接受以下参数(均为可选):
- 接收工具调用结果: 服务器会执行 'roll_dice' 工具,并返回包含掷骰子结果的 JSON-RPC 响应。结果会以文本形式包含在 'content' 字段中。
示例结果: 如果客户端发送上述请求,服务器可能会返回如下响应:
{ "jsonrpc": "2.0", "result": { "content": [ { "type": "text", "text": "7 + 3 = 10" } ] }, "id": 1 }
或者 (当 'rolls' 为 1 时):
{ "jsonrpc": "2.0", "result": { "content": [ { "type": "text", "text": "5" } ] }, "id": 1 }
通过以上步骤,你就可以使用 'mcp-server-diceroll' 服务器提供的掷骰子工具,为你的 LLM 应用增加随机数生成的能力。
信息
分类
AI与计算