Skip to main content
Glama
Maoleio
by Maoleio
README.md
# 不背单词 MCP

将不背单词的个人生词本接入 ChatGPT 的 MCP 服务,面向 **ChatGPT Sites 私有部署**。登录后,可以在对话中查看生词、移除指定单词、查看自定义词书,或创建新的自定义词书。

许可证:[MIT](LICENSE) 

## 部署到 ChatGPT Sites

部署需要具备 Sites 创建、配置和发布能力的 ChatGPT 或 Codex。可以把仓库地址交给部署助手,并说明:

> 请阅读 AGENTS.md,将这个项目部署到我自己的 ChatGPT Sites,创建一个仅本人可访问的新站点。完成测试、发布和 MCP 插件接入。

## 连接和登录

发布后,使用 Sites 自动生成的插件连接服务。在 ChatGPT 中发送“登录不背单词”进行登录,如客户端无法展示登录二维码,可打开网页进行登录,网页和 MCP 共用同一份会话。

## 工具

| 工具 | 示例 | 作用 |
| --- | --- | --- |
| `start_login` | `{}` | 获取登录二维码 |
| `get_login_status` | `{}` | 查询扫码状态 |
| `logout` | `{}` | 清除当前服务会话 |
| `get_words` | `{"count":10}` 或 `{}` | 随机抽取或读取全部生词 |
| `remove_word` | `{"word":"example"}` | 移除指定生词并核验 |
| `list_books` | `{}` | 查看自定义词书及准确 code |
| `delete_book` | `{"book_code":"词书code"}` | 生成危险操作确认信息 |
| `import_words` | `{"words":"...","exam":"考研"}` | 创建自定义词书 |

`import_words` 的 `words` 和 `exam` 必填。`exam` 必须由用户从中考、高考、四级、六级、考研、专升本、雅思、其他中明确选择;去重并识别后需要 20–5000 个有效单词。

`delete_book` 是不可恢复的危险操作:第一次调用只返回词书名称、code、风险和一次性确认凭据。只有用户明确确认同一词书后,才能携带凭据再次调用。服务会重新读取词书列表,只有 `deleted: true` 且 `verified: true` 才算删除成功;结果不确定时不会自动重试。

## 会话和数据

站点应保持仅本人可访问,认证由 ChatGPT Sites 处理。官网 Cookie、登录任务和操作记录使用 `BBDC_SESSION_KEY` 加密后存入 R2。密钥只能配置在 Sites secret 中,不要写入源码、README、日志或 Git 提交。更换密钥会使已有加密会话无法读取。

## 目录结构

| 路径 | 用途 |
| --- | --- |
| `lib/` | 官网接口、词汇操作、词书管理、导入逻辑和工具定义 |
| `worker/cloud.js` | Sites 请求处理与加密会话存储 |
| `worker/index.js` | 自动生成的独立 Worker ESM |
| `web/index.html` | 服务介绍与网页登录页面 |
| `scripts/` | 构建、检查和 Sites 配置脚本 |
| `templates/hosting.json` | 无身份信息的 Sites 配置模板 |
| `test/` | 使用模拟响应的自动化测试 |
| `AGENTS.md` | 部署助手的 Sites 工作流和安全约束 |