Skip to main content
Glama

Memora MCP

License: MIT MCP Apps TypeScript React

将任何对话变成交互式学习会话,直接在 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

三种学习方式,在 Claude 中内联渲染

功能

三种学习方式,全部内联渲染,且评分方式相同:

  • 闪卡:点击翻转,然后评分记住了 / 没记住

  • 选择题测验:选择一个选项,正确/错误答案会立即显示。

  • 完形填空:空白处原位揭示,句子保持完整。在卡片正面将空白写成 [...],它就会自动变成完形填空卡片。

间隔重复:每次评分都会更新每张卡片的 FSRS 计划(通过 ts-fsrs),因此薄弱卡片会更早重现,到期卡片优先出现。询问 "今天有什么到期的?" 即可获得所有牌组的汇总。

用分类组织:用 :: 命名牌组以嵌套它们(例如 LLM::Attention)。浏览分类树,或将同一棵树作为交互式思维导图浏览,并在一个合并会话中学习整个分支。测验牌组会带有徽章标记。

管理你的牌组:无需离开聊天即可创建、追加、编辑、重命名和删除牌组与卡片。创建牌组时传入 reverse 还可以对每张卡片进行反向练习(对词汇学习很方便)。

纯 JSON:牌组存放在 data/decks.json 中,每次调用时实时读取。可以手动编辑,也可以让 Claude 来构建。无需数据库,无需外部服务。

以分类树或思维导图浏览牌组

Related MCP server: EduChain MCP Server

工具

只有 review_deckstudy 会打开内联翻卡界面;其他工具都返回文本摘要,因此在聊天中编辑或创建不再弹出该组件。

工具

用途

review_deck

打开一副牌组进行复习(到期卡片优先,每次会话有数量上限)。

study

复习整个分类子树,合并到一个会话中(每次会话有数量上限)。

create_deck

生成闪卡或完形填空卡片;reverse 还会添加反向卡片。

create_quiz

生成选择题。

grade_card

记录复习结果并更新卡片的 FSRS 计划(由界面调用)。

due_today

汇总所有牌组中到期的内容,并标记掌握不佳的卡片(遗忘 3 次及以上)。

edit_card

修改卡片的正面和/或背面。

refine_card

建议将卡片拆分为原子化的小卡片,或重写以测试理解程度。

apply_refinement

在用户批准建议的卡片后持久化改进结果。

capture

将刚刚让你受挫的内容(一个 bug、一道答错的题)转化为草稿卡片。

apply_capture

在用户批准后持久化捕获的卡片。

rename_deck

重命名牌组(同时会在分类树中移动它)。

delete_card

删除单张卡片。

delete_deck

删除整个牌组。

卡片生成遵循 Memora 的质量规则(原子化的单一概念卡片、1-5 个词的答案、主动回忆、无歧义、不泄露答案、应用优先于定义),基于 Wozniak 的 《知识表述的 20 条规则》。新卡片在写入时会经过 lint 检查并被标记(绝不会被阻止),以便 Claude 可以修改它们。

工作原理(MCP Apps)

工具声明一个 ui:// 资源。当 Claude 调用该工具时,宿主(Claude Desktop)获取该资源,在沙箱化 iframe 中渲染其 HTML,将工具结果传递给界面,界面再通过 JSON-RPC 与宿主通信(用于给卡片评分并向模型报告进度)。

MCP Apps 往返流程

快速开始

前置要求

  • 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 deck

  • make me a deck of 10 Spanish travel phrases

  • make 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 system

  • turn what we just discussed into a deck called "Photosynthesis"

  • study my LLM category

  • what'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_deckcreate_quizgrade_card 会以原子方式写入此处。

  • 测验卡片会添加 "options": ["...", "..."];其 back 是正确选项。

  • 完形填空卡片在正面将空白写成 [...],隐藏的词语作为 back

  • 随着你的复习,卡片会获得 due 日期和 FSRS srs 块;没有这些的卡片会被视为新卡片。

  • 保持其为有效的 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。

许可证

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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