ankimcp/anki-mcp-server
A Model Context Protocol (MCP) server that enables AI assistants to interact with Anki, the spaced repetition flashcard application.
Anki MCP サーバー – 概要
Anki MCP サーバーは、Model Context Protocol(MCP)を実装したNode‑JSサービスです。AIアシスタント(Claude、Cursor、Cline、Zedなど)とAnki間隔反復アプリ(AnkiConnectプラグイン経由)の間に位置します。豊富な「ツール」セット(デッキ一覧、期限切れカード取得、ノート作成、メディアアップロード、Ankiのデスクトップウィンドウを操作するGUIコマンドなど)を公開することで、サーバーは言語モデルがあたかも対話型チューターのようにあなたの個人用フラッシュカードコレクションと対話できるようにします。
存在理由
- AI駆動の学習 – チャットを離れることなく、アシスタントにデッキのレビュー、新しいカードの生成、画像の追加を依頼できます。
- 標準化されたトランスポート – MCPは、多くのAIクライアント製品がすでに理解しているJSON‑over‑STDIOまたはHTTP APIを定義します。
- Ankiから分離 – サーバーはAnkiの外部で実行されるため、サブプロセスを起動できる、またはローカルWebサーバーを呼び出せるAIクライアントはすべて使用できます。
このリポジトリとアドオンの使い分け
- 最も簡単なオールインワン体験(HTTP、リモートトンネル、Node.js不要)には、AnkiMCPアドオン(Anki内にインストール)を使用します。
- 次のニーズがある場合は、このスタンドアロンサーバーを使用します:
- STDIOトランスポート – Claude Desktop、Cursor、Cline、Zedなどで必要。
- MCPBバンドル – Claude Desktop用のワンクリックインストーラー。
コア機能(READMEに記載)
| カテゴリ | ツール(抜粋) | 機能 |
|---|---|---|
| 復習と学習 | sync, get_due_cards, present_card, rate_card, forgetCards, setDueDate |
AnkiWebと同期、復習予定のカード取得、カード表示、評価記録、スケジュールの手動調整。 |
| デッキ管理 | listDecks, deckStats, createDeck, changeDeck |
デッキ一覧、詳細統計、新しいデッキ作成(2階層階層対応)、デッキ間でのカード移動。 |
| ノート管理 | addNote, addNotes, findNotes, notesInfo, updateNoteFields, deleteNotes |
単一または一括ノート作成、Ankiクエリ構文での検索、ノートフィールドの読み取り・編集、ノート削除。 |
| タグ管理 | getTags, addTags, removeTags, replaceTags, clearUnusedTags |
タグの取得、追加、削除、名前変更、クリーンアップ。 |
| メディア管理 | getMediaFilesNames, retrieveMediaFile, storeMediaFile, deleteMediaFile |
メディアファイルの一覧取得、ダウンロード(base64)、アップロード(パス、URL、base64)、削除。READMEでは速度のためファイルパスまたはURLの使用を推奨。 |
| モデル/テンプレート管理 | modelNames, modelFieldNames, modelStyling, modelTemplates, createModel, updateModelStyling, addModelField … |
ノートタイプ(モデル)、フィールド、CSSスタイル、カードテンプレートの検査、作成、変更。 |
| 統計 | collection_stats, review_stats |
コレクション全体の統計と復習履歴の分析。 |
| GUIツール(復習用ではない) | guiBrowse, guiAddCards, guiEditNote, guiDeckOverview, guiCurrentCard, guiUndo |
Ankiのデスクトップウィンドウを開いたりUIを操作するコマンド。インタラクティブなワークフローに有用。 |
サーバーは現在53ツール(基本42 + GUI 11)を提供しています。各ツールはMCP JSONプロトコルを介して呼び出され、AIが解析してアクションを起こせる構造化データを返します。
実行方法
- 前提条件 – Ankiをインストールし、AnkiConnectプラグインを追加し、Node.js 22.12以上が必要です。
- インストールオプション
- npm(グローバルまたはnpx) –
npm install -g @ankimcp/anki-mcp-serverを実行してからankimcpを実行するか、npx @ankimcp/anki-mcp-serverでオンザフライ実行。 - MCPBバンドル – GitHubリリースページから
.mcpbファイルをダウンロードし、Claude Desktopにインストール(ドラッグ&ドロップまたは設定 → 拡張機能)。 - ソースから – クローン、
npm install、npm run build。
- npm(グローバルまたはnpx) –
- トランスポートを選択
- STDIO – デスクトップAIクライアントに最適。クライアントがサーバーをサブプロセスとして起動(
ankimcp --stdio)。Claude Desktop、Cursor、Cline、Zed、opencode用の設定スニペットが提供されています。 - HTTP – ローカルWebサーバーを実行(
ankimcpはデフォルトでlocalhost:3000)。WebベースのAIツールに有用。
- STDIO – デスクトップAIクライアントに最適。クライアントがサーバーをサブプロセスとして起動(
- リモートアクセス(AIがクラウドで動作する場合)
- トンネル(推奨) –
ankimcp --tunnelで管理されたWebSocketトンネルサービスに接続し、OAuthデバイスフローで認証、ChatGPTやClaude.aiなどに渡せる公開URLが取得できます。 - ngrok – 代替の認証なしオプション(READMEには詳しくありません)。
- トンネル(推奨) –
一般的なユースケースの流れ(READMEの例より)
- デッキを復習 – AIが
sync、次にget_due_cards(デッキでフィルタリング可能)を送信し、返されたカードをpresent_cardで反復処理、各回答後にrate_cardを呼び出します。 - 新しいカードを作成 – AIが
modelNamesでノートタイプを選択、必要に応じてRTLアラビア語用にcreateModel、次にaddNotesで必要なフィールドを追加。 - 画像を追加 – AIが
storeMediaFileでローカルファイルをアップロードし、guiSelectedNotes+notesInfoで現在選択中のノートを取得、updateNoteFieldsで先頭フィールドを更新して<img>タグを埋め込み。
誰に役立つか?
- フラッシュカードをその場で取得・説明・編集できる対話型チューターを求める学習者。
- 個人のAnkiコレクションへのプログラムによるアクセスが必要なカスタムAIエージェントを開発する開発者。
- LLM駆動スクリプトによる一括ノート作成やメディア管理を自動化したい教育者。
制限と注意点(READMEによる)
- サーバーはAnkiConnectが必要 – Ankiと直接通信しません。
- 一部のツール(例:
forgetCards,setDueDate)はレビューを記録せずにスケジュールを変更するため、長期統計に影響する可能性があります。 - リモートアクセスには管理されたトンネル(推奨)または別のトンネルソリューションが必要です。Ankiを直接インターネットに公開することは推奨されません。
- ほとんどのユーザーにとって、AnkiMCPアドオンの方が簡単です。このリポジトリは主にSTDIOまたはMCPBバンドルが必要な方向けです。
クイックスタート(npx経由のSTDIO)
{
"mcpServers": {
"anki-mcp": {
"command": "npx",
"args": ["-y", "@ankimcp/anki-mcp-server", "--stdio"],
"env": {"ANKI_CONNECT_URL": "http://localhost:8765"}
}
}
}
上記のJSONをAIクライアントの適切な設定ファイル(例:Cursorの場合は ~/.cursor/mcp.json)に配置すると、クライアントがサーバーを自動的に起動します。
要約: Anki MCP サーバーは、Nodeベースのブリッジであり、最新のLLM搭載アシスタントが明確に定義されたプロトコルを通じてAnkiフラッシュカードを読み取り、編集、管理できるようにし、ローカルのSTDIOとリモートのHTTP/トンネル接続の両方をサポートします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト