AIRON
人工智能远程操作节点
通过Claude.ai远程控制Unity编辑器,或通过Claude Code本地控制Unity编辑器。
版本:0.9.0测试版
概述
AIRON通过MCP(模型上下文协议)将Claude连接到Unity,实现了AI驱动的Unity开发工作流程。所有功能都捆绑在一个可执行文件中(airon.exe 或 node airon.js)具有三种操作模式:
- 节点模式 (默认)-通过Claude.ai连接到中继服务器进行远程访问
- 中继模式 (
-m relay)-作为中央中继服务器运行 - 桥接模式 (
-m bridge)-用于本地克劳德代码集成的Stdio MCP桥
存储库结构
airon/
├── README.md
├── LICENSE
├── .gitignore
├── package.json
├── package-lock.json
├── build-sea.js # Build script for standalone executable
├── src/
│ ├── airon.js # Main entry point (all modes)
│ ├── airon-relay.js # Relay server module
│ ├── airon-bridge.js # Bridge module
│ └── com.airon.mcp/ # Unity package
│ ├── Editor/
│ ├── Runtime/
│ ├── package.json
│ ├── LICENSE.txt
│ └── README.md
└── dist/
└── airon.exe # Standalone Windows executable快速开始
选项1:本地模式(克劳德代码→ 团结)
最适合使用Claude Code CLI进行本地开发。
1.安装Unity软件包
复制 src/com.airon.mcp/ 转到Unity项目的Packages文件夹。
2.将MCP服务器添加到Claude代码中
# Direct HTTP connection (recommended)
claude mcp add unity-editor --transport http http://localhost:3002/mcp
claude mcp add unity-game --transport http http://localhost:3003/mcp
# Or use AIRON bridge (alternative - supports auto-retry)
claude mcp add unity-editor airon.exe -- -m bridge --editor
claude mcp add unity-game airon.exe -- -m bridge --game3.开始使用
打开Unity,然后正常使用Claude Code。工具可用 mcp__unity-editor__play等等。
选项2:远程模式(第ai条→ 中继→ 团结)
最适合移动访问或Claude.ai网络界面。
1.部署中继服务器
# Using the executable
airon.exe -m relay
# Or from source
node src/airon.js -m relay看 中继服务器设置 用于生产部署。
2.安装Unity软件包
复制 src/com.airon.mcp/ 转到Unity项目的Packages文件夹。
3.运行节点客户端
# Using the executable (opens browser for OAuth login)
airon.exe https://relay.example.com --client-id
# Or from source
node src/airon.js https://relay.example.com --client-id 节点客户端将打开您的浏览器进行OAuth登录(默认为谷歌)。凭据缓存在 ~/.airon/credentials.json 并自动刷新。
4.配置Claude.ai MCP连接器
在第.ai条中:设置→ 连接器→ 添加自定义连接器
- 统一资源定位符:
https://relay.example.com/mcp - Claude.ai将通过OAuth流重定向以进行身份验证
命令行用法
所有功能都可以通过具有不同模式的单个可执行文件访问。
用法
airon [options] [relay-url]
Modes:
-m, --mode Operating mode: node (default), relay, or bridge
Node Mode (default) - Connect to relay server:
airon [relay-url] [options]
--issuer OIDC issuer URL (default: https://accounts.google.com)
--client-id OAuth Client ID
--client-secret OAuth Client Secret (for token refresh)
-e, --editor-port
Unity Editor MCP port (default: 3002)
-g, --game-port
Unity Game MCP port (default: 3003)
-p, --path Working directory (default: current)
Relay Mode - Run as relay server:
airon -m relay
Environment variables:
PORT Server port (default: 3001)
AIRON_OIDC_ISSUER OIDC issuer URL (default: https://accounts.google.com)
AIRON_OIDC_CLIENT_ID OAuth Client ID
AIRON_OIDC_CLIENT_SECRET OAuth Client Secret
AIRON_BASE_URL Public base URL of the relay
Bridge Mode - Stdio MCP bridge:
airon -m bridge [port] Generic MCP on specified port
airon -m bridge --editor [port] Unity Editor MCP (default: 3002)
airon -m bridge --game [port] Unity Game MCP (default: 3003)
General:
-h, --help Show help message例子
# Node mode - connect to relay (opens browser for OAuth login)
airon --client-id
airon https://custom-relay.com --client-id
# Relay mode - start server
airon -m relay
# Bridge mode - stdio MCP for Claude Code
airon -m bridge --editor
airon -m bridge --game交互式命令
连接后,在终端中使用以下命令:
status - Check Unity and MCP server status
claude-code - Run Claude Code task
claude-continue [input] - Continue session with input
claude-force - Execute with full permissions
claude-sessions - List active Claude Code sessions
claude-abort - Abort current running task
unity-editor [args] - Call Unity Editor MCP tool
unity-game [args] - Call Unity Game MCP tool
unity-tools - List all available Unity MCP tools
help - Show help
exit - Exit AIRON桥接模式
直接HTTP连接的替代方案。将Unity的HTTP MCP服务器包装为stdio传输。
何时使用:
- MCP客户端仅支持stdio传输(不支持HTTP)
- 编译期间Unity重新启动时需要自动重试
用法
# Add via Claude Code (alternative to direct HTTP)
claude mcp add unity-editor airon.exe -- -m bridge --editor
claude mcp add unity-game airon.exe -- -m bridge --game模式
| 模式 | 描述 | 工具名称 |
|---|---|---|
--editor | 仅限MCP编辑器(默认) | play, status等等。 |
--game | 仅限游戏MCP | status, viewlog等等。 |
特性
- 自动重试:等待10秒,如果Unity未就绪,则重试
- 会话跟踪:跨请求维护MCP会话
- 批量支持:处理JSON-RPC批处理请求
注: 对于大多数用例,直接HTTP连接更简单,建议使用。
中继模式
用于远程访问的中央服务器。处理身份验证和消息路由。
快速开始
# Start relay server locally
airon -m relay
# Or with environment variables
AIRON_OIDC_CLIENT_ID=your-client-id AIRON_OIDC_CLIENT_SECRET=your-secret airon -m relay使用Docker进行生产部署
1.创建docker-compose.yml
version: '3.8'
services:
airon-relay:
image: node:20-alpine
container_name: airon-relay
restart: unless-stopped
working_dir: /app
volumes:
- ./src/airon.js:/app/airon.js
- ./src/airon-relay.js:/app/airon-relay.js
- ./node_modules:/app/node_modules
ports:
- "3001:3001"
environment:
- PORT=3001
- AIRON_OIDC_ISSUER=https://accounts.google.com
- AIRON_OIDC_CLIENT_ID=your-google-client-id
- AIRON_OIDC_CLIENT_SECRET=your-google-client-secret
- AIRON_BASE_URL=https://relay.example.com
command: node airon.js -m relay2.部署
mkdir airon-relay && cd airon-relay
# Copy docker-compose.yml and airon-relay.js
# Install dependencies
docker run --rm -v $(pwd):/app -w /app node:20-alpine npm install
# Start relay
docker-compose up -d3.使用Caddy添加HTTPS(推荐)
# Add to docker-compose.yml
services:
caddy:
image: caddy:alpine
container_name: airon-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
depends_on:
- airon-relay
airon-relay:
expose:
- "3001"
# Remove ports section
volumes:
caddy_data:Caddyfile:
relay.example.com {
reverse_proxy airon-relay:3001
}安全特性
- OAuth 2.0/OIDC身份验证:提供商无关(默认为谷歌)
- JWT验证:根据OIDC发行人的JWKS验证ID令牌
- 自动令牌刷新:令牌在到期前刷新
- 速率限制:每个IP每15分钟100个请求
- 连接限制:最多1000个SSE客户
- 会话到期:Claude会话将在7天后过期
Unity软件包(com.airon.mcp)
用于Unity编辑器和游戏运行时的MCP服务器。
特性
- 可流式HTTP传输 (MCP规范2025-03-26)
- 基于文件的配置 (
ProjectSettings/Packages/com.airon.mcp/Settings.json) - SSE通知 用于实时事件
- 自定义工具 通过反射
- 仅限本地主机 出于安全考虑
默认工具
编辑器MCP(端口3002)
| 工具 | 说明 |
|---|---|
play | 进入播放模式 |
stop | 退出播放模式 |
pause | 切换暂停 |
status | 获取编辑器状态 |
viewlog | 查看Unity控制台日志 |
游戏MCP(端口3003)
| 工具 | 说明 |
|---|---|
status | 获取运行时状态 |
viewlog | 查看游戏日志 |
看 src/com.airon.mcp/README.md 用于创建自定义工具。
可用工具(远程模式)
发展
claude-code(description)-启动AI任务(交互模式)claude-continue(input, sessionId)-继续会话claude-force(sessionId)-以完全权限执行claude-sessions()-列出活动会话claude-abort()-取消任务
文件
view(path, lines)-查看文件或目录grep(pattern, path, recursive, ignoreCase)-搜索文件str_replace(path, old_str, new_str)-编辑文件file_create(path, file_text)-创建文件file_delete(path)-删除文件file_move(source, destination)-移动文件mkdir(path)-创建目录rmdir(path)-删除空目录
统一
unity-editor(tool, args)-呼叫编辑器MCP工具unity-game(tool, args)-呼叫游戏MCP工具unity-tools()-列出所有可用工具
系统
status()-完整系统状态
Claude代码工作流
交互模式(远程)
claude-code:分析任务,解释所需的更改- 查看解释
claude-continue:提供指导或批准claude-force:执行--dangerously-skip-permissions
本地模式
使用Unity MCP工具的标准克劳德代码:
mcp__unity-editor__play
mcp__unity-editor__status
mcp__unity-editor__viewlog重要:Unity仅在前台应用程序时编译。文件操作后,聚焦Unity以触发编译。
从源头构建
# Install dependencies
npm install
# Run directly
node src/airon.js --client-id
node src/airon.js -m relay
node src/airon.js -m bridge --editor
# Build standalone executable (Windows)
npm run build
# Output: dist/airon.exe需求
- Node.js:20+(SEA构建所需)
- 统一: 2021.3+
- 克劳德代码:最新版本(适用于本地模式)
- 视窗:仅可独立执行(或在其他平台上通过Node.js运行)
已知问题
- 中的服务器版本字符串
airon-relay.js,airon-bridge.js,以及Constants.cs硬编码为"1.0.0"而不是"0.9.0-beta" --help继电器模式的输出未列出AIRON_OIDC_CLIENT_SECRET和AIRON_BASE_URL环境变量- 继电器工具说明
unity-game提到一个不存在的execute工具 ControlWindow.cs示例参考GetCurrentScene不存在的方法(应该是GetLoadedScenes)
许可证
麻省理工学院-卡罗尔·科瓦尔奇克
