アンキ-MCP
Anki用のMCPサーバー。このサーバーは、Model Context Protocol(MCP)を介してAnkiとのやり取りを可能にします。これにより、ユーザーはフラッシュカード、デッキ、復習プロセスをプログラムで管理できます。
前提条件
Node.js と npm がインストールされています。
AnkiConnect プラグインが Anki にインストールされ、実行されています。
Related MCP server: Anki MCP Server
セットアップと実行
Anki Connectはローカルでのみ動作するため、ローカルで実行することを強くお勧めします。
ローカルで実行するには:
リポジトリをクローンします。
git clone https://github.com/nietus/anki-mcp依存関係をインストールします:
npm installプロジェクトをビルドします。package.json
package.jsonのprepareスクリプトは、インストール時に自動的にビルドを実行します。手動でビルドする必要がある場合は、以下の手順に従ってください。npm run buildこのコマンドは TypeScript コードをコンパイルし、クライアント スクリプトを実行可能にします。
Windowsのカーソル設定と統合
"anki": { "command": "cmd", "args": [ "/c", "node", "c:/Users/-/Downloads/anki-mcp/build/client.js" ] }
利用可能なツール
ツールをデバッグするには、
サーバーは、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: (オプションの文字列配列) メモに追加するタグのリスト。
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、BackHTML 文字列を持つ)、css(オプションの文字列)、isCloze(オプションのブール値、デフォルトは false)、modelType(オプションの文字列、デフォルトは 'Standard')。
add_bulk:説明: 複数のフラッシュカードを1回の操作でAnkiに追加します。ノートの内容はHTMLを使用します。このツールは、複数のノート(カード)を一度に追加するためのものです。
入力:
notesの配列。各ノート オブジェクトには次の内容が含まれます。fields: (オブジェクト) キーがフィールド名で、値が HTML コンテンツであるオブジェクト。modelName: (文字列) このノートに使用する Anki ノート タイプ (モデル) の名前。deckName: (オプションの文字列) このノートのデッキ名。デフォルトは「Default」です。tags: (オプションの文字列配列) このメモのタグのリスト。
詳細については、Anki 統合 | Smithery をご覧ください。