使用说明

项目简介

本项目 'mcp-server-diceroll' 是一个基于 Model Context Protocol (MCP) 的简单服务器实现。它提供了一个“掷骰子 (roll_dice)”工具,LLM客户端可以通过MCP协议调用该工具来模拟掷骰子,并获取随机数结果。这个项目旨在演示如何使用MCP协议构建一个提供简单工具的服务器。

主要功能点

  • 提供掷骰子工具: 通过 'roll_dice' 工具,客户端可以指定骰子的面数和投掷次数,服务器返回掷骰子的结果。
  • MCP协议实现: 实现了基本的MCP服务器功能,可以接收和处理来自MCP客户端的 'ListToolsRequest' 和 'CallToolRequest' 请求。
  • Stdio传输: 使用标准输入/输出 (Stdio) 作为MCP服务器的传输协议。

安装步骤

  1. 安装 Node.js: 确保你的系统已安装 Node.js 运行时环境。你可以从 https://nodejs.org/ 下载并安装。
  2. 克隆仓库: 使用 Git 克隆 'mcp-server-diceroll' 仓库到本地:
    git clone https://github.com/shimapon/mcp-server-diceroll.git
    cd mcp-server-diceroll
  3. 安装依赖: 在仓库目录下,使用 npm 安装项目依赖:
    npm install
  4. 启动服务器: 运行以下命令启动 MCP 服务器:
    npm run start
    服务器将通过 Stdio 监听来自 MCP 客户端的请求。

服务器配置

对于 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 配置信息填入到客户端的服务器配置中。

基本使用方法

  1. 启动 MCP 客户端和服务器: 首先确保按照上述步骤启动 'mcp-server-diceroll' 服务器,并启动你的 MCP 客户端。客户端会根据配置信息连接到服务器。
  2. 列出可用工具: 客户端可以发送 'ListToolsRequest' 请求到服务器,查询服务器提供的工具列表。'mcp-server-diceroll' 服务器会返回包含 'roll_dice' 工具的列表。
  3. 调用掷骰子工具: 客户端可以发送 '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
      }
  4. 接收工具调用结果: 服务器会执行 '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与计算