DnD 5e MCP服务器
MCP 服务器展示 GraphQL API D&D 5e SRD 对于LLMS VIA 模型上下文协议与Claude Desktop和ChatGPT兼容。
功能
- 2工具:
graphql_query(查询执行) +explore_schema(动态类型内省) - 1个提示:
dnd5e_guide— 具有示例的详细指南,可应要求提供 player/dm/general 上下文 instructions自动注入客户端系统提示符( schema, Union types, typed filters)- 缓存Redis 基于元数据的 stale-while-revalidate
- 双重运输:流式HTTP+SSE(legado)
- 速率限制 按 IP, 可配置 CORS, graceful shutdown
- Docker Compose 两项服务的健康检查
快速开始
1. 设置环境变量
cp .env.example .env
# Editar .env se necessário (os defaults funcionam para deploy local)2. 抬起集装箱
docker compose up --build -d等待这两项服务保持健康:
docker compose ps
# NAME STATUS PORTS
# mcp-mcp-1 Up (healthy) 0.0.0.0:3000->3000/tcp
# mcp-redis-1 Up (healthy) 6379/tcp3. 检查
curl http://localhost:3000/health
# {"status":"ok","redis":true,"activeSessions":0,"uptime":...}完全重建
docker compose down
docker compose up --force-recreate --build --remove-orphans -dMCP 客户端配置
克劳德桌面版
添加到 claude_desktop_config.json (设置→ 开发者→ 编辑配置):
{
"mcpServers": {
"dnd-5e": {
"url": "http://localhost:3000/mcp"
}
}
}保存后重新启动 Claude 桌面 。
生产
{
"mcpServers": {
"dnd-5e": {
"url": "https://mcp.dnd.carromeu.com/mcp"
}
}
}环境变量
| 变量 | Default | 描述 |
|---|---|---|
PORT | 3000 | Porta mapeada无主机(Docker) |
NODE_ENV | production | 环境 |
GRAPHQL_ENDPOINT | https://www.dnd5eapi.co/graphql | URL做上游GraphQL |
UPSTREAM_TIMEOUT | 30000 | 上游超时(ms) |
CACHE_TTL | 3600 | 静态缓存(segundos) |
RATE_LIMIT_WINDOW | 60000 速率限制窗口(ms) | |
RATE_LIMIT_MAX | 60 每个窗口的 IP 请求 | |
MAX_SESSIONS | 100 | 会话并发(HTTP+SSE) |
SESSION_IDLE_TTL | 1800000 停机时间(ms) | |
MAX_RESPONSE_SIZE | 102400 最大响应大小(字节) | |
CORS_ORIGIN | * | CORS的允许来源 |
地方 发展
没有 Docker(需要 Redis 单独运行):
npm install
npm run dev # tsx com hot reload构建和运行:
npm run build
npm start端点
| 方法 | 路径 | 描述 |
|---|---|---|
POST | /mcp | 流式HTTP--init+请求 |
GET | /mcp | 流式HTTP——SSE流式传输 |
DELETE | /mcp | 可流式传输的HTTP-encerrar会话 |
GET | /sse | SSE 传统 — 建立连接 |
POST | /messages | SSE 传统 — 发送消息 |
GET | /health | 健康检查(扫描电镜速率限制) |
建筑
有关架构、设计决策和技术堆栈的完整技术详情,请参阅 docs/tech-spec.md.
技术栈
- 运行时:Node.js 22 LTS(Alpine)+TypeScript 5.x
- MCP-SDK:
@modelcontextprotocol/sdk1.27.x - 超文本传输协议:快递5.x
- 图查询语言:
graphql-request7.x comrawRequest()+errorPolicy: 'all' - 缓存:Redis 7(Alpine)通过
ioredis5.x - 基础设施:Docker多阶段构建+Docker编写
许可证
麻省理工学院
