Skip to main content
Glama

gaea-mcp

Gaea 2.0 terrain generation tool の MCP サーバー。 CLI ビルド自動化と .terrain ファイルのグラフ操作を提供します。

前提条件

  • Node.js v18 以上

  • Gaea 2.0 がインストール済みであること(Community / Professional)

    • ビルド機能には Gaea.Swarm.exe が必要です

Related MCP server: Agentic AI MCP Server

セットアップ

git clone <repo-url>
cd gaea-mcp
npm install

1. Gaea インストールパスの設定

サーバーは以下の優先順位で Gaea のインストール先を探します:

  1. 環境変数 GAEA_INSTALL_DIR(.env または .mcp.json で指定)

  2. 自動検出 — %LOCALAPPDATA%\Programs\Gaea 2.0 など一般的なパスを順に確認

通常のインストール(Gaea のデフォルトインストーラー)であれば自動検出されるため、明示的な設定は不要です。

カスタムパスにインストールした場合のみ、以下のいずれかで GAEA_INSTALL_DIR を設定してください。 指定するディレクトリには Gaea.exe と Gaea.Swarm.exe が含まれている必要があります。

2. 設定ファイルの作成

.env と .mcp.json はどちらも .gitignore に含まれており、リポジトリには同梱されません。 利用環境に合わせてローカルで作成してください。

方法 A: .env ファイル(シンプル)

プロジェクトルートに .env を作成:

# Gaea のインストールディレクトリ(自動検出できる場合は省略可)
# GAEA_INSTALL_DIR=C:/Users/<ユーザー名>/AppData/Local/Programs/Gaea 2.0

# .terrain ファイルの保存先(省略時: ./projects)
# PROJECT_DIR=./projects

# ビルド出力先(省略時: ./output)
# OUTPUT_DIR=./output

方法 B: .mcp.json(Claude Code 連携用)

Claude Code から MCP サーバーとして利用する場合は .mcp.json を作成:

{
  "mcpServers": {
    "gaea": {
      "command": "npx",
      "args": ["tsx", "src/server.ts"],
      "env": {
        "GAEA_INSTALL_DIR": "C:/Users/<ユーザー名>/AppData/Local/Programs/Gaea 2.0"
      }
    }
  }
}

パスの書き方:

  • Windows でもスラッシュ / を使ってください(例: C:/Users/...)

  • <ユーザー名> は自分の Windows ユーザー名に置き換えてください

  • 自動検出に任せる場合は GAEA_INSTALL_DIR 行を削除して構いません

環境変数一覧

変数名

必須

デフォルト

説明

GAEA_INSTALL_DIR

いいえ

自動検出

Gaea インストールディレクトリ

PROJECT_DIR

いいえ

./projects

.terrain ファイルの保存ディレクトリ

OUTPUT_DIR

いいえ

./output

ビルド出力ディレクトリ

3. 動作確認

# サーバーの起動テスト(stdio で起動し、Gaea 検出ログが stderr に出る)
npm run dev

# 正常なら以下のようなログが出力される:
# [config] Auto-detected Gaea install at: C:/Users/.../AppData/Local/Programs/Gaea 2.0
# [gaea-mcp-server] Server started on stdio transport

Ctrl+C で終了してください。このサーバーは MCP クライアント(Claude Code 等)経由で使うものなので、 通常は直接起動する必要はありません。

使い方

Claude Code から使う

  1. 上記の .mcp.json をプロジェクトルートに配置

  2. Claude Code のプロジェクトディレクトリでこのリポジトリを開く

  3. Claude に「地形を作って」と言えば、MCP ツール経由でノードグラフの作成・ビルドが可能

典型的なワークフロー

create_terrain → add_node (Mountain) → add_node (Erosion2) → connect_nodes → build_terrain

Tools

Tool

Description

check_gaea_status

Gaea の検出状態とパスを確認

get_gaea_version

インストール済み Gaea のバージョン取得

list_projects

プロジェクトディレクトリの .terrain ファイル一覧

build_terrain

Gaea.Swarm.exe で地形をビルド

list_node_types

利用可能なノードタイプ一覧(120種、9カテゴリ)

read_terrain_graph

.terrain ファイルのノード・接続サマリー

get_node_details

特定ノードの詳細プロパティ

create_terrain

空の .terrain ファイルを作成

add_node

ノードを追加

remove_node

ノードを削除

connect_nodes

ノード間を接続

disconnect_port

ポートの接続を解除

set_node_property

ノードのプロパティを設定

開発

npm run dev          # tsx でサーバー起動(開発用)
npx tsc --noEmit     # 型チェック
npm run build        # dist/ にコンパイル

ディレクトリ構成

src/
  config.ts       - Gaea インストールパス自動検出
  node-types.ts   - ノードタイプレジストリ(120種)
  terrain-io.ts   - .terrain JSON 読み書き(カスタムシリアライザ)
  server.ts       - MCP サーバー + LLM向け instructions
scripts/
  scan-examples.ts - Gaea Examples からノードタイプを抽出するスクリプト

Available Tools

13 tools
add_nodeA

Add a node to the terrain graph. Use list_node_types to see available types and their ports. Common types: Mountain, Erosion2, Combine, SatMap, Export. Set initial properties for best results, e.g. Mountain: {Scale: 1.5, Height: 3}, Erosion2: {Duration: 15}, Combine: {Method: "Multiply"}, Mesher: {Format: "GLB"}. Position nodes left-to-right by increasing X (spacing ~300-500). Y=26250 for a single row. After adding, use connect_nodes to wire it into the graph.

Inputs: filename (required), nodeType (required), x, y, +2 more.

build_terrainA

Build a terrain using Gaea.Swarm.exe CLI. Renders all output nodes in the .terrain file. The -v (variables) argument is always placed last automatically. Typical build time: seconds to minutes depending on resolution and node complexity.

Inputs: filename (required), seed, region, profile, +4 more.

check_gaea_statusA

Check if Gaea is installed and report executable paths, project directory, and readiness. Call this first to verify the environment.

Inputs: no named parameters.

connect_nodesA

Connect two nodes by wiring an output port to an input port. Default ports: "Out" → "In" (works for most simple chains). For nodes with multiple ports (e.g. Combine has Input2, Mask; Erosion2 outputs Flow, Wear, Deposits), specify the port names explicitly. For Combine, set Method property before connecting (e.g. "Multiply" for masking, "Max" for blending terrains, "Screen" for color compositing). Each input port accepts only one connection — connecting replaces any existing connection on that input.

Inputs: filename (required), toNodeId (required), fromNodeId (required), toPort, +1 more.

create_terrainA

Create a new empty .terrain file compatible with Gaea 2.2.9. The file is saved in the project directory. After creation, use add_node to populate the graph. A typical workflow: create_terrain → add_node (generators: Mountain, RadialGradient) → add_node (processors: Erosion2, Thermal2, Rivers, Craggy, Snow) → add_node (colorizers: SatMap, ColorErosion) → add_node (outputs: Export, Mesher) → connect_nodes to wire the chain.

Inputs: name (required).

disconnect_portA

Remove the incoming connection on a specific input port of a node.

Inputs: nodeId (required), filename (required), portName (required).

get_gaea_versionA

Get the installed Gaea version number.

Inputs: no named parameters.

get_node_detailsA

Get all properties and port connections of a specific node. Use read_terrain_graph first to find node IDs.

Inputs: nodeId (required), filename (required).

list_node_typesA

List available Gaea node types with their categories and port definitions. Categories: Primitive, Terrain, Simulate, Surface, Modify, Derive, Colorize, Utility, Output. Use the "key" value (e.g. "Mountain") as the nodeType parameter in add_node.

Inputs: category.

list_projectsB

List .terrain files in the project directory. Use absolute paths for files outside this directory.

Inputs: no named parameters.

read_terrain_graphA

Read a .terrain file and return a complete summary: all nodes, their properties, ports, and connections. Call this first when working with an existing terrain to understand the current graph structure. Each node has an "id" that you use in connect_nodes, set_node_property, remove_node, etc.

Inputs: filename (required).

remove_nodeA

Remove a node and all its connections (both incoming and outgoing) from the terrain graph.

Inputs: nodeId (required), filename (required).

set_node_propertyA

Set a property value on a node. Properties vary by node type. Common properties: Seed (int), Duration (float), Scale (float), Style (string enum). Use get_node_details to see current properties and their values. Only non-default values are stored — setting a property to its default effectively removes it.

Inputs: value (required), nodeId (required), filename (required), property (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 13 tools

    Disambiguation5/5

    Each tool targets a distinct operation: listing node types, getting node details, checking status, version, projects, building, reading graph, creating terrain, adding/removing nodes, connecting/disconnecting, and setting properties. No overlap or ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., list_node_types, set_node_property, build_terrain), with no mixing of conventions.

    Tool Count5/5

    13 tools are well-scoped for a terrain generation MCP server, covering environment checks, project management, graph creation/editing, and building without excess or deficiency.

    Completeness5/5

    The tool surface covers the full workflow: environment setup, terrain creation, node manipulation (add/remove/connect/disconnect/properties), graph inspection, and building. No critical gaps are evident for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A Minecraft MCP Server powered by Mineflayer API. It allows to control a Minecraft character in real-time, allowing AI assistants to build structures, explore the world, and interact with the game environment through natural language instruction
      2
      22
      80 npm
      810
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server with real AI capabilities (OpenAI/Anthropic) for natural language understanding, multi-step planning, and autonomous task execution, enabling intelligent file analysis, weather-based planning, and more.
      512 npm
      ISC
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for AI-assisted Blender automation, providing layered tools for perception, declarative and imperative writing, and fallback operations.
      29
      85 PyPI
      7
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      An MCP server that empowers AI coding agents to work effectively with Minecraft mod development, providing static analysis of decompiled source code and runtime interaction with a running Minecraft instance.
      31
      68 npm
      18
      MIT