D&D战役管理服务器

一个用于D&D战役状态管理、掷骰子和会话记忆的Go MCP服务器。

  • by andr1an
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 andr1an/llmdm

使用说明

llmdm

用于D&D活动状态管理、掷骰子和会话内存的Go MCP服务器。

它的作用

  • 通过stdio或HTTP提供模型上下文协议(MCP)工具集
  • 将活动数据存储在每个活动的SQLite数据库中
  • 跟踪角色、情节挂钩、世界旗帜、滚动历史和会话摘要
  • 生成会话简报和降价回顾,以快速恢复DM上下文
  • 使用带有本地回退的Anthropic API压缩会话日志

如何玩

这 game/ 该目录包含一个用于运行D&D活动的即用型工作区。

设置

  1. 构建并复制服务器:

    make build
    cp bin/dnd-mcp game/dnd-mcp
    
  2. (可选)设置AI会话压缩:

    cd game
    echo "ANTHROPIC_API_KEY=your-key-here" > .env
    

运行活动

  1. 导航到游戏目录并启动Claude Code:

    cd game
    claude
    
  2. 启动新活动或继续现有活动:

    /create-campaign
    /continue
    
  3. 玩!Claude担任DM:

    • 通过MCP服务器进行真实骰子掷骰子
    • SQLite中的持久字符表
    • AI压缩会话历史记录
    • 自动跟踪绘图挂钩
  4. 结束会话:

    /end
    

模型建议

  • 十四行诗4.5:最适合常规游戏(创意+速度+成本)
  • 作品4.5:用于重大故事时刻和老板打架
  • 俳句:仅限快速查询(不建议用于游戏)

上下文窗口管理

活动状态在SQLite中持续存在,因此在不损失进度的情况下启动新的Claude Code会话。

何时重新开始:

  • 2-3个D&D会话后(每个会话50k-150k代币)
  • 当反应变得缓慢或重复时
  • 在自然的故事转折点
  • 当上下文超过~15万个令牌时

刷新后恢复:

exit
claude
/continue

活动数据存储在 ./data/campaigns/ -永远不需要清洁。

文档

完整的文档 docs/:

技术栈

  • 转到1.25.6 | MCP SDK: github.com/modelcontextprotocol/go-sdk
  • SQLite: modernc.org/sqlite |配置: .env 通过 github.com/joho/godotenv

构建与运行

make build
make test
make run

看 部署指南 运输方式和配置。

许可证

MIT许可证