完整 Unity MCP 工具白名单 + 两级工具架构文档更新
- deploy.ps1: 自动写入 allowedTools 白名单至 ~/.claude/settings.json - 包含 Claude 内置工具 (Bash/Read/Write/Edit/Glob/Grep 等) - 包含全部 66 个核心 Unity MCP 工具 (mcp__unity-mcp__ 前缀) - 包含 unity_list_advanced_tools + unity_advanced_tool 代理 (200+ 高级工具) - 包含 6 个 Unity Hub 工具 - 包含 multi-instance 和 project context 工具 - 同步写入 WSL2 ~/.claude/settings.json 和 Windows %USERPROFILE%\.claude\settings.json - README: 重写工具列表,反映两级架构 (288 工具),说明高级工具分类与用法 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -447,11 +447,75 @@ true
|
||||
Write-OK "Claude Code 安装完成"
|
||||
}
|
||||
|
||||
# 写入 Claude 配置(WSL2 侧)
|
||||
# 写入 Claude 配置(WSL2 侧)— 含 allowedTools 完整白名单(自动信任,无需每次确认)
|
||||
$mcpAllowedTools = @(
|
||||
# Claude 内置工具
|
||||
"Bash","Read","Write","Edit","MultiEdit","Glob","Grep","LS","WebFetch","TodoRead","TodoWrite",
|
||||
# Editor State
|
||||
"mcp__unity-mcp__unity_editor_ping","mcp__unity-mcp__unity_editor_state","mcp__unity-mcp__unity_project_info",
|
||||
# Scene
|
||||
"mcp__unity-mcp__unity_scene_info","mcp__unity-mcp__unity_scene_open","mcp__unity-mcp__unity_scene_save",
|
||||
"mcp__unity-mcp__unity_scene_new","mcp__unity-mcp__unity_scene_hierarchy","mcp__unity-mcp__unity_scene_stats",
|
||||
# GameObject
|
||||
"mcp__unity-mcp__unity_gameobject_create","mcp__unity-mcp__unity_gameobject_delete",
|
||||
"mcp__unity-mcp__unity_gameobject_info","mcp__unity-mcp__unity_gameobject_set_transform",
|
||||
"mcp__unity-mcp__unity_gameobject_duplicate","mcp__unity-mcp__unity_gameobject_set_active",
|
||||
"mcp__unity-mcp__unity_gameobject_reparent",
|
||||
# Component
|
||||
"mcp__unity-mcp__unity_component_add","mcp__unity-mcp__unity_component_remove",
|
||||
"mcp__unity-mcp__unity_component_get_properties","mcp__unity-mcp__unity_component_set_property",
|
||||
"mcp__unity-mcp__unity_component_set_reference","mcp__unity-mcp__unity_component_batch_wire",
|
||||
"mcp__unity-mcp__unity_component_get_referenceable",
|
||||
# Asset
|
||||
"mcp__unity-mcp__unity_asset_list","mcp__unity-mcp__unity_asset_import",
|
||||
"mcp__unity-mcp__unity_asset_delete","mcp__unity-mcp__unity_asset_create_prefab",
|
||||
"mcp__unity-mcp__unity_asset_instantiate_prefab",
|
||||
# Script & Code
|
||||
"mcp__unity-mcp__unity_script_create","mcp__unity-mcp__unity_script_read",
|
||||
"mcp__unity-mcp__unity_script_update","mcp__unity-mcp__unity_execute_code",
|
||||
# Material
|
||||
"mcp__unity-mcp__unity_material_create","mcp__unity-mcp__unity_renderer_set_material",
|
||||
# Build & Play Mode
|
||||
"mcp__unity-mcp__unity_build","mcp__unity-mcp__unity_play_mode",
|
||||
# Console & Compilation
|
||||
"mcp__unity-mcp__unity_console_log","mcp__unity-mcp__unity_console_clear",
|
||||
"mcp__unity-mcp__unity_get_compilation_errors",
|
||||
# Editor Actions
|
||||
"mcp__unity-mcp__unity_execute_menu_item","mcp__unity-mcp__unity_undo",
|
||||
"mcp__unity-mcp__unity_redo","mcp__unity-mcp__unity_undo_history",
|
||||
# Selection & Search
|
||||
"mcp__unity-mcp__unity_selection_get","mcp__unity-mcp__unity_selection_set",
|
||||
"mcp__unity-mcp__unity_selection_focus_scene_view","mcp__unity-mcp__unity_selection_find_by_type",
|
||||
"mcp__unity-mcp__unity_search_by_component","mcp__unity-mcp__unity_search_by_tag",
|
||||
"mcp__unity-mcp__unity_search_by_layer","mcp__unity-mcp__unity_search_by_name",
|
||||
"mcp__unity-mcp__unity_search_assets","mcp__unity-mcp__unity_search_missing_references",
|
||||
# Screenshots & Graphics
|
||||
"mcp__unity-mcp__unity_screenshot_game","mcp__unity-mcp__unity_screenshot_scene",
|
||||
"mcp__unity-mcp__unity_graphics_scene_capture","mcp__unity-mcp__unity_graphics_game_capture",
|
||||
# Prefab
|
||||
"mcp__unity-mcp__unity_prefab_info","mcp__unity-mcp__unity_set_object_reference",
|
||||
# Packages
|
||||
"mcp__unity-mcp__unity_packages_list","mcp__unity-mcp__unity_packages_add",
|
||||
"mcp__unity-mcp__unity_packages_remove","mcp__unity-mcp__unity_packages_search",
|
||||
"mcp__unity-mcp__unity_packages_info",
|
||||
# Queue & Multi-Agent
|
||||
"mcp__unity-mcp__unity_queue_info","mcp__unity-mcp__unity_agents_list","mcp__unity-mcp__unity_agent_log",
|
||||
# Advanced Tools proxy(200+ 工具通过此代理访问)
|
||||
"mcp__unity-mcp__unity_list_advanced_tools","mcp__unity-mcp__unity_advanced_tool",
|
||||
# Unity Hub
|
||||
"mcp__unity-mcp__unity_hub_list_editors","mcp__unity-mcp__unity_hub_available_releases",
|
||||
"mcp__unity-mcp__unity_hub_install_editor","mcp__unity-mcp__unity_hub_install_modules",
|
||||
"mcp__unity-mcp__unity_hub_get_install_path","mcp__unity-mcp__unity_hub_set_install_path",
|
||||
# Multi-Instance & Project Context
|
||||
"mcp__unity-mcp__unity_list_instances","mcp__unity-mcp__unity_select_instance",
|
||||
"mcp__unity-mcp__unity_get_project_context"
|
||||
)
|
||||
$claudeSettingsJson = [ordered]@{ model = $CLAUDE_MODEL; allowedTools = $mcpAllowedTools } |
|
||||
ConvertTo-Json -Depth 3
|
||||
$writeClaudeSettingsCmd = @"
|
||||
mkdir -p ~/.claude
|
||||
cat > ~/.claude/settings.json << 'SETTINGS'
|
||||
{"model": "$CLAUDE_MODEL"}
|
||||
$claudeSettingsJson
|
||||
SETTINGS
|
||||
true
|
||||
"@
|
||||
@@ -472,7 +536,7 @@ Invoke-WSL $addEnvCmd -IgnoreError | Out-Null
|
||||
# Windows 侧 Claude 配置
|
||||
$claudeDir = "$env:USERPROFILE\.claude"
|
||||
if (-not (Test-Path $claudeDir)) { New-Item -ItemType Directory -Path $claudeDir | Out-Null }
|
||||
@{ model = $CLAUDE_MODEL } | ConvertTo-Json | Set-Content "$claudeDir\settings.json" -Encoding UTF8
|
||||
$claudeSettingsJson | Set-Content "$claudeDir\settings.json" -Encoding UTF8
|
||||
if ($ANTHROPIC_API_KEY) {
|
||||
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", $ANTHROPIC_API_KEY, "User")
|
||||
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", $ANTHROPIC_BASE_URL, "User")
|
||||
|
||||
Reference in New Issue
Block a user