2026年版 AIフラッシュカードチューター: ClaudeとMCPで復習対象カードを出題
いま復習できるカードは10枚。画面に出すのは1問だけ。答えるまで、保存済みの裏面は伏せておく。
これが、2026年に実用的なAIフラッシュカードチューターの形です。ClaudeをMCP経由で実際のFlashcardsデータにつなぎ、現在復習対象となるカードの小さな読み取り専用スナップショットを取得させます。そして1問ずつ出題させ、回答まで待たせます。保存済みの裏面を順に表示し、初回回答をチャット内に記録することはできます。しかし、FSRS上の復習は完了できません。FlashcardsアプリでAgain、Hard、Good、Easyのいずれかを自分で記録するまで、すべてのカードは復習対象のままです。

2分でつかむ全体の流れ
設定を詳しく見る前に、手順全体をまとめます。
- ClaudeにFlashcardsのリモートMCPコネクタを追加する。
- このセッションで
list_workspacesとsql_queryを許可する。 - この練習では書き込みが不要なので、
sql_executeをブロックする。 - 下の出題用プロンプトを貼り付ける。
- ワークスペースを確認し、Claudeに復習対象カードを最大10枚取得させる。
- カードの表面に1問ずつ答える。必要なときだけ、ヒントを1つ頼む。
- 終わったらFlashcardsを開き、自分でFSRS評価を選んで正式な復習を完了する。
最後の手順までが、このワークフローです。MCPセッションは、手持ちのカードを会話形式で練習するための層にすぎません。復習キューからカードを消したり、次回の復習日を変更したりはしません。
まだコネクタを設定していない場合は、ClaudeとFlashcardsをMCPで接続する方法で現在のメニュー手順を確認できます。サーバーURLは次のとおりです。
https://mcp.flashcards-open-source-app.com/mcp
Claudeを出題専用のAIフラッシュカードチューターにする
Flashcardsコネクタが公開するツールは3つです。
list_workspaces({})は、アカウントからアクセスできるワークスペースを一覧表示します。sql_query({ sql, workspaceId? })は、制限付きのSQL方言でカードを読み取ります。sql_execute({ sql, workspaceId? })は、カードやデッキを作成・編集・削除できます。
workspaceIdは呼び出しごとの引数です。確認したワークスペースを対象にするには、そのIDを渡します。省略すると、選択済みの既定ワークスペースが使われます。IDを指定しても既定値は変わらず、その選択も保存されません。
コネクタ全体が読み取り専用というわけではありません。サーバーはlist_workspacesとsql_queryによる書き込みを禁止していますが、sql_executeはカードとデッキへ書き込めます。FlashcardsのOAuthスコープは現在flashcardsの1つだけで、サーバーが強制する読み取り専用スコープは別途ありません。
この出題では、Claudeのコネクタ権限でsql_executeをブロックしてください。これはクライアント側の制御であり、Flashcardsが強制する読み取り専用OAuth権限ではありません。個別ツールを無効にできず、実行時の承認だけが使える場合は、sql_executeの要求を毎回拒否します。下のプロンプトでも呼び出しを禁じますが、プロンプト内の指示よりツール権限による制限のほうが強力です。
対話型クライアントは、PKCEとDynamic Client Registrationを使うOAuth 2.1で認可されます。ClaudeにAPIキーを貼り付ける必要はありません。現在の認証方法とツール仕様は、MCPコネクタのドキュメントで確認できます。
復習対象カードを1問ずつ出すプロンプト
次のプロンプトは、公開されているツール形式、カード項目、復習対象の判定ルールに沿っています。due_atがnullであるか、設定された時刻を迎えていれば、そのカードは復習対象です。この仕様でnullは未着手の新規カードを意味します。
このセッションでは、Flashcards MCPコネクタを出題専用のチューターとして使ってください。
ツールの境界:
- list_workspacesとsql_queryだけを呼び出してください。
- sql_executeは絶対に呼び出さないでください。
- カードの作成、更新、削除、復習予定の変更、復習済みへの変更は一切しないでください。
設定:
1. list_workspaces({})を呼び出してください。
2. ワークスペースが1つなら、その名前を示し、使ってよいか私に確認してください。
3. ワークスペースが複数あるなら、名前の一覧を示し、どれを使うか私に選ばせてください。
4. カードを読み取る前に止まり、私がワークスペースを確認するまで待ってください。
5. 確認済みのworkspaceIdを、この1回のsql_query呼び出しに渡してください。この指定で既定のワークスペースが変わるとは説明しないでください。
6. 必ず次のSQLをそのまま使ってください。
SELECT card_id, front_text, back_text, due_at, created_at
FROM cards
WHERE due_at IS NULL OR due_at <= NOW()
ORDER BY due_at ASC, created_at DESC, card_id ASC
LIMIT 10 OFFSET 0
このクエリは、現在復習対象となるカードの安定したスナップショットを取得します。Flashcardsの復習画面における正確な並び順は再現しません。due_at IS NULLの行は未着手の新規カードで、先頭に並びます。将来のカードは取得しないでください。
クエリが0行を返した場合は、そのことを伝えて終了してください。
出題時の動作:
- 最初のカードではfront_textだけを表示してください。back_textは先に見せないでください。
- カードは1枚ずつ出題し、私が答えるまで次へ進まないでください。
- 問題を選択式に変えないでください。
- 私が頼んだ場合に限り、短いヒントを最大1つ出してください。ヒントで答えを明かさないでください。
- 私が回答するか「分かりません」と言ったら、保存済みのback_textを「保存済みの答え」と明記して表示してください。
- 私の最初の回答を保存済みの答えと比較してください。このセッション内だけのメモとして、retrieved、partial、missedのいずれかを1つ記録してください。判断が曖昧なら、どのメモが適切か私に確認してください。
- ヒントや訂正であとから分かっても、最初の回答に対するメモを維持してください。そのメモをAgain、Hard、Good、Easyに変換しないでください。
- 私が「次へ」と言うか、ほかの形で準備ができたと確認するまで、次のカードへ進まないでください。
- このセッション内で同じカードを繰り返さないでください。
最後に、各カードの表面と最初の回答に対するメモを簡潔な一覧で表示してください。これらはチャット内だけのメモであり、復習イベントは記録されておらず、FSRSのスケジュールも変わっていないこと、正式な復習はFlashcardsアプリで完了する必要があることを明記してください。
クエリではNOW()をそのまま使ってください。このSQLインターフェースはCURRENT_TIMESTAMPに対応していません。3列を使った並び順にも意味があります。未着手の新規カードが先頭に並び、その中では新しく作られたカードが先です。続いて、スケジュール済みカードが復習時刻の古い順に並び、残った同順位はcard_idで解消されます。同じスナップショットに対しては再現性がありますが、アプリの復習画面と完全に同じ順序ではありません。
10枚は目標ではなく上限です。クエリを変えたり何かを書き戻したりせず、5枚で練習を終えても構いません。
1回の出題セッションはこう進む
Claudeが表示するのは、カードに保存された表面1枚だけです。できれば声に出し、記憶から答えます。詰まったらヒントを1つ頼めます。そのあとClaudeが保存済みの裏面を表示し、回答と比べます。
ヒントで答えが明らかになっても、初回回答はセッションメモに残ります。これにより、「外したが、説明を読んで分かった」を「知っていた」にすり替える甘い自己評価を防げます。分類はあえて大まかにします。10枚を通じて傾向をつかむ役には立ちますが、スケジューラへの入力値ではありません。
この流れを練習として成立させるのは、答えを見せる前の待ち時間です。表面と裏面をまとめて表示するチャットは、読むページが1つ増えただけです。1問、1回の回答、1回の答え合わせという順序で、実際の想起練習になります。
口頭練習は正式なFSRS復習にならない
境界は明確です。Flashcards MCPは復習対象カードを読み取れますが、復習イベントは送信できません。review_eventsリソースと、due_at、reps、lapses、fsrs_card_state、fsrs_last_reviewed_atを含むカードのスケジュール項目は、エージェント向けインターフェースでは読み取り専用です。sql_executeでさえ、変更できるのはカードとデッキだけです。ClaudeはAgain、Hard、Good、Easyの評価を保存できず、スケジュールの更新も、復習済みへの変更もできません。
そのため、チャットが終わってもカードは復習対象のままです。
ホスト版アプリか別のFlashcardsクライアントを開き、正式な復習フローでもう一度カードに答えてください。そのときの回答を自分で評価してください。チャットですでに答えを見ているため、直後の再回答は簡単に感じるかもしれません。retrieved、partial、missedを機械的にFSRS評価へ置き換えないでください。正直に評価しにくいなら、普段どおりアプリで復習したあと、AIチューターを解説用に使う方法もあります。
詳しくは、アクティブリコールと間隔反復の違いを参照してください。アクティブリコールは今何を思い出せるかを試し、間隔反復は何をいつ復習に戻すかを決めます。このClaudeセッションが担うのは前者で、後者はアプリの役割です。
答えを見せる前に待つ理由
この出題を想起練習にするのは、Claudeに回答を待たせるという、少し面倒な制約です。表面に答える前に裏面を見ると、その回は読むだけになります。裏面を隠して初めて、自分の想起を確かめられます。
2009年のランダム化比較試験では、2つの医学トピックを学ぶ小児科・救急医療の研修医40人を追跡しました。フィードバック付きの短答式テストは、学習直後と、その後およそ2週間間隔でさらに2回行われました。6か月以上たった時点での平均得点は、繰り返しテストした教材で39%、復習シートで繰り返し学習した教材で26%でした。論文の抄録では、この13パーセントポイントの差が報告されています。
ただし、これは医学教育を扱った小規模研究1件の結果です。AIチューターの試験ではなく、このMCPワークフローが成績を上げる証明でもありません。この研究が支えるのは、裏面を見る前に一度答えるという限定的な設計判断です。上のプロンプトも、裏面を隠し、ヒントを制限し、初回回答を残すことで、その境界を守っています。
保存済みの裏面を正解の基準にする
AIチューターは採点中に、答えを補強したり、話を広げたり、気付かないうちに別の答えへ置き換えたりできます。自分のカードを復習する場面では、これは危険です。
このプロンプトでは、Claudeに保存済みのback_textを表示させ、回答をそのテキストと比較させます。食い違いを説明するときも、練習の基準である元の答えは見える状態に保ちます。裏面が誤っている、または不完全なら、セッション後に信頼できる情報源を使ってカードを別途修正してください。もっともらしい訂正をチャット内だけで済ませ、元のカードに問題がなかったかのように扱ってはいけません。
質問を先に出す学習法については、AIでアクティブリコールする方法で、ヒントや解説を早く出しすぎないための手順を説明しています。
接続前に確認するプライバシーと権限
Claudeがsql_queryを呼び出すと、Flashcardsは要求されたカードデータを外部のAIクライアントへ返します。選択したクライアントやモデルプロバイダーは、アカウント設定と規約に従って、そのデータを処理または保持する可能性があります。カードデータがFlashcards内だけに留まるわけではありません。
非公開デッキを使う前に、その本文を外部プロバイダーへ送ってよいか確認してください。単語学習用デッキと、患者記録、勤務先の文書、私的な日記から作ったカードでは、必要な判断がまったく異なります。セッションに必要な少数だけを取得し、同じチャットに無関係なコネクタや機密情報源を混ぜないでください。
sql_executeのブロックは、その設定を強制するクライアント上で書き込みを防ぎます。しかし、OAuth資格情報そのものが読み取り専用になるわけではなく、返されたテキストのプライバシーが保証されるわけでもありません。個別ツールを無効にできず、呼び出しごとの承認もないクライアントなら、接続全体を書き込み可能として扱ってください。
詳しい脅威モデルは、フラッシュカードでMCPを使っても安全?で扱っています。通常の出題セッションなら、確認事項は絞れます。MCPのURLとワークスペースを確認し、書き込みをブロックし、取得行数を抑え、返されたデータの行き先を把握してください。
復習対象カードは少数ずつ取得する
「AIにフラッシュカードを出題してもらう」となると、デッキ全体を対象にしたくなります。しかし、一度に5枚か10枚へ絞るほうが、たいていうまくいきます。
枚数が少なければ、十分に答え、必要ならヒントを求め、なぜ外したのかも振り返れます。外部クライアントへ渡るカード本文も少なくて済みます。アプリで正式な復習を終えたあと、まだ集中力が残っている場合だけ次のセットへ進んでください。
重要度を決める明確な基準がない限り、Claudeに「最も重要な」カードを選ばせないでください。サンプルクエリの基準はもっと限定的です。未着手の新規カードと、復習時刻を迎えたスケジュール済みカードだけを含めます。新規カードが先に並び、そのあとにスケジュール済みカードが復習時刻の古い順で続きます。この安定したスナップショットは短い練習に向いていますが、アプリの復習画面と同じ順序だとは主張しません。復習時期を決めるのは引き続きFSRSで、Claudeが変えるのは問題の出し方だけです。
Claude・MCP・復習対象カードのFAQ
Claudeに自分のフラッシュカードを出題してもらえますか?
はい。Flashcards MCPコネクタを使えば、Claudeは確認済みのワークスペースから復習対象カードの小さなスナップショットを読み取り、表面だけを表示し、回答を待ってから保存済みの裏面を見せられます。上のプロンプトでは、セッションで使うツールをlist_workspacesとsql_queryだけに絞っています。
答えたら、Claudeがカードを復習済みにしますか?
いいえ。エージェント向けインターフェースは復習イベントを送信できず、FSRSのスケジュール項目も変更できません。同じ復習対象カードをFlashcardsアプリで正式に復習してください。自分の評価を記録し、次の復習日はFSRSに決めてもらってください。
このMCP接続は読み取り専用ですか?
いいえ。list_workspacesとsql_queryは読み取り専用ですが、コネクタ全体ではsql_executeによる書き込みが可能です。出題専用の設定は、クライアント側でsql_executeをブロックまたは拒否することで成り立ちます。現在のOAuthには、読み取り用と書き込み用に分かれた認可スコープではなく、flashcardsという1つのスコープしかありません。
AIにAgain、Hard、Good、Easyを選ばせてもいいですか?
選ばせるべきではありません。Claudeはretrieved、partial、missedのような大まかなセッションメモを残せますが、これらはFSRS評価ではなく、アプリにも保存されません。正式な評価はアプリで自分で選んでください。
プロンプトのクエリには新規カードも含まれますか?
はい。未着手の新規カードはdue_at IS NULLで、公開されている復習対象ルールに該当します。このクエリでは、スケジュール済みの復習対象カードより先に並びます。将来のdue_atが設定されたカードは除外されます。
workspaceIdを渡すと、既定のワークスペースは変わりますか?
いいえ。sql_queryにworkspaceIdを渡すと、その1回の呼び出しだけが指定したワークスペースを対象にします。省略すると選択済みの既定ワークスペースが使われますが、IDを指定しても既定値は変わらず、その選択も保存されません。
AIフラッシュカードチューターの役割を絞る
役に立つAIフラッシュカードチューターの仕事は小さくて十分です。復習対象カードの表面を数枚取得し、回答を待ち、手助けを最小限に抑え、カードに保存されている答えを見せます。
クライアント側でsql_executeをブロックし、スナップショットの取得にはサーバー側で読み取り専用が強制されるsql_queryを使ってください。初回回答のラベルは、その場限りのチャットメモとして扱います。そのあとFlashcardsで正式な復習を完了し、FSRSに評価を渡して次の復習日を決めてもらいます。それまでは、チャットに出したすべてのカードが復習対象のままです。