Kanka MCP - Model Context Protocol Server for Kanka API について
Kanka MCPは、世界設定プロジェクトを管理する人がAIアシスタント経由で利用できる、Kanka API接続用のMCPサーバーです。キャラクターや場所などの作成・取得・更新・削除に対応し、HTML形式の説明文と公開範囲も扱えます。
主な機能
- 01アクセス可能なキャンペーンの一覧
- 02キャラクターと場所の管理
- 03エンティティの投稿管理
- 04ノートとジャーナルの管理
- 05HTML説明文と公開範囲への対応
活用シーン
- 01Kankaのキャンペーンとキャラクターの確認
- 02世界設定の場所や投稿の作成・更新
- 03キャンペーンのノートやジャーナルの管理
MCP 対応
キャンペーン、キャラクター、場所、投稿、ノート、ジャーナルを操作するKanka APIの機能を、MCPクライアント向けのツールとして提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kanka MCP - Kanka API 用 Model Context Protocol サーバー
このプロジェクトは、Kanka API を操作するための MCP(Model Context Protocol)サーバーを提供します。AI アシスタントを使って、Kanka のワールドビルディングプロジェクト内のキャンペーン、キャラクター、場所、投稿、ノート、ジャーナルを管理できます。
機能
このサーバーは、次の操作に使用できるツールを提供します。
- キャンペーン:ユーザーのすべてのキャンペーンを一覧表示します
- キャラクター:キャラクターの一覧表示、取得、作成、更新、削除
- 場所:場所の一覧表示、取得、作成、更新、削除
- 投稿:任意のエンティティの投稿の一覧表示、取得、作成、更新、削除
- ノート:ノートの一覧表示、取得、作成、更新、削除
- ジャーナル:ジャーナルの一覧表示、取得、作成、更新、削除
すべての作成・更新操作では、説明フィールドの HTML コンテンツが適切に処理され、プライバシー設定もサポートされます。
インストール
前提条件
- Python 3.10+
インストール
-
このリポジトリをクローンします。
git clone https://github.com/yourusername/kanka_mcp.git cd kanka_mcp -
依存関係をインストールします。
pip install requests mcp[cli]または、pyproject.toml ファイルがある場合は、次のようにします。
pip install .
設定
Kanka API キーを設定した KANKA_API_KEY 環境変数が必要です。
export KANKA_API_KEY=your_kanka_api_key
Kanka API キーを取得するには、次の手順を実行します。
- Kanka アカウントにログインします
- 「Account Settings」に移動します
- 「API」セクションを開きます
- API トークンを作成するか、コピーします
使用方法
MCP サーバーの実行
次のコマンドでサーバーを直接実行します。
python kanka_mcp.py
MCP サーバーの設定への追加
次の内容を MCP サーバーの設定に追加します。
"kanka": {
"command": "python",
"args": [
"FULL_PATH_TO_SCRIPT_FOLDER/kanka_mcp.py"
],
"env": {
"KANKA_API_KEY": "YOUR_KANKA_API_KEY"
}
}
FULL_PATH_TO_SCRIPT_FOLDER を kanka_mcp.py スクリプトを含むディレクトリの絶対パスに、YOUR_KANKA_API_KEY を実際の Kanka API キーに置き換えてください。
利用可能なツール
キャンペーン
show_campaigns(): ユーザーがアクセスできるすべてのキャンペーンを一覧表示します。
キャラクター
list_characters(campaign_id): キャンペーン内のすべてのキャラクターを一覧表示します。get_character(campaign_id, character_id): ID を指定して特定のキャラクターを取得します。create_character(campaign_id, name, ...): 新しいキャラクターを作成します。update_character(campaign_id, character_id, ...): 既存のキャラクターを更新します。delete_character(campaign_id, character_id): キャラクターを削除します。
場所
list_locations(campaign_id): キャンペーン内のすべての場所を一覧表示します。get_location(campaign_id, location_id): ID を指定して特定の場所を取得します。create_location(campaign_id, name, ...): 新しい場所を作成します。update_location(campaign_id, location_id, ...): 既存の場所を更新します。delete_location(campaign_id, location_id): 場所を削除します。
投稿
list_posts(campaign_id, entity_id): エンティティのすべての投稿を一覧表示します。get_post(campaign_id, entity_id, post_id): ID を指定して特定の投稿を取得します。create_post(campaign_id, entity_id, name, ...): 新しい投稿を作成します。update_post(campaign_id, entity_id, post_id, ...): 既存の投稿を更新します。delete_post(campaign_id, entity_id, post_id): 投稿を削除します。
ノート
list_notes(campaign_id): キャンペーン内のすべてのノートを一覧表示します。get_note(campaign_id, note_id): ID を指定して特定のノートを取得します。create_note(campaign_id, name, ...): 新しいノートを作成します。update_note(campaign_id, note_id, ...): 既存のノートを更新します。delete_note(campaign_id, note_id): ノートを削除します。
ジャーナル
list_journals(campaign_id): キャンペーン内のすべてのジャーナルを一覧表示します。get_journal(campaign_id, journal_id): ID を指定して特定のジャーナルを取得します。create_journal(campaign_id, name, ...): 新しいジャーナルを作成します。update_journal(campaign_id, journal_id, ...): 既存のジャーナルを更新します。delete_journal(campaign_id, journal_id): ジャーナルを削除します。
ライセンス
このプロジェクトは、LICENSE ファイルに記載された条件に基づいてライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。