Skip to main content
Glama
akiraKido

Unity Build Automation MCP

by akiraKido
README.md
# Unity Build Automation MCP Server

Unity Cloud Build (Build Automation) の REST API を [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) サーバーとしてラップし、Claude Code から直接ビルド状況の確認・操作を可能にします。

## Architecture

```
Claude Code <--stdio--> MCP Server (Node.js/TypeScript) <--HTTPS--> Unity Build API
                                                                     https://build-api.cloud.unity3d.com/api/v1/
```

## Setup

### Prerequisites

- Node.js (ES2022+)
- Unity Build Automation API Key

### Install

```bash
# npx で直接使う場合(インストール不要)
npx -y unity-build-automation-mcp

# グローバルインストール
npm install -g .

# ローカル開発
npm install
```

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `UNITY_BUILD_API_KEY` | Yes | Unity Build Automation API Key |
| `UNITY_BUILD_ORG_ID` | Yes | Organization ID |
| `UNITY_BUILD_DEFAULT_PROJECT` | No | Default project name or ID |

### Claude Code MCP Settings

Claude Code CLI で追加:

```bash
claude mcp add unity-build -- npx -y unity-build-automation-mcp
```

または `~/.claude.json` / `.mcp.json` に手動で追加:

```json
{
  "mcpServers": {
    "unity-build": {
      "command": "npx",
      "args": ["-y", "unity-build-automation-mcp"],
      "env": {
        "UNITY_BUILD_API_KEY": "<your-api-key>",
        "UNITY_BUILD_ORG_ID": "<your-org-id>"
      }
    }
  }
}
```

ローカルリポジトリから直接使う場合:

```json
{
  "mcpServers": {
    "unity-build": {
      "command": "node",
      "args": ["<path-to-repo>/dist/index.js"],
      "env": {
        "UNITY_BUILD_API_KEY": "<your-api-key>",
        "UNITY_BUILD_ORG_ID": "<your-org-id>"
      }
    }
  }
}
```

## Tools

### Read Operations

| Tool | Description |
|------|-------------|
| `list_projects` | Organization 内のプロジェクト一覧を取得 |
| `list_build_targets` | プロジェクトのビルドターゲット一覧を取得 |
| `list_builds` | ビルド一覧を取得(ステータスでフィルタ可) |
| `get_build` | 特定ビルドの詳細情報を取得 |
| `get_build_log` | ビルドログの末尾N行を取得 |

### Write Operations

| Tool | Description |
|------|-------------|
| `start_build` | 新しいビルドを開始 |
| `cancel_build` | 実行中のビルドをキャンセル |

> Write operations は Claude Code 側で実行前に確認プロンプトが表示されます。

## Usage Examples

**ビルド状況の確認:**
> 「最新のビルド状況を見せて」

**失敗ビルドの調査:**
> 「失敗したビルドのログを確認して」

**ビルドの開始:**
> 「Android の develop ブランチでビルドを開始して」

**ビルドターゲットの確認:**
> 「MyProject のビルドターゲット一覧を見せて」

## Parameters

ほとんどのツールで `project` パラメータは省略可能です。省略時はデフォルトプロジェクトが使用されます。プロジェクト名(例: `MyProject`)または UUID のどちらでも指定できます。

### Build Status Values

| Status | Description |
|--------|-------------|
| `queued` | キュー待ち |
| `sentToBuilder` | ビルダーに送信済み |
| `started` | ビルド中 |
| `restarted` | 再開 |
| `success` | 成功 |
| `failure` | 失敗 |
| `canceled` | キャンセル |
| `unknown` | 不明 |

## Development

```bash
npm run dev    # TypeScript watch mode
npm run build  # Build
npm start      # Run server
```

## Project Structure

```
src/
  index.ts             # Entry point, MCP server setup
  api.ts               # Unity Build API client
  config.ts            # Configuration / env var handling
  types.ts             # TypeScript type definitions
  format.ts            # Output formatting utilities
  tools/
    list-projects.ts
    list-build-targets.ts
    list-builds.ts
    get-build.ts
    get-build-log.ts
    start-build.ts
    cancel-build.ts
```

## License

Private

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource and action: listing projects, build targets, or builds; getting build details or logs; and starting or canceling builds. The descriptions clearly differentiate similar-sounding operations like list_build_targets and list_builds.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (list_, get_, start_, cancel_), with only natural extensions like list_build_targets and get_build_log. No mixed conventions or vague verbs are present.

Tool Count5/5

Seven tools are well-scoped for a build automation server, covering core listing, inspection, and control operations without redundancy. The count sits comfortably within the ideal 3–15 range.

Completeness4/5

The surface covers the essential build lifecycle: listing projects, targets, and builds; retrieving build details and logs; and starting or canceling builds. Minor gaps exist, such as no tool to inspect or manage build target configurations directly, but core workflows are fully supported.

Maintenance

ActivityInactive
ResponsivenessNo issues