Memora MCP
Memora MCP
将任何对话变成交互式学习会话,直接在 Claude Desktop 中进行。让 Claude 制作一副牌组,它会生成卡片,然后将其渲染为可点击浏览的内联复习界面:翻转闪卡、回答选择题、填写完形填空空白处。每次作答都会更新间隔重复计划,你的结果会回流给 Claude,以便它针对你答错的内容进行强化练习。
关键词:Model Context Protocol、MCP server、MCP Apps、Claude Desktop、闪卡、测验、间隔重复、SRS、FSRS、Anki 替代品。
基于 MCP Apps 扩展(SEP-1865)构建:核心 MCP 规范 2025-11-25 加上 Apps 扩展 2026-01-26。
功能
三种学习方式,全部内联渲染,且评分方式相同:
闪卡:点击翻转,然后评分记住了 / 没记住。
选择题测验:选择一个选项,正确/错误答案会立即显示。
完形填空:空白处原位揭示,句子保持完整。在卡片正面将空白写成
[...],它就会自动变成完形填空卡片。
间隔重复:每次评分都会更新每张卡片的 FSRS 计划(通过 ts-fsrs),因此薄弱卡片会更早重现,到期卡片优先出现。询问 "今天有什么到期的?" 即可获得所有牌组的汇总。
用分类组织:用 :: 命名牌组以嵌套它们(例如 LLM::Attention)。浏览分类树,或将同一棵树作为交互式思维导图浏览,并在一个合并会话中学习整个分支。测验牌组会带有徽章标记。
管理你的牌组:无需离开聊天即可创建、追加、编辑、重命名和删除牌组与卡片。创建牌组时传入 reverse 还可以对每张卡片进行反向练习(对词汇学习很方便)。
纯 JSON:牌组存放在 data/decks.json 中,每次调用时实时读取。可以手动编辑,也可以让 Claude 来构建。无需数据库,无需外部服务。
Related MCP server: EduChain MCP Server
工具
只有 review_deck 和 study 会打开内联翻卡界面;其他工具都返回文本摘要,因此在聊天中编辑或创建不再弹出该组件。
工具 | 用途 |
| 打开一副牌组进行复习(到期卡片优先,每次会话有数量上限)。 |
| 复习整个分类子树,合并到一个会话中(每次会话有数量上限)。 |
| 生成闪卡或完形填空卡片; |
| 生成选择题。 |
| 记录复习结果并更新卡片的 FSRS 计划(由界面调用)。 |
| 汇总所有牌组中到期的内容,并标记掌握不佳的卡片(遗忘 3 次及以上)。 |
| 修改卡片的正面和/或背面。 |
| 建议将卡片拆分为原子化的小卡片,或重写以测试理解程度。 |
| 在用户批准建议的卡片后持久化改进结果。 |
| 将刚刚让你受挫的内容(一个 bug、一道答错的题)转化为草稿卡片。 |
| 在用户批准后持久化捕获的卡片。 |
| 重命名牌组(同时会在分类树中移动它)。 |
| 删除单张卡片。 |
| 删除整个牌组。 |
卡片生成遵循 Memora 的质量规则(原子化的单一概念卡片、1-5 个词的答案、主动回忆、无歧义、不泄露答案、应用优先于定义),基于 Wozniak 的 《知识表述的 20 条规则》。新卡片在写入时会经过 lint 检查并被标记(绝不会被阻止),以便 Claude 可以修改它们。
工作原理(MCP Apps)
工具声明一个 ui:// 资源。当 Claude 调用该工具时,宿主(Claude Desktop)获取该资源,在沙箱化 iframe 中渲染其 HTML,将工具结果传递给界面,界面再通过 JSON-RPC 与宿主通信(用于给卡片评分并向模型报告进度)。
快速开始
前置要求
Node.js 20.11+
连接到 Claude Desktop
打开 Settings > Developer > Edit Config,在 mcpServers 下添加 Memora:
{
"mcpServers": {
"memora": {
"command": "npx",
"args": ["-y", "@servation/memora-mcp", "--stdio"]
}
}
}然后从系统托盘完全退出 Claude Desktop 并重新启动。memora 会出现在 Settings > Developer 下,并预装了几个示例牌组。
你的牌组存储在 ~/.memora/decks.json 中(可以用 MEMORA_DECKS 环境变量覆盖该路径)。可以手动编辑该文件,也可以让 Claude 来管理。
git clone https://github.com/Servation/memora-mcp.git
cd memora-mcp
npm install
npm run build使用绝对路径将配置指向构建后的入口(牌组随后存放在仓库的 data/decks.json 中):
{
"mcpServers": {
"memora": {
"command": "node",
"args": ["C:\\path\\to\\memora-mcp\\dist\\main.js", "--stdio"]
}
}
}试试看(在 Claude Desktop 聊天中)
review my World Capitals deckmake me a deck of 10 Spanish travel phrasesmake a reversible deck of 10 Spanish words(双向练习)make a fill-in-the-blank deck about the water cycle(完形填空卡片)quiz me with 10 multiple-choice questions on the solar systemturn what we just discussed into a deck called "Photosynthesis"study my LLM categorywhat's due today?
技术栈
服务端:TypeScript、
@modelcontextprotocol/sdk以及@modelcontextprotocol/ext-apps,stdio 传输(也可使用 Streamable HTTP)。界面:React 加 Vite,通过
vite-plugin-singlefile打包为单个内联 HTML 文件。调度:
ts-fsrs(FSRS)。构建后运行时只需纯
node(不需要 bun 或 tsx)。
牌组格式
{
"Deck Name": [
{ "front": "Capital of France?", "back": "Paris" }
]
}安装后存储在
~/.memora/decks.json中(从源码运行时为data/decks.json);可用MEMORA_DECKS覆盖。实时读取(mtime 缓存)。
create_deck、create_quiz和grade_card会以原子方式写入此处。测验卡片会添加
"options": ["...", "..."];其back是正确选项。完形填空卡片在正面将空白写成
[...],隐藏的词语作为back。随着你的复习,卡片会获得
due日期和 FSRSsrs块;没有这些的卡片会被视为新卡片。保持其为有效的 JSON,否则服务器会回退到内置的默认牌组。
项目结构
memora-mcp/
├── server.ts # MCP tools + the ui:// resource
├── decks.ts # data model, decks.json storage, result builder
├── scheduling.ts # FSRS scheduling + review ordering
├── main.ts # entry: stdio (Claude Desktop) or Streamable HTTP
├── mcp-app.html # UI entry HTML (bundled by Vite)
├── src/
│ ├── mcp-app.tsx # review orchestrator (flip / quiz / cloze, grade -> model)
│ ├── deck-lib.tsx # tree, mind map, card list, quiz/cloze views, helpers
│ ├── mcp-app.module.css
│ └── global.css # host theme variable fallbacks (light/dark)
├── data/decks.json # editable decks, read live
├── media/ # README images
├── vite.config.ts # single-file bundle config
└── tsconfig*.json开发
npm run dev # vite watch (UI) plus tsx server on http://localhost:3001/mcp
npm run typecheck # tsc --noEmit为了快速本地迭代,你还可以针对 ext-apps 仓库 中的 MCP Apps 参考宿主(basic-host)运行该应用。
路线图
待办事项见 TODO.md:npm + MCP Registry 发布、跨客户端托管(Streamable HTTP)、围绕解析和调度的测试,以及一个真实的屏幕录制演示 GIF。
许可证
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
- create_deckAApp
- create_quizAApp
- delete_cardAApp
- delete_deckA
- due_todayA
- edit_cardAApp
- grade_cardAApp
- rename_deckAApp
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server that integrates Claude with Anki flashcards, allowing users to review due cards and create new flashcards directly through conversation.1413MIT
- AlicenseAqualityDmaintenanceIntegrates EduChain's educational content generation capabilities with Claude Desktop, enabling creation of multiple-choice questions, comprehensive lesson plans, and flashcards for any educational topic.31MIT
- FlicenseNot gradedqualityNot gradedmaintenanceConnects Claude to Anki flashcard software via AnkiConnect, enabling users to review due cards, create flashcards, and manage spaced repetition learning through natural language conversations.
- AlicenseCqualityAmaintenanceFlashcard AI - MCP server providing AI-powered tools and automation by MEOK AI Labs410MIT
Related MCP Connectors
Voice-led, FSRS-scheduled flashcards from YouTube, PDFs, web, or text. Auto-graded quizzes.
AI-powered YouTube to flashcards with spaced repetition and Anki export
Free: turn your AI chats into spaced-repetition vocabulary. 13 tools, reads and writes.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Servation/memora-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server