使用说明

项目简介

EasyChatDM 是一个演示如何创建 MCP (Model Context Protocol) 服务器工具的示例项目,专为龙与地下城 (D&D) 跑团游戏设计。它提供了一系列预言 (Oracle) 工具,可以帮助玩家和 DM (地下城城主) 在游戏过程中进行随机决策、生成灵感和丰富剧情。该项目基于 Spring AI MCP 框架构建,旨在教育用户如何开发 MCP 服务器工具,代码简洁易懂。

主要功能点

  • 预言工具 (Oracles): 提供多种预言工具,包括:
    • 确定性预言 (Deterministic Oracle): 回答明确的“是/否”问题,并带有强度等级(强是/否、弱是/否),用于快速决策。
    • 主观性预言 (Subjective Oracle): 回答开放式问题,提供更具解释性和启发性的答案,用于触发新的剧情走向。
    • NPC 动机 (NPC Motivation): 随机生成 NPC 的当前动机、情绪或心态。
    • NPC 对话 (NPC Conversations): 提供 NPC 可能谈论的话题,用于启动或丰富 NPC 对话。
    • 外貌描述 (Description Looks): 提供描述事物外观的灵感,例如细节、印象等。
  • 可配置数据: 预言工具的数据(如对话话题、外貌描述)来源于项目目录下的文本文件,用户可以根据需要自定义这些文件来扩展或修改预言内容。
  • 易于理解: 代码结构清晰,注释详尽,适合学习和理解 MCP 服务器工具的开发过程。

安装步骤

  1. 安装 Java: 确保您的计算机上已安装 JDK (Java Development Kit)。
  2. 安装 Maven 或 Gradle: 选择 Maven 或 Gradle 作为构建工具。如果未安装,请根据您的操作系统安装 Maven 或 Gradle。
  3. 克隆仓库: 使用 Git 克隆 EasyChatDM 仓库到本地:
    git clone https://github.com/cote/EasyChatDM.git
    cd EasyChatDM
  4. 构建项目: 在项目根目录下,使用 Maven 或 Gradle 构建项目。
    • 使用 Maven: './mvnw package' (Windows: 'mvnw package')
    • 使用 Gradle: './gradlew build' (Windows: 'gradlew build') 构建成功后,将在 'target' 目录下生成 JAR 文件 (例如 'easychatdm-0.0.1-SNAPSHOT.jar')。

服务器配置

MCP 客户端需要配置以下信息以连接到 EasyChatDM 服务器。这是一个 JSON 格式的配置示例,您需要根据实际情况进行调整:

{
  "servers": [
    {
      "name": "EasyChatDM Server",
      "command": "java",
      "args": [
        "-jar",
        "path/to/easychatdm-0.0.1-SNAPSHOT.jar"
      ],
      "description": "EasyChatDM 示例 MCP 服务器,提供 D&D 跑团辅助工具。",
      "capabilities": [
        "tools"
      ]
    }
  ]
}

配置参数说明:

  • '"name"': 服务器名称,可以自定义,例如 "EasyChatDM Server"。
  • '"command"': 启动服务器的命令,这里是 'java'。
  • '"args"': 启动命令的参数列表。
    • '"-jar"': 指定运行 JAR 文件。
    • '"path/to/easychatdm-0.0.1-SNAPSHOT.jar"': 请替换为实际的 JAR 文件路径。这个路径应该是 MCP 客户端能够访问到的服务器 JAR 文件路径。如果客户端和服务器在同一台机器上,可以使用相对或绝对路径。
  • '"description"': 服务器的描述信息,方便客户端用户了解服务器的功能。
  • '"capabilities"': 声明服务器提供的能力,这里声明了 '"tools"',表示该服务器提供工具功能。

重要提示:

  • 请确保将 '"path/to/easychatdm-0.0.1-SNAPSHOT.jar"' 替换为您实际构建生成的 JAR 文件路径。
  • MCP 客户端需要能够执行 'java' 命令并访问到指定的 JAR 文件。

基本使用方法

  1. 启动服务器: MCP 客户端配置完成后,启动 MCP 客户端,客户端会自动尝试连接到 EasyChatDM 服务器。

  2. 调用工具: 在 MCP 客户端中,您可以使用以下工具名称来调用 EasyChatDM 服务器提供的预言功能:

    • 'EasyChatDM_Deterministic_Oracle' (确定性预言)
    • 'EasyChatDM_Subjective_Oracle' (主观性预言)
    • 'EasyChatDM_NPC_Motivation' (NPC 动机)
    • 'EasyChatDM_NPC_Conversations' (NPC 对话)
    • 'EasyChatDM_description_looks' (外貌描述)

    例如,在支持工具调用的 LLM 应用中,您可以指示 LLM 使用 'EasyChatDM_Deterministic_Oracle' 工具来回答一个“是/否”问题,并提供问题背景作为工具的参数。服务器会返回预言结果给 LLM 应用,LLM 应用可以根据结果进行后续处理。

示例对话流程 (假设使用 Claude 客户端):

用户在 Claude 中输入: "Is there a hidden door behind the bookshelf?"

Claude 客户端 (如果配置了 EasyChatDM 服务器并启用了开发者模式) 可能会识别到这是一个适合使用 'EasyChatDM_Deterministic_Oracle' 工具的问题,并自动调用该工具,将问题背景 (例如 "checking for hidden door") 作为参数发送给 EasyChatDM 服务器。

EasyChatDM 服务器执行 'EasyChatDM_Deterministic_Oracle' 工具,随机返回一个确定性预言结果 (例如 "Yes")。

Claude 客户端接收到预言结果 "Yes",并将其融入到回复中,例如: "Yes, according to the oracle, there is a hidden door behind the bookshelf."

通过这种方式,EasyChatDM 服务器作为 MCP 服务器,为 LLM 应用提供了 D&D 跑团游戏的辅助功能。

信息

分类

生产力应用