RPG Maker MZ MCP Server
# RPG Maker MZ MCP Server
自然言語でRPGゲームを作成!このMCP(Model Context Protocol)サーバーは、Claude DesktopやClaude Codeを通じてAI支援によるRPG Maker MZ のゲーム開発を実現します。
> **🎮 手動クリック作業とはおさらば - AIとチャットしてゲームを作ろう!**
## ✨ 機能
- 🎯 **自然言語でゲーム作成** - ゲームを普通の言葉で説明すると、AIが作成
- 📚 **包括的なナレッジベース** - RPG Maker MZ の12カテゴリのドキュメントを内蔵
- 🤖 **AIシナリオ生成** - ゲームストーリー、キャラクター、クエストを自動生成
- 🗺️ **マップ管理** - 自然言語コマンドでマップを作成・編集
- 🎭 **イベントシステム** - 会話形式でインタラクティブなイベント、NPC、トリガーを追加
- 💾 **プロジェクト管理** - RPG Maker MZ プロジェクトをプログラムで初期化・管理
- 🔍 **スマート検索** - 関連ドキュメントとベストプラクティスを即座に発見
- ⚡ **バッチ操作** - 複数のマップ、アイテム、イベントを一度に作成
- 📦 **ゲームテンプレート** - 4種類の事前構築テンプレートで即座にプロトタイプ作成
- 🎨 **AI アセット生成対応** - 将来的な画像/音声生成に拡張可能
## 🎯 使用例
### 1. 🤖 完全自動ゲーム生成
```
「平和な村を盗賊から救うファンタジーRPGを作って」
```
AIがストーリー、マップ、キャラクター、イベントを自動生成!
### 2. 🎨 AI駆動開発ワークフロー
```
シナリオ生成 → アセット生成 → 実装 → 完成
```
すべてのステップをAIがサポート
### 3. 📚 大量プロトタイプ生成
複数のストーリーコンセプトを素早くテストして最適なものを選択
### 4. 🔄 プログラマティックなゲーム開発
Pythonスクリプトやワークフロー自動化ツールからゲームを生成
### 5. 🧪 自動テストデータ生成
ゲームエンジン開発用のテストプロジェクトを即座に作成
### 6. 🎓 教育・学習
RPG Maker MZ 学習用のサンプルプロジェクトを自動生成
## 📦 インストール
### 前提条件
- Node.js 18 以上
- Claude Desktop または Claude Code
- RPG Maker MZ(生成されたプロジェクトを開くため)
### ステップ1: パッケージのインストール
```bash
# npmからインストール(公開されている場合)
npm install -g rpgmaker-mz-mcp
# またはリポジトリからクローン
git clone https://github.com/yourusername/rpgmaker-mz-mcp.git
cd rpgmaker-mz-mcp
npm install
npm run build
```
### ステップ2: ナレッジベースのダウンロード
ナレッジベースにはRPG Maker MZ のドキュメントが含まれています。別途ダウンロードしてください:
```bash
# 例: ナレッジベースリポジトリをクローン
git clone https://github.com/yourusername/rpgmaker-knowledge.git
```
### ステップ3: AIアシスタントの設定
#### Claude Desktop の場合
Claude Desktop の設定ファイルを編集:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
この設定を追加:
```json
{
"mcpServers": {
"rpgmaker-mz": {
"command": "node",
"args": [
"/path/to/rpgmaker-mz-mcp/dist/index.js"
],
"env": {
"RPGMAKER_KNOWLEDGE_PATH": "/path/to/rpgmaker-knowledge"
}
}
}
}
```
**注意**: `/path/to/rpgmaker-mz-mcp` と `/path/to/rpgmaker-knowledge` を実際のインストールパスに置き換えてください。
**例(macOS/Linux)**:
```json
{
"mcpServers": {
"rpgmaker-mz": {
"command": "node",
"args": ["$HOME/projects/rpgmaker-mz-mcp/dist/index.js"],
"env": {
"RPGMAKER_KNOWLEDGE_PATH": "$HOME/projects/rpgmaker-knowledge"
}
}
}
}
```
**例(Windows)**:
```json
{
"mcpServers": {
"rpgmaker-mz": {
"command": "node",
"args": ["C:\\Users\\YourName\\projects\\rpgmaker-mz-mcp\\dist\\index.js"],
"env": {
"RPGMAKER_KNOWLEDGE_PATH": "C:\\Users\\YourName\\projects\\rpgmaker-knowledge"
}
}
}
}
```
#### Claude Code の場合
プロジェクトに `.claude/settings.json` を作成:
```json
{
"mcpServers": {
"rpgmaker-mz": {
"command": "node",
"args": ["/path/to/rpgmaker-mz-mcp/dist/index.js"],
"env": {
"RPGMAKER_KNOWLEDGE_PATH": "/path/to/rpgmaker-knowledge"
}
}
}
}
```
詳細は [CLAUDE_CODE_SETUP.md](./CLAUDE_CODE_SETUP.md) を参照してください。
### ステップ4: 再起動と確認
Claude Desktop または Claude Code を再起動してテスト:
```
「利用可能な全MCPツールをリストして」
```
`create_project`、`create_map`、`create_event` などのツールが表示されるはずです。
## 🚀 クイックスタート
### 初めてのゲームを作る(5分)
**ステップ1: プロジェクト作成**
```
「MyFirstRPGという名前の新しいRPG Maker MZプロジェクトを~/Documents/MyFirstRPGに作成して」
```
**ステップ2: シナリオ生成**
```
「平和な村が盗賊に脅かされ、主人公が失われた魔法の遺物を見つけなければならないファンタジーRPGシナリオを生成して」
```
**ステップ3: マップ作成**
```
「次のマップを作成して:
1. 25x20タイルの村マップ「平和な村」
2. 30x15タイルの森の道「暗い森」
3. 20x20タイルの神殿ダンジョン「古代神殿」」
```
**ステップ4: NPCを追加**
```
「位置(10, 12)に村の長老を追加して。セリフは『ようこそ、勇敢な英雄よ!失われた遺物を見つけるために、あなたの助けが必要です。』」
```
**完了!** RPG Maker MZ でプロジェクトを開いてプレイ開始!
## 📚 利用可能なツール
### プロジェクト管理
#### `create_project`
完全なディレクトリ構造で新しいRPG Maker MZ プロジェクトを作成
**パラメータ:**
- `path` (文字列、必須) - プロジェクトディレクトリパス
- `name` (文字列、必須) - プロジェクト名
- `gameTitle` (文字列、オプション) - ゲーム内に表示されるゲームタイトル
- `mapWidth` (数値、オプション) - 初期マップの幅(デフォルト: 17)
- `mapHeight` (数値、オプション) - 初期マップの高さ(デフォルト: 13)
**使用例:**
```
「MyRPGというプロジェクトを~/Games/MyRPGに作成、ゲームタイトルは『壮大な冒険』で」
```
#### `load_project`
既存のRPG Maker MZ プロジェクトを読み込み
**パラメータ:**
- `path` (文字列、必須) - プロジェクトディレクトリパス
**使用例:**
```
「~/Games/MyRPGのプロジェクトを読み込んで」
```
### マップ作成
#### `create_map`
現在のプロジェクトに新しいマップを作成
**パラメータ:**
- `name` (文字列、必須) - マップ名
- `width` (数値、必須) - マップの幅(タイル数)
- `height` (数値、必須) - マップの高さ(タイル数)
- `parentId` (数値、オプション) - 階層用の親マップID
**使用例:**
```
「25x20タイルの町マップ『始まりの町』を作成して」
```
### イベントシステム
#### `create_event`
自然言語コマンドでマップにイベントを作成
**パラメータ:**
- `mapId` (数値、必須) - イベントを配置するマップID
- `name` (文字列、必須) - イベント名
- `x` (数値、必須) - マップ上のX座標
- `y` (数値、必須) - マップ上のY座標
- `trigger` (列挙型、必須) - トリガータイプ: `action`, `player_touch`, `event_touch`, `autorun`, `parallel`
- `commands` (配列、必須) - イベントコマンド(下記のコマンドタイプ参照)
- `graphic` (オブジェクト、オプション) - イベントグラフィック(キャラクタースプライト)
**使用例:**
```
「位置(10, 8)にNPCを追加、セリフは『こんにちは、旅人さん!』」
```
#### コマンドタイプ
イベントシステムは以下の簡易コマンドタイプをサポート:
**show_text** - ダイアログテキストを表示
```json
{
"type": "show_text",
"parameters": {
"text": "こんにちは、旅人さん!",
"faceName": "Actor1",
"faceIndex": 0
}
}
```
**show_choices** - プレイヤーに選択肢を提示
```json
{
"type": "show_choices",
"parameters": {
"choices": ["はい", "いいえ"],
"cancelType": 1
}
}
```
**transfer_player** - プレイヤーを別の場所にテレポート
```json
{
"type": "transfer_player",
"parameters": {
"mapId": 2,
"x": 5,
"y": 10,
"direction": 2
}
}
```
**set_switch** - ゲームスイッチ(フラグ)を設定
```json
{
"type": "set_switch",
"parameters": {
"switchId": 1,
"value": true
}
}
```
**set_variable** - ゲーム変数を設定
```json
{
"type": "set_variable",
"parameters": {
"variableId": 1,
"value": 10
}
}
```
**add_item** - アイテムをプレイヤーに与える
```json
{
"type": "add_item",
"parameters": {
"itemId": 1,
"amount": 1
}
}
```
**play_bgm** - 背景音楽を再生
```json
{
"type": "play_bgm",
"parameters": {
"name": "Town1",
"volume": 90,
"pitch": 100
}
}
```
**play_se** - 効果音を再生
```json
{
"type": "play_se",
"parameters": {
"name": "Chime1",
"volume": 90,
"pitch": 100
}
}
```
**wait** - 指定時間待機
```json
{
"type": "wait",
"parameters": {
"duration": 60
}
}
```
### AI支援
#### `generate_scenario`
自然言語の説明からゲームシナリオを生成
**パラメータ:**
- `prompt` (文字列、必須) - ゲームの自然言語説明
- `genre` (文字列、オプション) - ゲームジャンル(ファンタジー、SF、現代など)
- `length` (列挙型、オプション) - ゲームの長さ: `short`, `medium`, `long`
**使用例:**
```
「宇宙探検家が古代異星文明を発見するSF RPGシナリオを生成して」
```
### ナレッジベース
#### `search_knowledge`
RPG Maker MZ ナレッジベースを検索
**パラメータ:**
- `query` (文字列、必須) - 検索クエリ
- `categories` (配列、オプション) - 検索する特定のカテゴリ
**使用例:**
```
「『イベントトリガー』についてナレッジを検索して」
```
#### `get_knowledge`
特定カテゴリの完全なナレッジを取得
**パラメータ:**
- `category` (文字列、必須) - ナレッジカテゴリ名
**使用例:**
```
「イベントの完全なドキュメントを見せて」
```
**利用可能なカテゴリ:**
- `introduction` - 紹介と基本
- `game_types` - ゲームタイプとジャンル
- `map_creation` - マップ作成と編集
- `events` - イベントシステムとスクリプティング
- `test_play` - テストとデバッグ
- `database` - データベース管理
- `enemy_encounters` - 敵エンカウントと戦闘
- `opening` - オープニングシーケンス
- `ending` - エンディングシーケンス
- `publishing` - 公開と配布
- `qa` - Q&Aとトラブルシューティング
- `resources` - リソースとアセット
#### `get_best_practices`
特定機能のベストプラクティスとヒントを取得
**パラメータ:**
- `feature` (文字列、必須) - 機能名(例: "events", "maps", "battle")
**使用例:**
```
「バランスの取れた戦闘を作るベストプラクティスは?」
```
### バッチ操作
#### `batch_create`
複数のエンティティを一度に作成(マップ、イベント、アイテム、スキル、防具、武器)
**パラメータ:**
- `projectPath` (文字列、必須) - プロジェクトディレクトリパス
- `entityType` (列挙型、必須) - 作成するエンティティのタイプ: `map`, `event`, `item`, `skill`, `armor`, `weapon`
- `count` (数値、必須) - 作成する数(1-100)
- `template` (オブジェクト、必須) - テンプレート設定
- `baseName` (文字列) - ベース名
- `properties` (オブジェクト) - テンプレートプロパティ
- `autoIncrement` (真偽値、オプション) - 自動的に名前を連番化(デフォルト: true)
**使用例:**
```
「10個の回復アイテムを作成して。ポーション、ハイポーション...と強化されていくように」
```
```
「5つの森マップを連続して作成して」
```
**特徴:**
- 自動的に進行的な値の調整(威力、価格など)
- 同じ構造のエンティティを素早く生成
- プロトタイピングに最適
#### `apply_template`
事前構築されたゲームテンプレートを適用
**パラメータ:**
- `projectPath` (文字列、必須) - プロジェクトディレクトリパス
- `templateName` (列挙型、必須) - テンプレート名: `basic_rpg`, `action_rpg`, `visual_novel`, `dungeon_crawler`
- `customize` (オブジェクト、オプション) - カスタマイズオプション
- `theme` (文字列) - カスタムテーマ
- `difficulty` (列挙型) - 難易度: `easy`, `normal`, `hard`
**使用例:**
```
「basic_rpgテンプレートを適用して」
```
```
「dungeon_crawlerテンプレートを適用、難易度はhardで」
```
**利用可能なテンプレート:**
- **basic_rpg** - 伝統的なターン制RPG
- 町、ダンジョン、ボス部屋
- NPC、アイテムショップ
- 基本的な回復アイテムとスキル
- **action_rpg** - アクション重視のRPG
- ハブワールド、バトルアリーナ
- トレーニング場、宝物庫
- 素早い戦闘スキル
- **visual_novel** - ストーリー重視のゲーム
- 対話部屋、選択肢システム
- キャラクター中心のイベント
- 最小限の戦闘
- **dungeon_crawler** - 迷宮探索RPG
- 複数階層のダンジョン
- 宝箱とトラップ
- 探索重視
## 📖 使用例
### 例1: 完全なファンタジーRPG
```
1. 「FantasyQuestというプロジェクトを~/Games/FantasyQuestに作成」
2. 「ファンタジーRPGシナリオを生成:
- 平和な村が暗黒の力に脅かされている
- 主人公は4つの元素クリスタルを集めなければならない
- 各クリスタルは強力なボスに守られている
- ジャンル: ファンタジー、長さ: 中程度」
3. 「25x20の村マップ『希望の村』を作成」
4. 「(12, 10)に村の長老を追加、クエストを与える」
5. 「30x30の森ダンジョン『炎のクリスタル洞窟』を作成」
6. 「森ダンジョンの中央にボス戦イベントを追加」
```
### 例2: 現代ミステリーゲーム
```
1. 「DetectiveMysteryというプロジェクトを~/Games/DetectiveMysteryに作成」
2. 「現代ミステリーシナリオを生成:
- 探偵が屋敷の殺人事件を調査
- 5人の容疑者とアリバイ
- 手がかりを集めて事件を解決
- ジャンル: 現代、長さ: 短編」
3. 「40x30の屋敷マップ『殺人屋敷』を作成」
4. 「異なる部屋に5人のNPC容疑者を追加」
5. 「屋敷全体に手がかり発見イベントを作成」
```
### 例3: RPG Maker を学ぶ
```
1. 「RPG Maker MZ の紹介を見せて」
2. 「面白いイベントの作り方は?」
3. 「マップデザインのベストプラクティスは?」
4. 「『戦闘システム』についてナレッジを検索」
5. 「これらの概念を練習するためのテストプロジェクトを作成」
```
## 🔗 統合
### Serena MCP との併用
強化されたコードインテリジェンスのため、両MCPを一緒に使用:
```json
{
"mcpServers": {
"rpgmaker-mz": {
"command": "node",
"args": ["/path/to/rpgmaker-mz-mcp/dist/index.js"],
"env": {
"RPGMAKER_KNOWLEDGE_PATH": "/path/to/rpgmaker-knowledge"
}
},
"serena": {
"command": "npx",
"args": ["-y", "serena-mcp"],
"env": {
"SERENA_LOG_LEVEL": "info"
}
}
}
}
```
## 🛠️ 開発
### ソースからビルド
```bash
git clone https://github.com/yourusername/rpgmaker-mz-mcp.git
cd rpgmaker-mz-mcp
npm install
npm run build
```
### 開発モード
```bash
npm run dev
```
### プロジェクト構造
```
rpgmaker-mz-mcp/
├── src/
│ ├── index.ts # メインMCPサーバー
│ ├── types.ts # TypeScript型定義
│ ├── knowledge-base.ts # ナレッジベースマネージャー
│ └── rpgmaker-manager.ts # プロジェクト&ファイルマネージャー
├── dist/ # コンパイル済みJavaScript
├── package.json
├── tsconfig.json
└── README.md
```
## 📋 開発状況
| 機能 | 状態 |
|------|------|
| プロジェクト作成・管理 | ✅ 完了 |
| マップ作成・編集 | ✅ 完了 |
| イベント作成・編集 | ✅ 完了 |
| データベース編集 | ✅ 完了 |
| AIシナリオ生成 | ✅ 完了 |
| ナレッジベース統合 | ✅ 完了 |
| 自然言語コマンド | ✅ 完了 |
| Claude Desktopサポート | ✅ 完了 |
| Claude Codeサポート | ✅ 完了 |
| AI画像生成 | 🚧 計画中 |
| AI音声生成 | 🚧 計画中 |
| ビジュアルマップエディタ | 🚧 計画中 |
| プラグイン開発 | 🚧 計画中 |
## 🤝 貢献
貢献を歓迎します!貢献可能な分野:
1. 追加のイベントコマンドタイプ
2. データベース管理の強化
3. アセット生成統合
4. テストインフラ
5. ドキュメントの改善
6. サンプルプロジェクトとテンプレート
## 📄 ライセンス
MIT License - 詳細は LICENSE ファイルを参照
## 🙏 謝辞
- [RPG Maker MZ](https://www.rpgmakerweb.com/) - 公式ゲームエンジン
- [Model Context Protocol](https://modelcontextprotocol.io/) - AnthropicによるMCP仕様
- [参考実装](https://github.com/ShunsukeHayashi/rpgmaker-mz-mcp) - Shunsuke Hayashiによるオリジナルコンセプト
- Claude AI - 開発支援
## 📞 サポート
- **ドキュメント**: 詳細な例は [USAGE.md](./USAGE.md) を参照
- **インストールヘルプ**: トラブルシューティングは [INSTALL.md](./INSTALL.md) を参照
- **アーキテクチャ**: 技術詳細は [PROJECT_OVERVIEW.md](./PROJECT_OVERVIEW.md) を参照
- **クイックスタート**: 5分ガイドは [QUICKSTART.md](./QUICKSTART.md) を参照
- **Claude Code**: Claude Code専用ガイドは [CLAUDE_CODE_SETUP.md](./CLAUDE_CODE_SETUP.md) を参照
## 🎮 さあ、作ろう!
今日からAI支援で素晴らしいRPGを作り始めましょう!
```
「一緒にゲームを作ろう!」
```
---
**RPG Makerコミュニティのために ❤️ で作られました**TDQS
Scored across 10 tools
Each tool targets a distinct operation: project management, map/event creation, scenario generation, knowledge retrieval, batch creation, and templates. While batch_create overlaps slightly with create_map/create_event, it is clearly a bulk operation for multiple entity types, so no genuine ambiguity exists.
All tools follow a consistent snake_case verb_noun pattern (create_project, load_project, create_map, create_event, generate_scenario, search_knowledge, get_knowledge, get_best_practices, batch_create, apply_template). The naming is uniform and predictable.
With 10 tools, the server is well-scoped for RPG Maker MZ development. Each tool covers a distinct aspect without redundancy or bloat, making the count ideal for the server's purpose.
The tool set covers project lifecycle, map/event creation, scenario generation, batch entity creation, templates, and knowledge base access. Minor gaps exist, such as lack of update/delete operations for maps/events or individual entity management outside of batch_create, but the core workflows are well-supported.