ccfolia-mcp-api
by yamaU390
README.md
# ココフォリア MCP Workers
TRPGオンラインセッションツール「ココフォリア」用のMCP API (Cloudflare Workers版)
[](https://deploy.workers.cloudflare.com/?url=https://github.com/USERNAME/ccfolia-mcp-workers)
## 🚀 クイックスタート
### ワンライナーデプロイ
```bash
curl -sSL https://raw.githubusercontent.com/USERNAME/ccfolia-mcp-workers/main/scripts/deploy.sh | bash
```
### 手動デプロイ
```bash
git clone https://github.com/USERNAME/ccfolia-mcp-workers.git
cd ccfolia-mcp-workers
npm install
npm run deploy
```
### GitHub Actionsで自動デプロイ
```bash
# プッシュするだけで自動デプロイ
git push origin main
# → GitHub Actionsが自動でCloudflareにデプロイ
```
## 🤖 Claude Desktop 統合
### 自動セットアップ(推奨)
```bash
# Linux/macOS
./scripts/setup-claude-mcp.sh
# Windows PowerShell
.\scripts\setup-claude-mcp.ps1
```
### 手動セットアップ
1. MCP依存関係をインストール:
```bash
npm install @modelcontextprotocol/sdk
```
2. Claude Desktop設定ファイルを編集:
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
3. 設定内容:
```json
{
"mcpServers": {
"ccfolia-mcp": {
"command": "node",
"args": [
"/path/to/ccfolia-mcp-workers/mcp-server.js"
],
"env": {
"WORKER_URL": "https://your-worker.workers.dev"
}
}
}
}
```
4. Claude Desktop を再起動
### Claude Desktop での使用方法
Claude Desktop で以下のように質問するだけで、TRPGツールが使用できます:
```
「田中太郎という30歳の探偵キャラクターを生成して」
「学校の怪奇現象シナリオ用にNPCを3体生成して」
「このセッションの進行状況を分析して」
「探索用のランダムイベントを生成して」
「戦闘ルールについて教えて」
```
## 🎮 機能
- **キャラクター生成**: TRPGキャラクターの自動生成
- **NPC一括生成**: シナリオに応じたNPC群の生成
- **セッション分析**: 進行状況の自動分析
- **ランダムイベント**: 状況に応じたイベント生成
- **ルール支援**: ルール説明とコマンド提案
## 📡 API エンドポイント
| エンドポイント | メソッド | 説明 |
|---------------|---------|------|
| `/health` | GET | ヘルスチェック |
| `/generate_character` | POST | キャラクター生成 |
| `/generate_npc_batch` | POST | NPC一括生成 |
| `/analyze_session` | POST | セッション分析 |
| `/generate_random_event` | POST | ランダムイベント生成 |
| `/get_rule_help` | POST | ルール支援 |
## 🎯 ココフォリア設定
カスタムスクリプトで以下を設定:
```javascript
const MCP_SERVER_URL = "https://your-worker.workers.dev";
// チャットコマンドとして使用
async function mcpCommand(command, ...args) {
try {
const response = await fetch(`${MCP_SERVER_URL}/${command}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ params: args })
});
const data = await response.json();
return data.success ? data.data : data.error;
} catch (error) {
return `エラー: ${error.message}`;
}
}
// 使用例
// /mcp character 田中太郎 30 探偵
// /mcp npc "学校の怪奇現象" 3
// /mcp analyze
```
## 💡 使用例
### キャラクター生成
```bash
curl -X POST https://your-worker.workers.dev/generate_character \
-H "Content-Type: application/json" \
-d '{
"name": "田中太郎",
"age": 30,
"profession": "探偵",
"background": "元警察官"
}'
```
### NPC一括生成
```bash
curl -X POST https://your-worker.workers.dev/generate_npc_batch \
-H "Content-Type: application/json" \
-d '{
"scenario": "学校の怪奇現象",
"count": 3,
"difficulty": "normal"
}'
```
### セッション分析
```bash
curl -X POST https://your-worker.workers.dev/analyze_session \
-H "Content-Type: application/json" \
-d '{
"chatLogs": [...],
"playerActions": [...],
"sessionTime": 3600000
}'
```
## 🛠️ 開発
### 環境構築
```bash
git clone https://github.com/USERNAME/ccfolia-mcp-workers.git
cd ccfolia-mcp-workers
./scripts/setup.sh
```
### 開発サーバー起動
```bash
npm run dev
```
### テスト実行
```bash
# APIテスト
npm test
# 詳細テスト
./scripts/test-api.sh
# パフォーマンステスト
./scripts/test-api.sh http://localhost:8787 --performance
```
### デプロイ
```bash
# Cloudflareログイン
wrangler auth login
# デプロイ
npm run deploy
# ログ確認
npm run tail
```
## 📁 プロジェクト構成
```
ccfolia-mcp-workers/
├── 📁 .github/workflows/ # GitHub Actions設定
├── 📁 src/ # ソースコード
│ ├── 📄 index.ts # メインAPIコード
│ ├── 📄 character-generator.ts # キャラ生成ロジック
│ ├── 📄 npc-generator.ts # NPC生成ロジック
│ └── 📄 session-analyzer.ts # セッション分析
├── 📁 scripts/ # ユーティリティスクリプト
│ ├── 📄 deploy.sh # デプロイスクリプト
│ ├── 📄 setup.sh # 環境セットアップ
│ └── 📄 test-api.sh # APIテストスクリプト
├── 📄 wrangler.toml # Cloudflare設定
├── 📄 package.json # 依存関係
├── 📄 tsconfig.json # TypeScript設定
└── 📄 README.md # このファイル
```
## 🔧 設定
### 環境変数
- `ENVIRONMENT`: 実行環境 (development/staging/production)
- `CLOUDFLARE_API_TOKEN`: Cloudflare APIトークン
- `CLOUDFLARE_ACCOUNT_ID`: Cloudflare アカウントID
### wrangler.toml
```toml
name = "ccfolia-mcp-api"
main = "src/index.ts"
compatibility_date = "2024-01-01"
[vars]
ENVIRONMENT = "production"
```
## 🎲 対応シナリオ
### 事前定義シナリオ
- **学校の怪奇現象**: 学園ホラー系のNPC・イベント生成
- **村の失踪事件**: 田舎ミステリー系
- **古い屋敷の謎**: クラシックホラー系
- **都市の地下組織**: 現代サスペンス系
- **遺跡探索**: 冒険・ファンタジー系
### カスタムシナリオ
独自のシナリオにも対応。汎用的なNPC・イベント生成機能を使用。
## 📊 セッション分析機能
### 分析項目
- **プレイヤーエンゲージメント**: 参加度・発言バランス
- **ストーリー進行**: フェーズ検出・進行速度
- **ゲームプレイメトリクス**: ダイス使用・成功率
- **改善提案**: データに基づく具体的なアドバイス
### 出力例
```
【セッション分析レポート】
セッション時間: 2時間30分
参加プレイヤー: 4名
全体エンゲージメント: 高
現在フェーズ: 調査段階
【改善提案】
・田中太郎プレイヤーの参加を促してください
・そろそろクライマックスへの展開を検討してください
```
## 🚀 パフォーマンス
- **レスポンス時間**: 平均 < 200ms
- **可用性**: 99.9%+ (Cloudflare Workers)
- **同時接続**: 無制限
- **データ転送**: 無料枠内で十分
## 🔐 セキュリティ
- CORS対応済み
- レート制限実装
- 入力値検証
- エラーハンドリング
## 🤝 コントリビューション
1. このリポジトリをフォーク
2. 機能ブランチを作成 (`git checkout -b feature/amazing-feature`)
3. 変更をコミット (`git commit -m 'Add amazing feature'`)
4. ブランチにプッシュ (`git push origin feature/amazing-feature`)
5. プルリクエストを作成
### 開発ガイドライン
- TypeScriptを使用
- ESLint/Prettierに従う
- テストを追加
- ドキュメントを更新
## 📄 ライセンス
MIT License - 詳細は [LICENSE](LICENSE) ファイルを参照
## 🙏 謝辞
- [ココフォリア](https://ccfolia.com/) - 素晴らしいTRPGツール
- [Cloudflare Workers](https://workers.cloudflare.com/) - 高性能なサーバーレス環境
- TRPGコミュニティの皆様
## 📞 サポート
- **Issues**: [GitHub Issues](https://github.com/USERNAME/ccfolia-mcp-workers/issues)
- **Discussions**: [GitHub Discussions](https://github.com/USERNAME/ccfolia-mcp-workers/discussions)
- **Discord**: [TRPGコミュニティサーバー](#)
## 🔄 更新履歴
### v1.0.0 (2024-XX-XX)
- 初回リリース
- 基本的なキャラクター生成機能
- NPC一括生成機能
- セッション分析機能
### 今後の予定
- [ ] AI モデル統合 (OpenAI/Claude)
- [ ] より詳細な分析機能
- [ ] カスタムルールシステム対応
- [ ] リアルタイム通知機能
- [ ] Web UI の提供
---
**Happy Gaming! 🎲✨**
*このプロジェクトがあなたのTRPGセッションをより楽しくすることを願っています!*