mcpField
Y
Yanki MCP Server ( Yet Another Anki MCP Server )

Yanki MCP Server ( Yet Another Anki MCP Server )

ローカル
github.com/htlin222科学・教育131 週間前に更新

Yanki MCP Server ( Yet Another Anki MCP Server ) について

Yanki は Anki-Connect を介して、MCP クライアントをローカルの Anki デスクトップアプリに接続します。カードの復習と作成に対応し、新規カードを日付別のデッキに整理します。

主な機能

  1. 01復習待ちカードと新規カードの取得
  2. 02現在のデッキ内のカード検索
  3. 03復習回答と難易度評価の記録
  4. 04日付別デッキへのカード作成
  5. 05基底デッキ名の設定

活用シーン

  1. 01学習対象のカードの取得
  2. 02復習後の回答の送信
  3. 03作成日別にカードを整理

MCP 対応

MCP クライアントに Anki カード検索用リソースと復習・作成ツールを提供し、Anki-Connect 経由でローカルの Anki アプリに接続します。

設定

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

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

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

パッケージ
npmyanki-mcp-server

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
answersarrayいいえ

詳細

GitHub stars Last commit License

Yanki MCP Server(Yet Another Anki MCP Server)

ローカルで実行中の Anki に接続し、カードの復習と作成を行う Model Context Protocol サーバーの実装です。日付ベースの整理機能を備えた、scorzeth/anki-mcp-server のフォークです。

npm パッケージとして利用できます:yanki-mcp-server

このサーバーは、Anki デスクトップアプリと Anki-Connect アドオンと連携するように設計されています。

使用する前に、アドオンがインストールされていることを確認してください。

リソース

  • anki://search/deckcurrent
    • 現在のデッキにあるすべてのカードを返します
    • Anki の deck:current と同等です
  • anki://search/isdue
    • 復習待ちと学習待ちのカードを返します
    • Anki の is:due と同等です
  • anki://search/isnew
    • まだ見ていないカードをすべて返します
    • Anki の is:new と同等です

ツール

  • update_cards

    • 指定されたカード ID のカードを解答済みとして記録し、1(もう一度)から4(簡単)の難易度を設定します
    • 入力:
      • answers(配列):cardId(数値)フィールドと ease(数値)フィールドを持つオブジェクトの配列
  • add_card

    • 日付別に構成されたデッキ(形式:DECK::YYYY::MM::DD)に新しいカードを作成します
    • 入力:
      • front(文字列):カードの表面
      • back(文字列):カードの裏面
  • get_due_cards

    • 現在、復習期限を迎えているカードを n 枚返します
    • 入力:
      • num(数値):カードの枚数
  • get_new_cards

    • 新しいカードを n 枚返します
    • 入力:
      • num(数値):カードの枚数

インストールと使用方法

npx を使えば、インストールせずにこのパッケージを使用できます:

npx yanki-mcp-server

または、グローバルにインストールします:

npm install -g yanki-mcp-server
yanki-server

開発

リポジトリをクローンし、依存関係をインストールします:

git clone https://github.com/htlin222/yanki-mcp-server.git
cd yanki-mcp-server
npm install

サーバーをビルドします:

npm run build

自動再ビルドを使った開発の場合:

npm run watch

開発中にサーバーを直接実行します:

npm run dev

設定

Claude Desktop で使用するには、サーバー設定を追加します:

MacOS の場合:~/Library/Application Support/Claude/claude_desktop_config.json Windows の場合:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "yanki-mcp-server": {
      "command": "npx",
      "args": ["yanki-mcp-server"],
      "env": {
        "DECK": "Default"
      }
    }
  }
}
デバッグ

MCP サーバーは stdio 経由で通信するため、デバッグが難しい場合があります。パッケージスクリプトとして利用できる MCP Inspector の使用をおすすめします:

npm run inspector

Inspector は、ブラウザーでデバッグツールにアクセスするための URL を表示します。

日付ベースのカード整理

このサーバーは、新しいカードを従来のトピック別ではなく、日付ベースの構造で自動的に整理します。新しいカードを作成すると、次の形式のデッキに追加されます:

DECK::YYYY::MM::DD

ここで:

  • DECK はベースデッキ名です(デフォルト:「00_Inbox」、または環境変数で設定)
  • YYYY は4桁の年です
  • MM は2桁の月です
  • DD は2桁の日です
日付ベースの整理の利点
  1. 手軽な整理:手動で分類しなくても、作成日ごとにカードが自動的に整理されます
  2. 時間的なコンテキスト:特定の期間(例:コースやプロジェクトの期間中)に作成したカードを復習できます
  3. 自然な間隔反復:学んだ時期ごとにカードが自然にまとまります
  4. 時間を効率的に活用:各カードの分類先を決めるために時間を費やす必要がありません
  5. 学習の記録:時間の経過に沿って学習の歩みを確認できます
設定

MCP サーバーの設定で DECK 環境変数を設定すると、ベースデッキ名をカスタマイズできます:

"env": {
  "DECK": "YourCustomDeckName"
}

指定しない場合、デフォルトは「00_Inbox」です。

変更履歴

1.0.5 (2025-05-31)
  • すべてのコンソール出力およびログ機能を完全に削除しました
  • 必須ではない出力をすべて排除し、コードベースを簡素化しました
  • 余計な出力のない、クリーンなMCPプロトコル通信を100%実現しました
  • ログに関連するすべてのファイルシステム操作を削除しました
1.0.4 (2025-05-31)
  • ログディレクトリのパスがファイルシステムのルートに作成される重大な問題を修正しました
  • 堅牢なエラー処理とフォールバック機構により、ログシステムを改善しました
  • ログが常に現在の作業ディレクトリを基準に作成されるようにしました
  • ログ記録に失敗してもMCPプロトコルに支障をきたさないよう、ログ記録が失敗してもエラーを発生させない処理を追加しました
1.0.3 (2025-05-31)
  • すべてのコンソール出力をログファイルにリダイレクトし、MCP通信プロトコルの問題を修正しました
  • すべてのデバッグ情報とステータス情報を保持する、ファイルベースのログシステムを追加しました
  • ログは、日付ベースのファイル名でlogsディレクトリに保存されます
  • MCP JSON-RPCプロトコルに適切に準拠するよう、標準出力をクリーンな状態に保ちました

コメント

MCP は初めてですか?

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

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