Skip to main content
Glama

アンキ-MCP

AnkiConnectアドオンを介してAnkiフラッシュカードとやり取りするためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、AnkiConnectアクションを論理サービスとして整理されたMCPツールとして公開します。

前提条件

  • Ankiデスクトップアプリケーション

  • AnkiConnectアドオンがAnkiにインストールされ設定されている

  • Python 3.8以上

  • uv (依存関係の実行とインストール用。オプションだが推奨)

Related MCP server: Anki MCP Server

インストール

# Clone the repository
git clone https://github.com/ujisati/anki-mcp.git
cd anki-mcp

# Install dependencies (using uv)
uv pip install -e .

使用法

MCP サーバーを実行するには:

uv run anki-mcp

サーバーが起動し、MCP リクエストをリッスンします。通常はhttp://127.0.0.1:8765の AnkiConnect とインターフェイスします。

サーバーの検査

MCP インスペクターを使用すると、利用可能なツールを表示できます。

npx @modelcontextprotocol/inspector uv run anki-mcp

MCPクライアントの構成

これをMCPクライアント(AIアシスタントフレームワークなど)と統合する場合は、このサーバーを見つけるように設定する必要があります。設定例を以下に示します。

{
    "mcpServers": {
        "anki": {
            "command": "uv",
            "args": [
                "run", // uv will find anki-mcp if run from project root
                "anki-mcp"
            ],
            // If running from outside the project directory, specify the path:
            // "args": [
            //     "--directory",
            //     "/ABSOLUTE/PATH/TO/anki-mcp", // Replace with actual path
            //     "run",
            //     "anki-mcp"
            // ]
        }
    }
}

利用可能なMCPツール

このMCPサーバーは、サービスごとにグループ化されたツールを通じてAnkiの機能へのアクセスを提供します。ツール名はAnkiConnectのアクションに直接対応しています。

デッキサービス ( deck.* )

  • deck.deckNamesAndIds : デッキ名とそれぞれの ID の完全なリストを取得します。

  • deck.getDeckConfig : 指定されたデッキ名の構成グループ オブジェクトを取得します。

  • deck.deckNames : 現在のユーザーのデッキ名の完全なリストを取得します。

  • deck.createDeck : 新しい空のデッキを作成します。

  • deck.deleteDecks : 指定されたデッキを削除します。

  • deck.changeDeck : カードを別のデッキに移動します。

  • deck.saveDeckConfig : デッキ構成グループを保存します。

ノートサービス ( note.* )

  • note.findNotes : 指定された Anki 検索クエリのノート ID を返します。

  • note.notesInfo : 指定されたノート ID の情報を返します。

  • note.getNoteTags : 特定のノート ID のタグを取得します。

  • note.addNote : 新しいノートを作成します。

  • note.updateNoteFields : 既存のメモのフィールドを変更します。

  • note.deleteNotes : 指定されたメモを削除します。

  • note.addNotes : 複数のメモを作成します。

  • note.addTags : 指定されたメモにタグを追加します。

  • note.removeTags : 指定されたメモからタグを削除します。

  • note.updateNote : 既存のノートのフィールドやタグを変更します。

カードサービス ( card.* )

  • card.findCards : 指定された Anki 検索クエリのカード ID を返します。

  • card.cardsInfo : 指定されたカード ID の情報を返します。

  • card.cardsToNotes : 指定されたカード ID のノート ID を返します。

  • card.areSuspended : 指定されたカードが停止されているかどうかを確認します。

  • card.cardsModTime : 指定されたカード ID の変更時刻を返します。

  • card.suspended : 1 枚のカードが停止されているかどうかを確認します。

  • card.suspend : 指定されたカードを一時停止します。

  • card.unsuspend : 指定されたカードのサスペンドを解除します。

  • card.setSpecificValueOfCard : 1 枚のカードに特定の値を設定します (注意して使用してください)。

モデルサービス ( model.* ) (ノートタイプ)

  • model.modelNamesAndIds : モデル (ノート タイプ) 名とその ID の完全なリストを取得します。

  • model.findModelsByName : 指定されたモデル名のモデル定義を取得します。

  • model.modelFieldNames : 指定されたモデル名のフィールド名を取得します。

  • model.modelTemplates : 指定されたモデルの各カードのテンプレートのコンテンツを取得します。

  • model.modelStyling : 指定されたモデル名の CSS スタイルを取得します。

  • model.createModel : 新しいモデル(ノートタイプ)を作成します。

  • model.updateModelTemplates : 既存のモデルのテンプレートを変更します。

  • model.updateModelStyling : 既存のモデルの CSS スタイルを変更します。

  • model.modelFieldAdd : 既存のモデルに新しいフィールドを追加します。

  • model.modelFieldRemove : 既存のモデルからフィールドを削除します。

メディアサービス ( media.* )

  • media.retrieveMediaFile : メディア ファイルの base64 エンコードされたコンテンツを取得します。

  • media.getMediaFilesNames : glob パターンに一致するメディア ファイルの名前を取得します。

  • media.storeMediaFile : メディア ファイル (base64、パス、または URL から) を保存します。

  • media.deleteMediaFile : 指定されたメディア ファイルを削除します。

発達

開発用に設定するには:

uv sync
source .venv/bin/activate

uv pip install -e .

テストの実行

pytest

藤堂

  • [ ] AnkiConnectツールの追加を完了する

Appeared in Searches

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ujisati/anki-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server