4.5 KiB
4.5 KiB
ai.card と ai.gpt の統合ガイド
概要
ai.gptのMCPサーバーにai.cardのツールを統合し、AIがカードゲームシステムとやり取りできるようになりました。
セットアップ
1. 必要な環境
- Python 3.13
- ai.gpt プロジェクト
- ai.card プロジェクト(
./card
ディレクトリ)
2. 起動手順
ステップ1: ai.cardサーバーを起動(ターミナル1)
cd card
./start_server.sh
ステップ2: ai.gpt MCPサーバーを起動(ターミナル2)
aigpt server
起動時に以下が表示されることを確認:
- 🎴 Card Game System: 6 tools
- 🎴 ai.card: ./card directory detected
ステップ3: AIと対話(ターミナル3)
aigpt conv syui --provider openai
使用可能なコマンド
カード関連の質問例
# カードコレクションを表示
「カードコレクションを見せて」
「私のカードを見せて」
「カード一覧を表示して」
# ガチャを実行
「ガチャを引いて」
「カードを引きたい」
# コレクション分析
「私のコレクションを分析して」
# ガチャ統計
「ガチャの統計を見せて」
技術仕様
MCP ツール一覧
ツール名 | 説明 | パラメータ |
---|---|---|
card_get_user_cards |
ユーザーのカード一覧取得 | did, limit |
card_draw_card |
ガチャでカード取得 | did, is_paid |
card_get_card_details |
カード詳細情報取得 | card_id |
card_analyze_collection |
コレクション分析 | did |
card_get_gacha_stats |
ガチャ統計取得 | なし |
card_system_status |
システム状態確認 | なし |
動作の流れ
-
ユーザーがカード関連の質問をする
- AIがキーワード(カード、コレクション、ガチャなど)を検出
-
AIが適切なMCPツールを呼び出す
- OpenAIのFunction Callingを使用
- didパラメータには会話相手のユーザーID(例:'syui')を使用
-
ai.gpt MCPサーバーがai.cardサーバーに転送
- http://localhost:8001 → http://localhost:8000
- 適切なエンドポイントにリクエストを転送
-
結果をAIが解釈して返答
- カード情報を分かりやすく説明
- エラー時は適切なガイダンスを提供
設定
config.json
{
"providers": {
"openai": {
"api_key": "your-api-key",
"default_model": "gpt-4o-mini",
"system_prompt": "カード関連の質問では、必ずcard_get_user_cardsなどのツールを使用してください。"
}
},
"mcp": {
"servers": {
"ai_gpt": {
"endpoints": {
"card_get_user_cards": "/card_get_user_cards",
"card_draw_card": "/card_draw_card",
"card_get_card_details": "/card_get_card_details",
"card_analyze_collection": "/card_analyze_collection",
"card_get_gacha_stats": "/card_get_gacha_stats",
"card_system_status": "/card_system_status"
}
}
}
}
}
トラブルシューティング
エラー: "ai.card server is not running"
ai.cardサーバーが起動していません。以下を実行:
cd card
./start_server.sh
エラー: "カード一覧の取得に失敗しました"
- ai.cardサーバーが正常に起動しているか確認
- aigpt serverを再起動
- ポート8000と8001が使用可能か確認
プロセスの終了方法
# ポート8001のプロセスを終了
lsof -ti:8001 | xargs kill -9
# ポート8000のプロセスを終了
lsof -ti:8000 | xargs kill -9
実装の詳細
主な変更点
-
ai.gpt MCPサーバーの拡張 (
src/aigpt/mcp_server.py
)./card
ディレクトリの存在を検出- ai.card用のMCPツールを自動登録
-
AIプロバイダーの更新 (
src/aigpt/ai_provider.py
)- card_*ツールの定義追加
- ツール実行時のパラメータ処理
-
MCPクライアントの拡張 (
src/aigpt/cli.py
)has_card_tools
プロパティ追加- ai.card MCPメソッドの実装
今後の拡張案
- カードバトル機能の追加
- カードトレード機能
- レアリティ別の表示
- カード画像の表示対応
- atproto連携の実装