TTRPG GM工具MCP服务器
A. 模型上下文协议 桌面RPG游戏大师的服务器。
🏗️ 建筑
该项目使用两部分架构:
- GitHub页面 -在以下位置托管静态数据文件(遭遇、名称、宝藏等)
https://ttrpg-mcp.tedt.org/ - Cloudflare工作人员 -在以下位置实现MCP协议并执行工具逻辑
https://ttrpg-mcp.tedt.org/mcp
注: GitHub Pages只能提供静态文件。MCP协议需要一个真正的服务器来处理动态请求,这就是为什么我们需要Cloudflare Worker。
🎲 特性
此MCP服务器为游戏大师提供工具:
- 奇遇生成器 -根据难度和环境生成随机遭遇
- NPC名称生成器 -为各种幻想种族创建角色名称
- 位置名称生成器 -生成酒馆、城市和地牢名称
- 人格特质生成器 -创建NPC个性和怪癖
- 宝藏生成器 -生成战利品和宝藏
- 天气生成器 -创建大气天气描述
- 绘图钩生成器 -生成冒险钩子和任务创意
🔧 设置
先决条件
- 部署Cloudflare Worker (参见
cloudflare-mcp-server/README.md) - 配置您的MCP客户端
适用于MCP客户端(克劳德桌面等)
将此添加到MCP客户端配置中:
{
"mcpServers": {
"ttrpg-gm-tools": {
"url": "https://ttrpg-mcp.tedt.org/mcp",
"transport": {
"type": "http"
}
}
}
}重要提示:
- 链接地址
https://ttrpg-mcp.tedt.org/mcp(不是mcp.json) - 传输是流式HTTP(JSON响应),而不是SSE
- 您必须首先部署Cloudflare Worker(请参阅
cloudflare-mcp-server/文件夹)
本地开发
- 克隆此存储库
- 安装Ruby 3.1+(系统Ruby 2.6/2.7通常太旧了
github-pages) - 安装Bundler(如果需要):
gem install bundler - 安装站点依赖关系:
bundle install - 在本地运行(从repo根目录):
bundle exec jekyll serve - 访问:
http://localhost:4000/
📁 结构
├── _config.yml # Jekyll configuration
├── data/ # JSON data files for generators
│ ├── encounters.json # Encounter data
│ ├── names.json # NPC names by race
│ ├── locations.json # Location names
│ ├── traits.json # Personality traits
│ ├── treasure.json # Treasure tables
│ ├── weather.json # Weather descriptions
│ └── plot_hooks.json # Adventure hooks
├── cloudflare-mcp-server/ # Cloudflare Worker implementation
│ ├── src/index.ts # Worker entrypoint (/mcp)
│ ├── src/mcp/server.ts # MCP SDK server registration (tools/resources/prompts)
│ ├── src/tools/ # Central registry + per-tool modules
│ ├── src/data/fetch.ts # JSON fetch + Cloudflare caching
│ └── test/ # Vitest smoke tests
├── demo.md # Interactive demo page
└── index.md # Landing page🚀 用法
在MCP客户端中配置后,您可以使用自然语言调用工具:
- “在森林中为5级队伍生成随机遭遇战”
- “给我的NPC取一个侏儒名字”
- “创建酒馆名称”
- “为我的反派创造一些性格特征”
🛠️ 技术栈
- 杰基尔/液体 -静态站点生成
- GitHub页面 -托管服务
- JSON -数据存储和API响应
- MCP-SDK -MCP服务器实现(
@modelcontextprotocol/sdk)
⚙️ 运行时行为
/mcp接受POST只有;GET /mcp回报405- CORS受到限制
ALLOWED_ORIGINS(失踪Origin允许非浏览器客户端使用) - 缓存数据读取(内存+Cloudflare Cache API)
- 服务器支持
completion/complete对于提示参数和中的资源模板变量ttrpg://data/{dataset} - 工具结果和提示消息可能包括
resource_link指向相关数据集的内容块 - 服务器和数据集资源包括MCP
icons元数据(亮/暗SVG)
📝 许可证
麻省理工学院许可证-您可以自由使用和修改您的广告系列!
🤝 贡献
欢迎投稿!添加更多:
- 遭遇类型
- 不同文化/种族的名单
- 珍宝
- 绘图挂钩
- 新工具类型
🔗 资源
-
