mcpField
A
Anki MCP Server

Anki MCP Server

ローカル
github.com/nailuoGG科学・教育2521 日前に更新

Anki MCP Server について

Anki MCP Server は、AnkiConnect を介して LLM が Anki のデッキ、ノート、タグ、ノートタイプを操作できるようにする MCP サーバーです。AI を使って暗記カードを作成・整理したいユーザー向けです。

主な機能

  1. 01ノートとタグの作成・検索・更新・削除
  2. 02Anki の検索構文によるノート検索
  3. 03ノートの一括作成
  4. 04ノートタイプの一覧表示・作成・構造確認
  5. 05明示的な確認を必要とする AnkiWeb 同期

活用シーン

  1. 01学習資料から暗記カードを一括生成
  2. 02タグや検索条件による既存ノートの整理
  3. 03カード追加前のデッキとノートタイプ構造の確認

MCP 対応

このプロジェクトは MCP サーバーであり、anki_* 系のツールと anki:// リソースを MCP クライアントに公開して、Anki コレクションの読み書きを行います。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"anki": {
"command": "npx",
"args": [
"-y",
"skills"
]
}
}
}
起動コマンドnpx -y skills

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmskills

ツール

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

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

詳細

Anki MCP サーバー

AnkiConnect を通じて、LLM が Anki のフラッシュカードソフトウェアを操作できるようにする Model Context Protocol(MCP)サーバーです。

Anki アイコン

機能

ツール
  • anki_check_connection - AnkiConnect に接続できるか確認します
  • anki_list_decks - 利用可能なすべての Anki デッキを一覧表示します。オプションでデッキ ID も表示できます
  • anki_create_deck - 新しい Anki デッキを作成します
  • anki_list_tags - コレクションで現在使用されているすべてのタグを一覧表示します
  • anki_add_note_tags - 1 件以上のノートにタグを追加します
  • anki_remove_note_tags - 1 件以上のノートからタグを削除します
  • anki_create_note - 新しいノートを作成します
  • anki_batch_create_notes - 複数のノートを一度に作成します
  • anki_search_notes - Anki のクエリ構文を使ってノートを検索します
  • anki_get_note_info - ノートの詳細情報を取得します
  • anki_update_note - 既存のノートのフィールドやタグを更新します
  • anki_delete_note - 1 件以上のノートを削除します
  • anki_list_note_types - 利用可能なすべてのノートタイプを一覧表示します
  • anki_create_note_type - 新しいノートタイプを作成します
  • anki_get_note_type_info - ノートタイプの詳細な構造を取得します
  • anki_sync - AnkiWeb との同期を開始します。完全同期ではローカルとリモートのコレクションが統合または上書きされる可能性があるため、{"confirm": true} が必要です。成功は Anki がリクエストを受け付けたことを示すものであり、AnkiWeb がデータを受信したことを意味するものではありません。Anki でダイアログが表示されて処理がブロックされると、同期がキューに入ったままでも通知されない場合があります

create_note や list_decks など、anki_ が付かない従来のツール名も既存のクライアントから引き続き呼び出せますが、新しいエージェント連携では anki_* の名前を使用してください。

リソース
  • anki://decks/all - デッキ ID を含む、利用可能なすべてのデッキの一覧
  • anki://tags/all - すべてのタグの一覧
  • anki://note-types/all - 利用可能なすべてのノートタイプの一覧
  • anki://note-types/all-with-schemas - すべてのノートタイプの詳細な構造情報
  • anki://note-types/{modelName} - 特定のノートタイプの詳細な構造情報

前提条件

  1. システムに Anki がインストールされていること
  2. Anki に AnkiConnect アドオンがインストールされていること
  3. Node.js 20.11 以降

設定

デスクトップ拡張機能(.mcpb)経由でインストールする

このリポジトリは Anthropic Desktop Extensions(MCPB)に対応しています。Claude Desktop でこのサーバーを利用する最も簡単な方法は、パッケージ化された .mcpb バンドルをインストールすることです。

  1. 提供されているスクリプトを使用して、ローカルで .mcpb ファイルを生成します。
npm run mcpb
  1. Claude Desktop の Settings → Extensions を開き、生成された .mcpb ファイルをドラッグしてから、Install をクリックします。

この操作により manifest.json が検証され、上記の手順でインストールできる .mcpb アーカイブが出力されます。Desktop Extensions の詳細については、Anthropic の発表をご覧ください:Desktop Extensions: One-click MCP server installation for Claude Desktop。

Claude Desktop での使用方法

サーバーを claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server"]
    }
  }
}
AnkiConnect のカスタムポートを使用する

AnkiConnect が別のポートで実行されている場合は、--port パラメーターを指定できます。

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server", "--port", "8080"]
    }
  }
}
Cline の設定

VSCode の設定 cline_mcp_settings.json 内にある Cline MCP 設定ファイルにサーバーを追加します。

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server"]
    }
  }
}
AnkiConnect のカスタムポートを使用する

Cline でもカスタムポートを指定できます。

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server", "--port", "8080"]
    }
  }
}

エージェントスキル(Claude Code)

Anki スキルをインストールすると、Claude Code にすべての Anki ツールとワークフローの組み込み知識を追加できます。

npx skills add nailuoGG/anki-mcp-server@anki

インストールすると、フラッシュカードの作成、デッキの管理、ノートの一括インポートを依頼したときに、Claude Code が自動的にこのスキルを使用します。

注: パッケージ化された .mcpb バージョンを MCP サーバーとして使用しないでください。Electron のメタデータが stdout に出力され、MCP の stdio プロトコルが壊れるためです。代わりに npx -y anki-mcp-server を使用してください。

開発

デスクトップ拡張機能(.mcpb)のパッケージ化

Claude Desktop 用の配布可能なデスクトップ拡張機能バンドルを作成します。

npm run mcpb

これによりプロジェクトがビルドされ、現在のリポジトリから .mcpb アーカイブが生成され、manifest.json の検証が行われます。Claude Desktop の「拡張機能」設定にドラッグしてテストしてください。参考:デスクトップ拡張機能:Claude Desktop 用 MCP サーバーをワンクリックでインストール

MCP Registry への公開

このサーバーは、新しいバージョンのリリース時に MCP Registry へ自動的に公開されます。公開プロセスには、次のものが含まれます。

  1. 自動化された CI/CD:GitHub Actions が、リリースの成功時に NPM と MCP Registry の両方へ自動的に公開します
  2. スキーマ検証:公開前に server.json ファイルを MCP スキーマに照らして検証します
  3. バージョンの同期:package.json、manifest.json、server.json のバージョンを同期します
  4. 包括的なテスト:公開前に、複数バージョンの Node.js でのテスト、Lint、検証を行います
  5. ベータ版のサポート:新機能のテスト用にベータ版を自動リリースします
手動での検証

MCP サーバーの設定は、ローカルで検証できます。

npm run validate-mcp

これにより、最新の MCP スキーマがダウンロードされ、server.json ファイルが検証されます。

手動での公開

手動で公開する必要がある場合は、MCP Publisher CLI を使用できます。

# Install MCP Publisher
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
chmod +x mcp-publisher
sudo mv mcp-publisher /usr/local/bin/

# Login to MCP Registry
mcp-publisher login github-oidc

# Publish to MCP Registry
mcp-publisher publish
セットアップ
  1. 依存関係をインストールします。
npm install
  1. サーバーをビルドします。
npm run build
  1. 自動再ビルドを有効にして開発するには、次のコマンドを実行します。
npm run watch
テスト

テストスイートを実行します。

npm test

MCP ツールのスキーマ、構造化ツール結果、ノートの作成、検索/更新/削除のワークフロー、エラー処理に関する単体テストが実行されます。これらのテストでは、AnkiConnect クライアントをモックしています。手動で統合テストを行う場合は、Anki インスタンスを起動した状態で MCP Inspector を使用してください。

MCP 評価

読み取り専用のエージェント評価用アセットは evals/ にあります。一時的に使用する Anki プロファイルにフィクスチャを読み込み、XML の質問を MCP サーバーに対して実行して、エージェントがデッキ、タグ、ノートタイプのスキーマ、リソース、構造化ツール結果を検出できることを確認してください。

デバッグ

MCP サーバーは標準入出力を介して通信するため、MCP Inspector の使用をおすすめします。

npm run inspector

ブラウザー上のインターフェースで、次の操作を行えます。

  • MCP メッセージを監視する
  • ツールの呼び出しをテストする
  • サーバーのログを確認する
  • 通信の問題をデバッグする

使用例

  1. 新しいデッキを作成します。
Create a new Anki deck called "Programming"
  1. 基本的なカードを追加します。
Create an Anki card in the "Programming" deck with:
Front: What is a closure in JavaScript?
Back: A closure is the combination of a function and the lexical environment within which that function was declared.
  1. 穴埋め削除カードを追加します。
Create a cloze card in the "Programming" deck with:
Text: In JavaScript, {{c1::const}} declares a block-scoped variable that cannot be {{c2::reassigned}}.
  1. 1 つのノートを削除します。
Delete note ID 1234567890
  1. 複数のノートを一度に削除します。
Delete note IDs 1234567890, 9876543210, and 1122334455
  1. ノートにタグを追加します。
Add tags "review" and "mcp" to note IDs 1234567890 and 9876543210

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. テストを実行します:npm test
  4. プルリクエストを送信します

スター履歴

スター履歴グラフ

クレジット

アイコンは macOS Icons のご厚意により使用しています。

ライセンス

MIT License — 詳細は LICENSE ファイルをご覧ください

コメント

MCP は初めてですか?

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

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