使用说明

项目简介

Dice Server MCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,专门为 LLM 客户端提供掷骰子相关的功能。通过此服务器,LLM 可以方便地调用工具来模拟单次或多次骰子投掷,并获取掷骰结果。

主要功能点

  • 提供掷骰子工具: 服务器内置了 'roll_dice' 和 'roll_multiple_dice' 两个工具,分别用于掷单颗骰子和多颗骰子。
  • 可自定义骰子面数: 用户可以指定骰子的面数,默认为 6 面。
  • 支持多次掷骰: 'roll_multiple_dice' 工具允许用户指定掷骰子的数量(1-100颗)。
  • 基于 MCP 协议: 服务器遵循 MCP 协议标准,易于与兼容 MCP 协议的 LLM 客户端集成。

安装步骤

  1. 确保你的环境中已安装 Node.js 和 npm。
  2. 打开终端,执行以下命令安装 'dice-server':
    npm install @kota/dice-server

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 dice-server:

{
  "serverName": "dice-server",
  "command": "node",
  "args": [
    "/path/to/node_modules/@kota/dice-server/dist/index.js"
  ]
}

配置参数说明:

  • 'serverName': 服务器名称,设置为 "dice-server"。
  • 'command': 启动服务器的命令,这里使用 'node' (假设 node 可执行文件在您的 PATH 环境变量中)。
  • 'args': 启动命令的参数,指向 'dice-server' 的入口文件。 请将 '/path/to/node_modules' 替换为实际的 'node_modules' 目录的绝对路径。 例如,如果你的项目根目录下有 'node_modules' 目录,并且你从项目根目录启动客户端,则可以替换为 './node_modules'。 完整的路径应该指向 'node_modules/@kota/dice-server/dist/index.js'。

查找 'node_modules' 路径的方法 (示例,请根据你的实际情况调整):

在安装 'dice-server' 的目录下(通常是你的项目根目录),打开终端并执行:

npm prefix

该命令会输出 npm 的 prefix 路径,通常 'node_modules' 目录会位于该路径下。 你需要根据输出结果,构建出正确的 '/path/to/node_modules/@kota/dice-server/dist/index.js' 路径。

基本使用方法

  1. 启动服务器: 'dice-server' 在安装后即可作为 MCP 服务器运行。它通过标准输入/输出 (stdio) 与客户端通信。当 MCP 客户端启动并连接配置的命令后,服务器即开始运行。
  2. 客户端请求: LLM 客户端可以向 'dice-server' 发送符合 MCP 协议的 JSON-RPC 请求,例如:
    • 列出工具: 发送 'ListToolsRequest' 请求,服务器会返回 'roll_dice' 和 'roll_multiple_dice' 工具的描述信息。
    • 调用 'roll_dice' 工具: 发送 'CallToolRequest' 请求,指定工具名为 'roll_dice',并可选择性地在 'arguments' 中指定 'sides' 参数 (骰子面数)。
    • 调用 'roll_multiple_dice' 工具: 发送 'CallToolRequest' 请求,指定工具名为 'roll_multiple_dice',并在 'arguments' 中指定 'count' (骰子数量) 和可选的 'sides' 参数 (骰子面数)。

示例请求 (JSON-RPC 请求体,供 MCP 客户端参考):

列出工具:

{
  "jsonrpc": "2.0",
  "method": "mcp.listTools",
  "params": {},
  "id": 1
}

调用 'roll_dice' 工具 (默认 6 面骰子):

{
  "jsonrpc": "2.0",
  "method": "mcp.callTool",
  "params": {
    "name": "roll_dice"
  },
  "id": 2
}

调用 'roll_dice' 工具 (20 面骰子):

{
  "jsonrpc": "2.0",
  "method": "mcp.callTool",
  "params": {
    "name": "roll_dice",
    "arguments": {
      "sides": 20
    }
  },
  "id": 3
}

调用 'roll_multiple_dice' 工具 (3 颗 6 面骰子):

{
  "jsonrpc": "2.0",
  "method": "mcp.callTool",
  "params": {
    "name": "roll_multiple_dice",
    "arguments": {
      "count": 3
    }
  },
  "id": 4
}

调用 'roll_multiple_dice' 工具 (4 颗 20 面骰子):

{
  "jsonrpc": "2.0",
  "method": "mcp.callTool",
  "params": {
    "name": "roll_multiple_dice",
    "arguments": {
      "count": 4,
      "sides": 20
    }
  },
  "id": 5
}

客户端接收到服务器的 JSON-RPC 响应后,即可解析 'content' 字段获取掷骰结果。

信息

分类

AI与计算