内容
# D&D 5e 接口 MCP 服务器
一款提供与 D&D 5e 接口交互工具的模型上下文协议(MCP)服务器。该服务器使 AI 助手能够查询《龙与地下城》第 5 版的数据,包括法术、怪物、职业、装备等。
## 功能
### 可用工具
- **列出端点** - 获取所有可用的 API 端点
- **列出资源** - 列出特定端点的所有资源(例如,所有法术)
- **获取资源** - 获取特定资源的详细信息
- **搜索法术** - 按条件(等级、学校、职业)搜索法术
- **搜索怪物** - 按条件(挑战等级,类型)搜索怪物
- **获取职业等级** - 获取职业的等级进度
- **获取职业法术** - 获取职业可用的所有法术
### 支持的端点
- 能力值
- 阵营
- 背景
- 职业
- 状态
- 伤害类型
- 装备类别
- 装备
- 壮举
- 特征
- 语言
- 魔术物品
- 法术学校
- 怪物
- 熟练度
- 种族
- 规则章节
- 规则
- 技能
- 法术
- 亚职业
- 亚种族
- 特质
- 武器属性
## 安装
### 前置条件
- Docker 和 Docker Compose
- Node.js 20+(用于本地开发)
### 使用 Docker 快速启动
1. **克隆此仓库:**
```bash
git clone <仓库网址>
cd dnd5e-mcp-server
```
2. **创建项目结构:**
```bash
mkdir -p src
# 将 server.ts 移至 src/server.ts
```
3. **使用 Docker Compose 构建并运行:**
```bash
docker-compose up -d --build
```
或直接使用 Docker 构建并运行:
```bash
docker build -t dnd5e-mcp-server .
docker run -i dnd5e-mcp-server
```
### 本地开发
1. **安装依赖项:**
```bash
npm install
```
2. **编译 TypeScript 代码:**
```bash
npm run build
```
3. **运行服务器:**
```bash
npm start
```
## 使用
### 与 Claude Desktop 配合使用
将以下内容添加到您的 Claude Desktop 配置文件中:
- **MacOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"dnd5e": {
"command": "docker",
"args": ["run", "-i", "--rm", "dnd5e-mcp-server:latest"]
}
}
}
```
或用于本地开发:
```json
{
"mcpServers": {
"dnd5e": {
"command": "node",
"args": ["/path/to/dnd5e-mcp-server/dist/server.js"]
}
}
}
```
### 示例查询
配置完成后,您可以询问 Claude:
- “5 级法师可以施放哪些法术?”
- “给我看看所有挑战等级为 5 的龙”
- “获取火球法术的详细信息”
- “战士有哪些装备?”
- “列出所有 3 级附魔法术”
- “10 级圣骑士有哪些特征?”
## API 参考
服务器使用 [D&D 5e API](https://www.dnd5eapi.co/),该 API 提供《龙与地下城》第 5 版系统参考文档(SRD)的数据。
### 示例工具调用
**获取特定法术:**
```json
{
"name": "get_resource",
"arguments": {
"endpoint": "spells",
"index": "fireball"
}
}
```
**搜索法术:**
```json
{
"name": "search_spells",
"arguments": {
"level": 3,
"school": "evocation",
"class": "wizard"
}
}
```
**按挑战等级获取怪物:**
```json
{
"name": "search_monsters",
"arguments": {
"challenge_rating": 10,
"type": "dragon"
}
}
```
## 开发
### 项目结构
```
dnd5e-mcp-server/
├── src/
│ └── server.ts # 主要服务器实现
├── dist/ # 编译后的 JavaScript(生成)
├── Dockerfile # Docker 镜像定义
├── docker-compose.yml # Docker Compose 配置
├── package.json # Node.js 依赖项
├── tsconfig.json # TypeScript 配置
└── README.md # 此文件
```
### 构建
```bash
# 安装依赖项
npm install
# 编译 TypeScript
npm run build
# 构建 Docker 镜像
docker build -t dnd5e-mcp-server .
```
### 测试
您可以使用 MCP 检查器测试 MCP 服务器:
```bash
npx @modelcontextprotocol/inspector node dist/server.js
```
## 许可证
MIT 许可证
## 鸣谢
- 构建于 [模型上下文协议 SDK](https://modelcontextprotocol.io)
- 数据由 [D&D 5e API](https://www.dnd5eapi.co/) 提供
- D&D 5e 内容来自系统参考文档(SRD),遵循开放游戏许可协议(OGL)
## 贡献
欢迎贡献!请随时提交拉取请求。
## 支持
对于以下问题:
- **MCP 服务器:** 在此仓库中打开问题
- **D&D 5e API:** 访问 [5e-bits/5e-srd-api](https://github.com/5e-bits/5e-srd-api)
- **MCP 协议:** 访问 [模型上下文协议](https://modelcontextprotocol.io)