D&D角色生成服务器

D&D 5e角色MCP服务器是一个小型模型上下文协议服务器,按需生成简单、即用的Dungeons & Dragons 5e风格角色。

  • by AIckathon-2025-08
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 AIckathon-2025-08/mcp-dnd5e-character

使用说明

D&D 5e字符MCP服务器

D&D 5e角色MCP服务器是一个小型模型上下文协议服务器,可按需生成简单、即用型的龙与地下城5e风格的角色。

目标是为支持MCP的AI客户端提供一种简单的方法来创建随机或轻度定制的角色(种族、职业、级别),这些角色具有“D&D风格”,但足够轻,可以进行演示和一次拍摄。


预览

示例MCP客户端请求和带有生成字符的JSON响应。

另一个具有不同种族/职业选项的示例角色。

演示视频

demo.mp4

短终端录音显示 docker compose up,MCP服务器启动,客户端调用 generate_character 工具。

现场演示

https://aickathon-2025-08.github.io/mcp-dnd5e-character/


可用命令

命令 描述
npm install 安装项目依赖项
npm run dev 使用TypeScript在开发模式下运行MCP服务器并热重载
npm run build 将TypeScript源代码编译为JavaScript dist 文件夹
npm start 从运行已编译的MCP服务器 dist 文件夹
docker compose build 为MCP服务器构建Docker镜像
docker compose up 在容器中启动MCP服务器(连接模式)
docker compose up -d 在容器中启动MCP服务器(分离/后台模式)
docker compose ps 显示正在运行的容器的状态
docker compose down 停止并删除容器及其网络

需求

要运行此项目,您需要:

  • Node.js >= 18 (用于本地开发和npm脚本)

  • npm (附带Node.js)

  • Docker 桌面版 (或Docker引擎) docker compose 在您的PATH中可用

根据您的喜好,您可以使用纯Node.js工作流或Docker工作流。


项目结构

该项目有意规模较小,重点突出:

  • src/server.ts --MCP服务器的实现和 generate_character 工具接线

  • dist/server.js --编译的JavaScript输出(由创建 npm run build,未承诺回购)

  • Dockerfile --服务器的Docker镜像定义

  • docker-compose.yml --docker使用单个组件组合配置 mcp-dnd5e-character 服务

  • notes.md --内部注释和草稿字符格式

服务器公开了一个MCP工具:

  • generate_character --生成一个简单的D&D 5e风格的字符:

    • 种族、阶级、等级

    • 能力得分(STR、DEX、CON、INT、WIS、CHA)

    • 命中点、装甲等级、速度

    • 技能和启动设备

    • 对齐和简短的背景句


本地运行(Node.js)

安装依赖项:

npm install

构建TypeScript项目:

npm run build

运行已编译的MCP服务器:

npm start

或者,直接在TypeScript的开发模式下运行并观看:

npm run dev

在所有情况下,MCP服务器都通过stdin/stdout进行通信,旨在供MCP兼容的客户端使用。

使用Docker运行

此项目包括Docker支持,因此您不需要在本地安装Node.js进行生产风格的运行。

塑造形象

docker compose build

启动容器(已附)

docker compose up

这将:

  • 构建Docker镜像(如果尚未构建)

  • 在名为的容器中运行MCP服务器 mcp-dnd5e-character

  • 将终端连接到服务器进程(stdin/stdout)

要停止服务器,请按 Ctrl + C 然后:

docker compose down

启动容器(已拆卸)

如果您更喜欢在后台运行容器:

docker compose up -d

检查状态:

docker compose ps

停止并移除容器:

docker compose down

使用MCP工具

此服务器设计用于兼容MCP的客户端(例如,支持模型上下文协议的AI助手)。

服务器公开了一个工具:

工具名称: generate_character

说明: 生成一个简单的D&D 5e风格的角色,包括种族、职业、能力、命中点和简短的背景。

输入架构 (所有字段均为可选):

  • race --首选种族(例如“人类”、“精灵”、“矮人”),不区分大小写

  • class --首选类(例如“战斗机”、“巫师”、“盗贼”),不区分大小写

  • level --级别从1到5(如果省略,则默认为1)

示例工具调用 (概念):

{
  "name": "generate_character",
  "arguments": {
    "race": "Dwarf",
    "class": "Barbarian",
    "level": 1
  }
}

输出示例 (形状):

{
  "name": "Bruen",
  "race": "Dwarf",
  "class": "Barbarian",
  "level": 1,
  "abilities": {
    "strength": 17,
    "dexterity": 12,
    "constitution": 16,
    "intelligence": 10,
    "wisdom": 11,
    "charisma": 9
  },
  "hit_points": 18,
  "armor_class": 16,
  "speed": 25,
  "skills": ["Athletics", "Survival", "Intimidation"],
  "equipment": ["Greataxe", "Handaxe", "Traveler's Clothes"],
  "background": "Bruen is a level 1 Dwarf Barbarian of Chaotic Good alignment. They are known for their Athletics and travel the world with their greataxe.",
  "alignment": "Chaotic Good"
}

确切的数字会有所不同,因为角色是在轻微的随机性下生成的,但整体结构保持不变。

Aickathon笔记

主题: 构建您选择的MCP服务器

想法: D&D 5e字符生成器MCP服务器

使用案例: 快速为单镜头、演示或测试MCP集成创建美味的角色。

Docker就绪: 该项目可以使用docker compose命令构建和运行,如上所述。

本自述遵循了生命游戏示例的精神:简短描述、预览部分、命令表、要求和清晰的Docker说明。