内容
# 问答生成器
一款随着游戏进行而变得越来越智能的问答应用。
选择一个类别,回答问题,观察难度如何调整以匹配你的技能水平。连续三次正确,问题就会变得更难。如果你连续两次错误,问题就会变得更容易。应用会判断你的水平,让你保持在一个最佳状态——有挑战但不至于沮丧。
无需账户,无需注册。只需打开即可开始游戏。
---
## 工作原理
该应用围绕三个协同工作的组件构建:
### MCP 服务器 (`mcp/server.js`)
一个 MCP(模型上下文协议)服务器,封装了 [Open Trivia DB](https://opentdb.com/) API。它负责获取问题、解码 HTML 编码文本,并返回干净的数据。前端和 Claude Code 都使用此服务器作为问答数据的单一来源——其他地方不直接调用 API。
### 问答设计技能 (`.claude/skills/quiz-design/SKILL.md`)
一个处理层,位于获取和显示之间。每个问题在显示之前都会经过这些检查:
- **HTML 实体解码** — 将 `&`、`'` 等转换为可读文本
- **答案洗牌** — 正确答案随机放置,确保不是总是选项 D
- **质量控制** — 拒绝包含“以上所有”措辞、重复答案、泄露 HTML 或在问题文本中给出答案的问题
- **难度一致性** — 确保问题不会随机从简单跳到困难
### 难度校准器 (`.claude/agents/difficulty-calibrator.md`)
一个子代理,观察你的近期答案,并推荐下一个难度级别:
| 近期表现 | 结果 |
|---|---|
| 连续 3 次正确 | 难度增加 |
| 连续 2 次错误 | 难度降低 |
| 混合结果 | 难度保持不变 |
| 已达到最难级别 | 保持稳定(无法提高) |
| 已达到最简单级别 | 保持稳定(无法降低) |
校准器在问题之间运行——你回答,它分析,下一问题在推荐的难度下获取。
---
## 截图
### 主问答界面

### 已回答问题 — 正确反馈

### 已回答问题 — 错误反馈

### 难度变化实况

---
## 入门指南
### 前提条件
- [Node.js](https://nodejs.org/)(v18 或更高版本)
- npm(随 Node.js 捆绑)
### 安装
```bash
git clone https://github.com/TheDevPP/quiz-generator.git
cd quiz-generator
npm install
```
### 运行应用
```bash
npm start
```
然后在浏览器中打开 **http://localhost:3000**。
### 运行 MCP 服务器(适用于 Claude Code)
MCP 服务器通过 stdio 运行,并被 Claude Code 工作流使用:
```bash
npm run mcp
```
项目根目录下的 `.mcp.json` 文件配置 Claude Code 自动使用此服务器。
---
## 技术栈
- **HTML / CSS / JavaScript** — 纯前端,无框架
- **Express** — 提供前端和 `/api/questions` 端点
- **Open Trivia DB** — 免费的问答题数据库([opentdb.com](https://opentdb.com/))
- **MCP SDK** (`@modelcontextprotocol/sdk`) — 用于 Claude Code 集成的模型上下文协议服务器
- **Zod** — MCP 服务器的输入验证