🎮

Gemini CLIでMinecraft(Java版)の自律Botを動かす

に公開

はじめに

Gemini CLIがリリースされ、1日1000リクエストまで無料で使えるようになりました。この記事では、Gemini CLIとMCP(Model Context Protocol)サーバーを組み合わせて、Minecraft Java版で動作する自律Botを実装する方法を解説します。

実際に動かしてみた結果、レスポンスの遅延や周囲認識の課題など、現時点での限界も見えてきました。しかし、AIによるゲーム操作の可能性を探る第一歩として、興味深い実験となりました。

対象読者

  • Gemini CLIに興味がある方
  • MinecraftとAIを組み合わせた実験をしたい方
  • MCPサーバーの活用例を探している方
  • プログラミング経験があり、コマンドライン操作に慣れている方

必要な環境

  • Minecraft Java版 (1.21.4)
  • Gemini CLI(セットアップ済み)
  • Node.js(npxコマンドが使える環境)
  • LANで接続可能なMinecraftサーバー

Gemini CLIのセットアップ

Gemini CLIがまだセットアップされていない方は、以下の記事を参考にセットアップを行ってください。

https://zenn.dev/owayo/articles/a9254d5e65641b

MCPサーバーの選定

MinecraftをGemini CLIから操作するために、MCP(Model Context Protocol)サーバーを使用します。いくつかの選択肢を検討した結果、以下のリポジトリが最も活発に開発されていることがわかりました。

https://github.com/yuniko-software/minecraft-mcp-server

このMCPサーバーは、Minecraft Java版のゲーム内操作をAPI経由で制御できるようにするツールです。プレイヤーの移動、ブロックの設置・破壊、チャット機能などの基本的な操作をサポートしています。

設定手順

1. Minecraft Java版の準備

まず、Minecraft Java版を起動し、シングルプレイヤーワールドを作成します。その後、ESCキーを押してゲームメニューを開き、「LANに公開」を選択します。表示されるポート番号をメモしておきます(例:25565)。

2. Gemini CLIの設定

~/.gemini/settings.json をテキストエディターで開き、以下のようにMCPサーバーの設定を追加します:

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
    "minecraft": {
      "command": "npx",
      "args": [
        "-y",
        "github:yuniko-software/minecraft-mcp-server",
        "--host",
        "192.168.0.111", // Minecraft Java版が動いているサーバのIPアドレス
        "--port",
        "25565", // LANに公開したポート番号
        "--username",
        "gemini" // Botのユーザー名(任意)
      ]
    }
  }
}

設定のポイント:

  • --host: Minecraftが動作しているPCのIPアドレスを指定します
  • --port: LANに公開した際に表示されたポート番号を指定します
  • --username: Bot用のユーザー名を自由に設定できます

3. 動作確認

設定が完了したら、Gemini CLIを起動し、Minecraftに関する指示を出してみます。
最初はmcpを使わせることを明示するため、
minecraft mcp serverを使用してマインクラフトを操作して」と投げました。
ココで注意なのですがMinecraftには、MCP Serverとは違う意味のMCPという用語があります。
単にMCPと言ってしまうと、Mod Coder Packと誤解を与えるので、mcp serverと明示したほうが良いです。最初mcpという言葉を使ったため誤動作しました。
その後は、

「プレイヤーについて来て」
「周囲の白樺をx本切って」

などと指示ができます。
クラフトには対応してなさそうでした。残念。

実際に動かしてみた結果

プレイヤーについて来て

周囲にある白樺の木を10本切って

良かった点

  • 基本的な移動コマンドは正常に動作しました
  • ブロックの設置・破壊も可能でした
  • チャット機能を通じてBotとコミュニケーションが取れました

課題と限界

実際に動かしてみて、以下のような課題が見つかりました:

  1. レスポンスの遅延

    • コマンドを送信してから実際に動作するまでにかなりのラグがあります
    • リアルタイムな操作が必要な場面では実用的ではありません
  2. 周囲状況の認識不足

    • Botは周囲の環境を十分に把握できません
    • モンスターの位置や動きを認識できないため、戦闘は困難です
    • 穴や崖などの危険も認識できず、落下することがあります
  3. 複雑な作業の困難さ

    • 建築のような複雑な作業は、現状では難しいです
    • 連続した動作の精度が低く、思い通りの結果にならないことが多いです

今後の可能性

現時点では実用レベルには達していませんが、以下のような改善により、より高度な自律Botの実現が期待できます:

  • MCPサーバーの機能拡張(視覚情報の取得など)
  • Gemini CLIのレスポンス速度向上
  • より高度なプロンプトエンジニアリング

特に、Minecraftの画面情報をGeminiに送信できるようになれば、周囲の状況を認識した上での行動が可能になり、実用性が大幅に向上するでしょう。

まとめ

Gemini CLIとMCPサーバーを使ったMinecraft自律Botの実装は、現時点では実験的な段階にあります。レスポンスの遅延や周囲認識の課題はありますが、AIによるゲーム操作の可能性を探る興味深い実験となりました。

今後のGemini CLIやMCPサーバーの改良により、より高度な自律Botの実現が期待できます。AIとゲームの融合は、エンターテインメントだけでなく、教育やプログラミング学習の分野でも新たな可能性を開くかもしれません。

皆さんも是非、Gemini CLIを使った創造的な実験に挑戦してみてください!

Discussion