新增godot mcp github copilot

This commit is contained in:
2026-05-28 21:00:39 +08:00
parent a550a2675e
commit 18e24d40f0
242 changed files with 33640 additions and 45 deletions

View File

@@ -18,6 +18,7 @@ step() { echo -e "\n${CYAN}====== $* ======${NC}"; }
# 加载 .env与脚本同目录
# ──────────────────────────────────────────────────────────────
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
GODOT_MCP_VERSION="godot-mcp-pro-v1.14.1" # ← 升级时只改这里
ENV_FILE="$SCRIPT_DIR/.env"
ENV_EXAMPLE="$SCRIPT_DIR/.env.example"
@@ -124,9 +125,9 @@ if [ -n "${http_proxy:-}" ] && command -v npm &>/dev/null; then
fi
# ──────────────────────────────────────────────────────────────
# Step 4: Claude Code CLI
# Step 4: Claude Code CLI + GitHub Copilot CLI
# ──────────────────────────────────────────────────────────────
step "4/6 Claude Code CLI"
step "4/6 Claude Code CLI + GitHub Copilot CLI"
if command -v claude &>/dev/null; then
log "Claude Code 已安装: $(claude --version 2>&1 | head -1)"
@@ -136,6 +137,34 @@ else
log "Claude Code 安装完成: $(claude --version 2>&1 | head -1)"
fi
GH_PATH="$(command -v gh 2>/dev/null || true)"
if [ -n "$GH_PATH" ] && [[ "$GH_PATH" != /mnt/* ]]; then
log "GitHub CLI 已安装: $(gh --version 2>/dev/null | head -1)"
else
log "安装 GitHub CLI..."
sudo mkdir -p -m 755 /etc/apt/keyrings
if [ ! -f /etc/apt/keyrings/githubcli-archive-keyring.gpg ]; then
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
| sudo dd of=/etc/apt/keyrings/githubcli-archive-keyring.gpg status=none
sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
fi
if [ ! -f /etc/apt/sources.list.d/github-cli.list ]; then
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
| sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
fi
sudo apt-get update -qq
sudo apt-get install -y -qq gh
log "GitHub CLI 安装完成: $(gh --version 2>/dev/null | head -1)"
fi
if gh extension list 2>/dev/null | grep -q 'github/gh-copilot'; then
log "GitHub Copilot CLI 扩展已安装"
else
log "安装 GitHub Copilot CLI 扩展..."
gh extension install github/gh-copilot
log "GitHub Copilot CLI 扩展已安装命令入口gh copilot"
fi
mkdir -p ~/.claude
cat > ~/.claude/settings.json << SETTINGS
{"model": "$CLAUDE_MODEL"}
@@ -212,6 +241,58 @@ PYEOF
log "MCP 配置已写入 $MCP_CONFIG_FILE"
# ──────────────────────────────────────────────────────────────
# Step 5b: Godot MCP Pro本地包server/ 目录)
# ──────────────────────────────────────────────────────────────
step "5b/6 Godot MCP Pro"
GODOT_SRC="$SCRIPT_DIR/$GODOT_MCP_VERSION/server"
GODOT_DST="$HOME/.mcp-servers/godot-mcp-pro"
if [ -d "$GODOT_SRC" ]; then
log "安装 Godot MCP Pro: $GODOT_SRC -> $GODOT_DST"
mkdir -p "$HOME/.mcp-servers"
if command -v rsync >/dev/null 2>&1; then
rsync -a --delete --exclude='node_modules' "$GODOT_SRC/" "$GODOT_DST/"
else
mkdir -p "$GODOT_DST"
find "$GODOT_SRC" -mindepth 1 -maxdepth 1 ! -name 'node_modules' \
-exec cp -r {} "$GODOT_DST/" \;
fi
log "执行 node build/setup.js installGodot MCP Pro..."
(cd "$GODOT_DST" && node build/setup.js install)
GODOT_ENTRY="$GODOT_DST/build/index.js"
log "Godot MCP Pro 入口:$GODOT_ENTRY"
# 写入 Claude Code (WSL2) MCP 配置godot-mcp-pro 条目)
python3 - << PYEOF
import json, os
cfg_file = "$MCP_CONFIG_FILE"
try:
with open(cfg_file) as f:
cfg = json.load(f)
except:
cfg = {}
cfg.setdefault("mcpServers", {})
cfg["mcpServers"]["godot-mcp-pro"] = {
"command": "node",
"args": ["$GODOT_ENTRY"]
}
with open(cfg_file, "w") as f:
json.dump(cfg, f, indent=2)
print("Godot MCP Pro config written")
PYEOF
log "Godot MCP Pro MCP 配置已写入 $MCP_CONFIG_FILE"
else
warn "未找到 $GODOT_SRC,跳过 Godot MCP Pro 安装"
warn "请确认 $GODOT_MCP_VERSION/ 目录与 wsl-setup.sh 位于同一目录"
GODOT_ENTRY=""
fi
# ──────────────────────────────────────────────────────────────
# Step 6: Rust 工具链 & Token Killer
# ──────────────────────────────────────────────────────────────
@@ -255,9 +336,12 @@ echo -e "${CYAN}═════════════════════
echo -e " Node.js $(node --version 2>/dev/null || echo 未安装)"
echo -e " npm $(npm --version 2>/dev/null || echo 未安装)"
echo -e " Claude Code $(claude --version 2>/dev/null | head -1 || echo 未安装)"
echo -e " GitHub CLI $(gh --version 2>/dev/null | head -1 || echo 未安装)"
echo -e " Copilot CLI $(gh extension list 2>/dev/null | grep 'github/gh-copilot' || echo 未安装)"
echo -e " Rust $(rustc --version 2>/dev/null || echo 未安装)"
echo -e " rtk $(rtk --version 2>/dev/null || echo 未安装)"
echo -e " MCP Server $SERVER_ENTRY"
echo -e " Godot MCP ${GODOT_ENTRY:-未安装}"
if [ -n "${http_proxy:-}" ]; then
echo -e " Proxy $http_proxy"
fi
@@ -267,6 +351,8 @@ echo -e " 1. Unity Package Manager 安装插件:"
echo -e " ${CYAN}https://github.com/AnkleBreaker-Studio/unity-mcp-plugin.git${NC}"
echo -e " 2. 确认 Unity Bridge 在线: http://127.0.0.1:${BRIDGE_PORT}/api/ping"
echo -e " 3. 重启 AI 客户端Claude Desktop / Cursor / Windsurf"
echo -e " 4. Godot 项目:复制 addons/godot_mcp/ 到项目根目录并在 Plugins 中启用"
echo -e " 插件源: ${CYAN}$SCRIPT_DIR/$GODOT_MCP_VERSION/addons/godot_mcp/${NC}"
echo -e "${CYAN}═══════════════════════════════════════════════════${NC}"
echo ""
log "请重新加载 shell: source ~/.bashrc"