Skip to content

Unity MCP — Desktop Parity #5

Unity MCP — Desktop Parity

Unity MCP — Desktop Parity #5

name: Unity MCP — Desktop Parity
on:
workflow_dispatch: {}
jobs:
desktop-parity:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Install Python + uv
uses: astral-sh/setup-uv@v4
with:
python-version: '3.11'
- name: Detect Anthropic key
id: detect_key
run: |
if [ -n "${{ secrets.ANTHROPIC_API_KEY }}" ]; then echo "has_key=true" >> "$GITHUB_OUTPUT"; else echo "has_key=false" >> "$GITHUB_OUTPUT"; fi
- name: Run Claude (desktop-parity)
uses: anthropics/claude-code-base-action@beta
if: steps.detect_key.outputs.has_key == 'true'
with:
# Use the same model Desktop uses today in your logs
model: claude-3-7-sonnet-20250219
# Let it actually think & iterate like Desktop
max_turns: 10
timeout_minutes: 15
allowed_tools: mcp__unity__find_in_file,mcp__unity__list_resources,mcp__unity__read_resource
disallowed_tools: TodoWrite,PlannerTool,SubagentSpawn,WebSearch,Bash,Read,Write,Edit,MultiEdit,NotebookEdit,KillBash
settings: |
{
"permissions": {
"allow": ["mcp__unity__*"]
},
"permissions.defaultMode": "acceptEdits"
}
# Keep the exact MCP wiring you already use
mcp_config: |
{
"mcpServers": {
"unity": {
"command": "uv",
"args": ["run","--directory","UnityMcpBridge/UnityMcpServer~/src","python","server.py"],
"transport": { "type": "stdio" },
"env": { "PYTHONUNBUFFERED": "1", "MCP_LOG_LEVEL": "debug" }
}
}
}
prompt_file: .claude/prompts/nl-unity-suite.md
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}