mcpField
A
Anki

Anki

ローカル
github.com/nietus科学・教育443 週間前に更新

Anki について

anki-mcp は AnkiConnect を通じて Anki の暗記カードを管理する MCP サーバーで、35 のツールを提供します。学習者が、チャットクライアントから復習、学習統計の確認、カードの一括編集を行うことを想定しています。

主な機能

  1. 01チャットでのクイズ形式の復習と Anki への記録
  2. 02期限到来数、連続学習日数、復習統計の表示
  3. 03リーチ カードの検出と個別の復習履歴の確認
  4. 04重複をスキップする一括ノート作成
  5. 05ラベルによるカードグループの一時停止と復元
  6. 06Azure テキスト読み上げによるオプションの音声生成

活用シーン

  1. 01今日の期限到来カードの確認と学習セッションの開始
  2. 02間違えやすいカードの抽出と一括修正
  3. 03記事を選択したデッキの穴埋めカードに変換

MCP 対応

このプロジェクトは MCP サーバーであり、Anki の学習、カード、ノート、デッキ、ノートタイプに関するツールとリソース、プロンプトを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbanki-mcp.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

anki-mcp

tests License: MIT

Claude(または任意の MCP クライアント)と会話しながら、Ankiのコレクションを学習・管理できます。AnkiConnect経由で35個のツールを利用できます。チャットで出題してもらう、今日の学習内容や定着度を確認する、何度も忘れるカードを探す、ノートをまとめて作成・整理する、再開したくなるまでカードのグループ全体を一時停止する、といったことができます。

動画を見る

できること

  • 「今日は何を勉強すればいいですか?」→ デッキごとの期限到来数、連続学習日数、今週の復習回数を表示します。
  • 「スペイン語デッキから期限の来たカードを10枚出題してください。」→ 一問ずつ出題し、採点して、次の間隔とともにAnkiに記録します。
  • 「何度も間違えるカードはどれですか?修正を手伝ってください。」→ 苦手カードとその復習履歴を表示し、承認した内容に書き換えます。
  • 「試験が終わるまで、HSK5タグのカードをすべて一時停止し、簡単に戻せるようにしてください。」→ 対象のカードだけを正確に復元できる名前付きの一時停止を作成します。スケジュールは維持されます。
  • 「この記事をBiologyデッキの穴埋めカードにしてください。」→ 重複を確認してまとめて追加します。
  • 「このデッキの音声がないカードすべてに音声を追加してください。」→ Azure TTSでまとめて追加します。
  • 「grammarタグのカードを新しいサブデッキに移動してください」/「todoタグをreviewに変更してください」/「未処理のカードを今後2週間に分散してください」。

一括変更はドライランで事前確認できます。削除には必ず確認手順が必要です。Ankiが閉じている場合、アシスタントは黙って失敗するのではなく、Ankiを開くよう案内します。

インストール

Node.js 18以降、起動中のAnki、およびAnkiConnectアドオン(コード2055492159)が必要です。

Claude Desktop

最新リリースからanki-mcp.mcpbをダウンロードし、Settings → Extensionsにドラッグしてください。これで完了です。

Claude Code
claude mcp add anki --scope user -- npx -y github:nietus/anki-mcp
Cursorおよびその他のMCPクライアント

クライアントのMCP設定に以下を追加してください。

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["-y", "github:nietus/anki-mcp"]
    }
  }
}

Windowsでクライアントからnpxを直接起動できない場合は、"command": "cmd"と"args": ["/c", "npx", "-y", "github:nietus/anki-mcp"]を使用してください。

ソースからインストール
git clone https://github.com/nietus/anki-mcp
cd anki-mcp
npm install
npm run build

次に、クライアントからnode /path/to/anki-mcp/build/client.jsを指定してください。Claude Desktopバンドルを自分でビルドするには、npm run pack:mcpbを実行してください(出力先はdist/anki-mcp.mcpbです)。

設定

すべての環境変数は省略可能です。プロジェクトフォルダー内の.envファイルに記述するか、MCPクライアント経由で渡してください。

変数デフォルト用途
AZURE_API_KEY–音声ツール(Azure Text-to-Speech)を有効にします。
AZURE_REGIONeastusAzure Speechのリージョンです。
ANKI_CONNECT_HOSThttp://127.0.0.1AnkiConnectのホストです。
ANKI_CONNECT_PORT8765AnkiConnectのポートです。
ANKI_CONNECT_KEY–アドオン設定で指定した場合のAnkiConnect APIキーです。

開発

npm test           # unit + in-memory MCP server tests (no Anki needed)
npm run inspector  # try the tools interactively

利用可能なツール

各ツールには読み取り専用、書き込み、破壊的操作のいずれかが明記されているため、Claude Desktopなどのクライアントは読み取りを自動承認し、破壊的な変更の前に確認を求めることができます(「Anki is not running」などのエラーも、読みやすいツール結果として返されます)。

多くの一括操作ツールでは、カードやノートを同じ方法で選択できます。deckName(サブデッキも対象)、tags(いずれかに一致)、query(任意のAnki検索。AND条件で結合)、または明示的なcardIds/noteIdsを指定します。書き込みツールではdryRun: trueを指定して、変更を事前確認できます。

学習
ツール説明
get_study_overviewデッキごとの今日の新規・学習・復習カード数、今日復習したカード数、連続学習日数、過去7日間/30日間の合計を取得します。
get_due_cards / get_new_cards学習するnum枚のカード(任意で1つのdeckNameから)と、各ボタンで設定される間隔を取得します。
answer_cards回答(cardId、ease 1~4)を記録し、各カードの新しい間隔を取得します。 (以前はupdate_cardsでした。)
find_leeches苦手なカード(leechタグが付いている、または失敗回数が多いカード)を、失敗回数と易しさで順位付けして取得します。
get_card_history最大20枚のカードの完全な復習ログを取得します。
get_retention_statsN日間のデッキについて、真の定着率(新規・成熟)、1日あたりの復習数、学習時間を取得します。
undoAnkiで直前の操作を取り消します。
カードの選択とスケジュール設定
ツール説明
find_cardsページ分けされた検索(query、limit、offset)を行います。includeで返す項目(question、answer、fields、stats)を選択します。
suspend_cards / unsuspend_cardsカードを停止/再開します。例:デッキYにあるタグX付きのすべてのカード。スケジュールは保持されます。停止時にlabelを指定すると(ノートにpaused::<label>タグが付きます)、後でunsuspend_cards { label }を実行して、そのグループだけを再開できます。他の理由で停止中のカードには影響しません。
move_cardsカードをtargetDeckに移動します(存在しない場合は作成されます)。
reschedule_cardsset_due_date(days:0、1!、3-7)、forget(新規カードにリセット)、またはrelearnを実行します。
ノートの作成と編集
ツール説明
add_cardノートを1つ作成します。
add_bulk複数のノートを作成します。重複または無効なノートはスキップされ、理由が報告されます。
add_cloze_cardsテキストと隠すtermsから穴埋めノートを作成するか、{{c1::...}}形式のマークアップを含むテキストから作成します。
update_note_fields / bulk_update_notes既存のノートのフィールドを編集します。
find_and_replaceノート全体を対象に、プレーンテキストまたは正規表現で置換します。任意で一部のfieldsに限定できます。
manage_tagslist(フィルターを指定してタグの件数を取得)、add、remove、rename、clear_unusedを実行します。
add_imageurl、ローカルのpath、またはbase64のdataからフィールドに画像を追加します。
delete_notes2段階で削除します。最初の呼び出しでプレビューを表示してconfirmTokenを返し、2回目の呼び出しでトークンを指定して削除します。
音声(AZURE_API_KEYが必要)
ツール説明
add_card_with_audiosourceFieldから生成した音声をaudioFieldに追加したノートを作成します。
update_card_with_audio既存のノート1つの音声を生成します。
bulk_generate_audio複数のノートの音声を生成します(デフォルトでは音声フィールドが空のノートのみ)。呼び出しごとにlimitを指定します。

対応言語:en、es、fr、de、it、ja、ko、pt、pt-PT、ru、zh、ar、nl、hi、tr、pl、sv、fi、da、no、cs、hu、el、he、th、vi、id、ms、ro。

デッキとノートタイプ
ツール説明
get_deck_names / create_deckデッキを一覧表示または作成します。
get_deck_model_infoデッキで使用されているノートタイプを取得します(カードを追加する前に呼び出してください)。
get_model_names / get_model_detailsノートタイプの一覧、または1つのノートタイプのフィールド、テンプレート、CSSを取得します。
edit_note_type_fieldフィールドをadd、remove、rename、またはrepositionします。
update_note_type_templates / update_note_type_stylingテンプレートまたはCSSを置き換えます。
create_modelノートタイプを作成します。
syncAnkiWebと同期します。

プロンプト

プロンプト説明
quiz_me学習セッションを行います。1問ずつ出題し、採点してAnkiに記録します。
make_cardsテキストを基本的なフラッシュカードに変換します(追加前にプレビューします)。
leech_review何度も忘れてしまうカードを見つけて、改善します。

リソース

  • anki://collection/overview – 学習の概要。
  • anki://search/isdue、anki://search/isnew、anki://search/deckcurrent – 各最大50枚のカード。
  • anki://deck/{deckName}/overview – 1つのデッキの期限到来カード数。
  • anki://model/{modelName} – ノートタイプのフィールド、テンプレート、CSS。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。