Skip to main content
Glama

Memora MCP

License: MIT MCP Apps TypeScript React

あらゆる会話を、Claude Desktop の中でそのまま操作できるインタラクティブな学習セッションに変えます。Claude にデッキ作成を依頼するとカードを生成し、インラインで表示されたレビューをクリックして進められます。フラッシュカードをめくったり、多肢選択クイズに答えたり、穴埋め(cloze)の空欄を埋めたりできます。すべての回答は間隔反復スケジュールを更新し、結果は Claude にフィードバックされるので、間違えた問題を重点的にドリルできます。

キーワード: Model Context Protocol、MCP サーバー、MCP Apps、Claude Desktop、フラッシュカード、クイズ、間隔反復、SRS、FSRS、Anki の代替。

MCP Apps 拡張機能(SEP-1865)上に構築: コア MCP 仕様 2025-11-25 に加え、Apps 拡張機能 2026-01-26 をサポート。

Claude 内にインライン表示される3つの学習モード

特徴

3つの学習モード。すべてインラインで表示され、すべて同じ方法で採点されます:

  • フラッシュカード: クリックしてめくり、「わかった」/「わからなかった」 で評価します。

  • 多肢選択クイズ: 選択肢を選ぶと、正解/不正解が即座に表示されます。

  • 穴埋め(空欄補充): 空欄がその場で表示されるため、文の流れが保たれます。カードの表面に [...] と書くと、自動的に穴埋めカードになります。

間隔反復: すべての評価がカードごとの FSRS スケジュール(ts-fsrs 経由)を更新するため、苦手なカードはより早く再登場し、期限が来たカードが優先されます。「今日の予定は?」 と聞けば、全デッキのサマリーが表示されます。

カテゴリで整理: デッキ名に :: を使うと階層化できます(例: LLM::Attention)。カテゴリツリー、または同じツリーをインタラクティブなマインドマップとして閲覧でき、ブランチ全体を1つの統合セッションで学習できます。クイズデッキにはバッジが表示されます。

デッキの管理: チャットから離れることなく、デッキの作成、追加、編集、名前変更、削除ができます。デッキ作成時に reverse を渡すと、各カードを逆方向からもドリルできます(語彙学習に便利)。

JSON だけ: デッキは data/decks.json に保存され、毎回の呼び出しでライブに読み込まれます。手動で編集することも、Claude に作成させることもできます。データベースも外部サービスも不要です。

デッキをカテゴリツリーまたはマインドマップとして閲覧

Related MCP server: EduChain MCP Server

ツール

インラインのフリップカード UI を開くのは review_deckstudy だけです。それ以外はすべてテキストのサマリーを返すため、チャット内での編集や作成でウィジェットが表示されることはありません。

ツール

機能

review_deck

1つのデッキをレビュー用に開く(期限が来たカードが優先、セッションごとに上限あり)。

study

カテゴリのサブツリー全体を1つのセッションに統合してレビューする(セッションごとに上限あり)。

create_deck

フラッシュカードまたは穴埋めカードを生成する。reverse で逆方向のカードも追加。

create_quiz

多肢選択問題を生成する。

grade_card

レビュー結果を記録し、カードの FSRS スケジュールを更新する(UI から呼び出される)。

due_today

全デッキの期限が来たカードを要約し、苦戦中のカード(3回以上の失念)をフラグ付けする。

edit_card

カードの表面や裏面を変更する。

refine_card

カードを原子的な断片に分割するか、理解度を試す形に書き直すことを提案する。

apply_refinement

ユーザーが提案されたカードを承認した後、リファインメントを永続化する。

capture

直近でつまずいたこと(バグ、間違えた問題)をドラフトカードに変換する。

apply_capture

ユーザーが承認した後、キャプチャしたカードを永続化する。

rename_deck

デッキ名を変更する(カテゴリツリー内での移動も行う)。

delete_card

単一のカードを削除する。

delete_deck

デッキ全体を削除する。

カード生成は Memora の品質ルール(原子的な単一コンセプトのカード、1〜5語の回答、能動的想起、曖昧さの排除、回答の漏洩なし、定義よりも応用)に従います。これは Wozniak の『知識を定式化するための20のルール』に基づいています。新しいカードは書き込み時に lint され、フラグ付けされます(ブロックはされません)。Claude が修正できます。

仕組み(MCP Apps)

ツールが ui:// リソースを宣言します。Claude がツールを呼び出すと、ホスト(Claude Desktop)がそのリソースを取得し、サンドボックス化された iframe 内で HTML をレンダリングし、ツールの結果を UI に渡します。UI は JSON-RPC を介してホストに応答を返します(カードの採点とモデルへの進捗報告のため)。

MCP Apps のラウンドトリップ

クイックスタート

前提条件

  • Node.js 20.11+

Claude Desktop に接続

設定 > 開発者 > 設定を編集 を開き、mcpServers の下に Memora を追加します:

{
  "mcpServers": {
    "memora": {
      "command": "npx",
      "args": ["-y", "@servation/memora-mcp", "--stdio"]
    }
  }
}

その後、Claude Desktop を完全に終了し(システムトレイから)、再起動します。memora が 設定 > 開発者 の下に表示され、いくつかのサンプルデッキがプリロードされています。

デッキは ~/.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 も利用可能)。

  • UI: 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