list_dungeons
Retrieve available dungeons and their details for the MCP Dungeon Game idle crawler using your save key. View dungeon information to plan exploration and equipment collection.
Instructions
利用可能なすべてのダンジョンとその情報を一覧表示します。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| save_key | Yes | セーブキー |
Implementation Reference
- src/tools/dungeon.ts:11-39 (handler)The listDungeons function fetches all available dungeons using getAllDungeons() and formats them into a descriptive string including floor count, duration, enemies, boss, and loot rarity. It takes a saveKey to verify the player's existence before returning the list.
export async function listDungeons(saveKey: string): Promise<string> { const data = await storage.load(saveKey); if (!data.player.name) { return "プレイヤーが見つかりません。先に'create_player'を実行してください。"; } const dungeons = getAllDungeons(); const playerStats = calculateTotalStats(data.player.equipment); let output = `=== 利用可能なダンジョン ===\n\n`; for (const dungeon of dungeons) { const actualTime = calculateDungeonTime(dungeon.baseTime, playerStats.speed); output += `[${dungeon.id}] ${dungeon.name}\n`; output += ` 階層: ${dungeon.floors}階\n`; output += ` 所要時間: ${actualTime}分 (基本: ${dungeon.baseTime}分)\n`; output += ` 出現モンスター: ${dungeon.enemies.map(e => e.name).join(', ')}\n`; output += ` ボス: ${dungeon.boss.name}\n`; output += ` 報酬レアリティ: ${[...new Set(dungeon.rewardPool.map(r => r.rarity))].join(', ')}\n`; output += '\n'; } output += `詳細情報: 'dungeon_info <dungeon_id>'\n`; output += `探索開始: 'start_dungeon <dungeon_id>'`; return output; }