Provides tools for managing Anki flashcards and decks, including creating and updating cards, managing note types, searching for cards, retrieving due and new cards, and handling card reviews programmatically through the AnkiConnect plugin.
アンキ-MCP
Anki用のMCPサーバー。このサーバーは、Model Context Protocol(MCP)を介してAnkiとのやり取りを可能にします。これにより、ユーザーはフラッシュカード、デッキ、復習プロセスをプログラムで管理できます。
前提条件
- Node.js と npm がインストールされています。
- AnkiConnect プラグインが Anki にインストールされ、実行されています。
セットアップと実行
Anki Connectはローカルでのみ動作するため、ローカルで実行することを強くお勧めします。
ローカルで実行するには:
- リポジトリをクローンします。
- 依存関係をインストールします:
- プロジェクトをビルドします。package.json
package.json
のprepare
スクリプトは、インストール時に自動的にビルドを実行します。手動でビルドする必要がある場合は、以下の手順に従ってください。このコマンドは TypeScript コードをコンパイルし、クライアント スクリプトを実行可能にします。 - Windowsのカーソル設定と統合
利用可能なツール
ツールをデバッグするには、
サーバーは、Anki と対話するための次のツールを提供します。
update_cards
:- 説明: ユーザーがクイズのカードに回答した後、このツールを使用して回答済みとしてマークし、難易度を更新します。
- 入力: それぞれ
cardId
(数値) とease
(数値、1 ~ 4) を持つ回答の配列。
add_card
:- 説明: Ankiで新しいフラッシュカードを作成します。注記の内容はHTMLを使用します。
- 改行:
<br>
- コード:
<pre style="background-color: transparent; padding: 10px; border-radius: 5px;">
- リスト:
<ol>
と<li>
- 太字:
<strong>
- 斜体:
<em>
- 改行:
- 入力:
fields
: (オブジェクト) キーがフィールド名 (例: "Hanzi"、"Pinyin") で、値が HTML コンテンツであるオブジェクト。modelName
: (文字列) 使用する Anki ノートタイプ (モデル) の名前。deckName
: (オプションの文字列) カードを追加するデッキの名前。デフォルトは現在のデッキまたは「Default」です。tags
: (オプションの文字列配列) メモに追加するタグのリスト。
- 説明: Ankiで新しいフラッシュカードを作成します。注記の内容はHTMLを使用します。
get_due_cards
:- 説明: レビューが必要なカードの指定数を返します。
- 入力:
num
(数値)。
get_new_cards
:- 説明: 指定された数の新しい未表示のカードを返します。
- 入力:
num
(数値)。
get-deck-names
:- 説明: すべての Anki デッキ名のリストを取得します。
- 入力: なし。
find-cards
:- 説明: Ankiの検索クエリを使用してカードを検索します。フィールドを含む詳細なカード情報を返します。
- 入力:
query
(文字列、例:'deck:Default -tag:test'
、または'"deck:My Deck" tag:important'
)。空のフィールドをフィルタリングするには、'-FieldName:_*'
(例:'-Hanzi:_*'
)を使用します。
update-note-fields
:- 説明: 指定された Anki ノートの特定のフィールドを更新します。
- 入力:
noteId
(数値)、fields
(オブジェクト、例:{"Front": "New Q", "Back": "New A"}
)。
create_deck
:- 説明: 新しい Anki デッキを作成します。
- 入力:
deckName
(文字列)。
bulk_update_notes
:- 説明: 複数の Anki ノートの特定のフィールドを更新します。
- 入力:
notes
の配列。各ノートにはnoteId
(数値) とfields
(オブジェクト) があります。
get_model_names
:- 説明: 使用可能なすべての Anki ノート タイプ/モデル名を一覧表示します。
- 入力: なし。
get_model_details
:- 説明: 指定されたメモ タイプのフィールド、カード テンプレート、および CSS スタイルを取得します。
- 入力:
modelName
(文字列)。
get_deck_model_info
:- 説明: 指定されたデッキ内で使用されているノートタイプ(モデル)に関する情報を取得します。使用されているモデルが1つだけか複数か、あるいはデッキが空か存在しないかを判断するのに役立ちます。
- 入力:
deckName
(文字列)。 - 出力:
deckName
、status
(例: "single_model_found"、"multiple_models_found"、"no_notes_found"、"deck_not_found")、および条件付きでmodelName
(文字列) またはmodelNames
(文字列の配列) を持つオブジェクト。
add_note_type_field
:- 説明: メモ タイプに新しいフィールドを追加します。
- 入力:
modelName
(文字列)、fieldName
(文字列)。
remove_note_type_field
:- 説明: ノート タイプから既存のフィールドを削除します。
- 入力:
modelName
(文字列)、fieldName
(文字列)。
rename_note_type_field
:- 説明: ノート タイプのフィールドの名前を変更します。
- 入力:
modelName
(文字列)、oldFieldName
(文字列)、newFieldName
(文字列)。
reposition_note_type_field
:- 説明: ノート タイプ内のフィールドの順序 (インデックス) を変更します。
- 入力:
modelName
(文字列)、fieldName
(文字列)、index
(数値)。
update_note_type_templates
:- 説明: ノート タイプのカードの HTML テンプレート (前面と背面など) を更新します。
- 入力:
modelName
(文字列)、templates
(オブジェクト、例:{"Card 1": {"Front": "html", "Back": "html"}}
)。
update_note_type_styling
:- 説明: ノートタイプの CSS スタイルを更新します。
- 入力:
modelName
(文字列)、css
(文字列)。
create_model
:- 説明: 新しい Anki ノート タイプ (モデル) を作成します。
- 入力:
modelName
(文字列)、fieldNames
(文字列の配列)、cardTemplates
(オブジェクトの配列、それぞれName
、Front
、Back
HTML 文字列を持つ)、css
(オプションの文字列)、isCloze
(オプションのブール値、デフォルトは false)、modelType
(オプションの文字列、デフォルトは 'Standard')。
add_bulk
:- 説明: 複数のフラッシュカードを1回の操作でAnkiに追加します。ノートの内容はHTMLを使用します。このツールは、複数のノート(カード)を一度に追加するためのものです。
- 入力:
notes
の配列。各ノート オブジェクトには次の内容が含まれます。fields
: (オブジェクト) キーがフィールド名で、値が HTML コンテンツであるオブジェクト。modelName
: (文字列) このノートに使用する Anki ノート タイプ (モデル) の名前。deckName
: (オプションの文字列) このノートのデッキ名。デフォルトは「Default」です。tags
: (オプションの文字列配列) このメモのタグのリスト。
詳細については、Anki 統合 | Smithery をご覧ください。
You must be authenticated.
モデル コンテキスト プロトコルを介して Anki とのプログラムによる対話を可能にし、ユーザーがフラッシュカード、デッキ、およびレビュー プロセスを管理できるようにするサーバー。
Related MCP Servers
- AsecurityAlicenseAqualityA server implementation that connects to a locally running Anki, enabling card review and creation through the Model Context Protocol.Last updated -440JavaScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables LLMs to interact with Anki flashcard software through AnkiConnect, allowing for creation and management of flashcards, decks, and note types.Last updated -1020630TypeScript
- -securityAlicense-qualityA TypeScript-based server that integrates with Anki via the AnkiConnect plugin, allowing you to manage flashcard decks, note models, and create Anki notes using natural language.Last updated -22JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that allows LLMs to interact with Anki flashcard software, enabling functions like creating decks, adding notes, searching cards, and managing flashcard content through natural language.Last updated -2061JavaScriptMIT License