用于与生成式AI一起玩D&D的游戏示例MCP服务器工具。这些工具是占卜器,用于确定随机的是/否问题,同时也用于描述、事件、NPC等。它们是“随机表”,当你希望在游戏中引入一些不确定性、转折和随机性时使用。此项目用于教育目的,因此很少关注良好的代码设计。
这些工具是MCP服务器工具,可以与Claude桌面和其他MCP客户端配合使用。它们是用Spring AI MCP编写的。由于这个项目是教育性的,所以没有考虑良好的设计。相反,代码编写是为了让你能够一步一步地轻松跟随如何创建工具。
你应该将src/main/easychatdmdir/prompts/目录的内容复制到~/.easychatdm。这些文件用于提示、占卜器等。
现在DM日记会持久化到数据库而不是纯JSON文件。本地运行默认使用SQLite,数据库文件存储在~/.easychatdm/easychatdm.db。通过系统属性或环境变量来控制SQLite和PostgreSQL之间的切换。
| 属性 | 默认值 | 描述 |
|---|---|---|
easychatdm.dir | ${user.home}/.easychatdm | 提示/占卜器的基本目录,对于SQLite,也是数据库文件的位置。 |
easychatdm.db.type | sqlite | 选择sqlite(本地文件)或postgres(远程数据库)。 |
easychatdm.db.sqlite.path | (从easychatdm.dir派生) | 覆盖SQLite数据库的完整路径。如果设置为目录,则会在下面追加文件名。 |
easychatdm.db.sqlite.file-name | easychatdm.db | 在解析的目录下创建SQLite数据库时使用的名称。 |
easychatdm.db.sqlite.pool-size | 1 | 使用SQLite时HikariCP池大小(通常保持为1)。 |
easychatdm.db.postgres.url | (当db.type=postgres时需要) | PostgreSQL实例的JDBC URL。 |
easychatdm.db.postgres.username | (当db.type=postgres时需要) | 数据库用户名。 |
easychatdm.db.postgres.password | (空字符串) | 数据库密码。 |
easychatdm.db.postgres.pool-size | 4 | 使用PostgreSQL时HikariCP池大小。 |
easychatdm.journal.export-files | true(对于SQLite),false(对于Postgres) | 启用时将日记内容镜像到JSON/Markdown文件中。 |
对于Cloud Foundry(或其他远程部署),使用JAVA_OPTS设置系统属性,例如:
JAVA_OPTS: >-
-Deasychatdm.db.type=postgres
-Deasychatdm.db.postgres.url=${JDBC_DATABASE_URL}
-Deasychatdm.db.postgres.username=${JDBC_DATABASE_USERNAME}
-Deasychatdm.db.postgres.password=${JDBC_DATABASE_PASSWORD}
查看ChatDM项目以获取一个更复杂、功能更丰富且设计更好的EasyChatDM版本。
这里有一些视频概述了该项目:
请关注播放列表,以获取更多即将发布的视频。