flashdeck について
flashdeck は、ローカルの Anki と AnkiConnect を通じてフラッシュカードを学習・管理する MCP サーバー兼コマンドラインツールです。復習操作に加え、デッキ、ノート、タグ、コレクション統計を扱えます。
主な機能
- 01期限到来カードの復習と評価
- 02デッキの一覧表示と作成
- 03ノートの作成、検索、更新、削除
- 04ノートのタグとタイプの管理
- 05デッキとコレクション統計の表示
- 06AnkiWeb との同期
活用シーン
- 01指定デッキの期限到来カードを復習
- 02Anki へのノート追加や一括作成
- 03ノートを検索してフィールドを更新
- 04学習状況とコレクション統計を確認
MCP 対応
MCP サーバーは、カードの復習、デッキ、ノート、タグ、ノートタイプ、同期、統計のツールを公開します。Anki と AnkiConnect アドオンの起動が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
20掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
flashdeck
flashdeck を使用すると、エージェントが AnkiConnect を実行しているローカルの Anki インスタンスを通じて、Anki のフラッシュカードを学習・管理できます。復習の一連の流れ(期限が来たカード、カードの提示、評価)、デッキ、ノート、タグ、ノートタイプ、コレクション統計に対応しています。これは、元の Anki MCP 仕様に記載された 53 個のツールのうち、ラベル付きの主要な 20 個のサブセットです。
AnkiConnect アドオンをインストールした状態で、Anki を起動しておく必要があります。デフォルトでは、flashdeck は http://127.0.0.1:8765 に接続します。接続先を変更するには、ANKICONNECT_URL を設定してください。
インストール
npx @reneturcios/flashdeck check
または、コンテナイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/flashdeck
コンテナはデフォルトで MCP サーバーとして起動します。CLI として使用するには、CLI 引数を渡してください。コンテナからホストの AnkiConnect エンドポイントにネットワークアクセスできる必要がある点に注意してください。
CLI
flashdeck check # probe AnkiConnect (deck list on success)
flashdeck decks # list decks
flashdeck due [deck] # due cards, optionally for one deck
flashdeck stats [deck] # deck stats, or collection stats with no deck
flashdeck tags # all tags
flashdeck models # all note types
flashdeck sync # sync with AnkiWeb
flashdeck --version
ほとんどのコマンドは --json を受け付けます。終了コード:0 は成功、1 はエラー(メッセージに AnkiConnect または検証の問題が示されます)、2 は使用方法のエラーです。
MCP サーバー
npx -y @reneturcios/flashdeck mcp
MCP クライアントの設定:
{
"mcpServers": {
"flashdeck": {
"command": "npx",
"args": ["-y", "@reneturcios/flashdeck", "mcp"]
}
}
}
ツール
| ツール | 入力 | 機能 |
|---|---|---|
sync | — | AnkiWeb と同期します。 |
get_due_cards | deck?, include_answer? | 期限が来たカードを取得します。任意でデッキを指定して絞り込めます。指定がない場合、回答は含まれません。 |
get_cards | deck?, state?, include_answer? | 状態(due/new/learning/suspended/buried)とデッキでカードを絞り込みます。 |
present_card | card_id | カードの質問面/表面を表示します。 |
rate_card | card_id, ease (1-4) | 「もう一度」「難しい」「良い」「簡単」で評価し、次回の復習を予定します。 |
listDecks | include_stats? | デッキの一覧を表示します。任意でデッキごとの統計を含められます。 |
deckStats | deck | 1 つのデッキの統計情報を表示します。 |
createDeck | deck | デッキを作成します(Parent::Child、最大 2 階層)。 |
addNote | deck_name, model_name, fields, tags? | ノートを 1 件作成します。 |
addNotes | deck_name, model_name, notes | ノートを最大 100 件まとめて作成します。 |
findNotes | query | Anki クエリ構文でノートを検索します。 |
notesInfo | notes | ノートの詳細を表示します。 |
updateNoteFields | note_id, fields | ノートのフィールドを更新します。 |
deleteNotes | notes, confirm? | ノートを削除します。confirm: true を指定しない場合は拒否されます。 |
getTags | — | すべてのタグを表示します。 |
addTags | notes, tags | ノートにタグを追加します。 |
removeTags | notes, tags | ノートからタグを削除します。 |
modelNames | — | ノートタイプの一覧を表示します。 |
modelFieldNames | model_name | ノートタイプのフィールド名を表示します。 |
collection_stats | — | コレクションの集計統計を表示します。 |
デッキの統計は、状態ごとのカード検索結果をもとにローカルで計算されます。統計用エンドポイントは前提としていません。Anki が起動していない場合、ツールは空の結果ではなく、失敗した AnkiConnect リクエストを示すエラーを返します。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, fake fetch only, no live Anki
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。