Skip to content

Commit 1eca131

Browse files
dsarnoclaude
andauthored
Add Claude Desktop configurator and redesign dock UI (#18)
* Add Claude Desktop configurator and redesign dock UI - Add Claude Desktop client (npx mcp-remote bridge for stdio-only Desktop) - Redesign dock: single client dropdown instead of per-client rows - Add dev-mode toggle (persisted in EditorSettings) to hide debug controls - Show manual-command panel with Copy button when auto-configure fails - Resolve claude CLI via login-shell fallback for GUI-launched Godot - Add Dock button for floating panels (emits close_requested to redock) - Remove redundant section headers, bump remaining header font sizes - Add script/open-godot-here for worktree-aware Godot launches - Document manual config commands for all 4 clients in README Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add dock screenshot to README Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Simplify: dedupe, cache, and remove hot-path waste - Extract _read_json_config/_write_json_config shared by Claude Desktop + Antigravity - Cache _find_claude_cli() to avoid subprocess spawns on dropdown change - Replace _pretty_client_name with String.capitalize() - Event-driven redock detection (NOTIFICATION_PARENTED) instead of per-frame polling - Guard _update_log() when log section is hidden - Extract COLOR_MUTED/COLOR_HEADER constants for magic color literals - Remove _refresh_setup_status side effect from _apply_dev_mode_visibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix cyclic reference: use static var for Color constants GDScript const with Color() on a class_name class triggers cyclic reference errors. The replace_all also accidentally replaced the values in the declarations themselves. Fix both issues. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Use SHELL for login-shell CLI resolution instead of hardcoded bash macOS defaults to zsh — PATH entries in .zshrc would not be found via /bin/bash. Use SHELL env var with /bin/bash as fallback. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 35c6986 commit 1eca131

7 files changed

Lines changed: 572 additions & 132 deletions

File tree

CLAUDE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ Test suites extend `McpTestSuite` (assertion methods: `assert_true`, `assert_eq`
8585
3. Plugin starts the server automatically; logs should show `Session connected`
8686
4. Use `/mcp` in Claude Code to connect
8787

88+
**Worktree gotcha**: each working tree (main checkout or git worktree) has its own
89+
`test_project/addons/godot_ai` symlink pointing to *that tree's* `plugin/`. If you
90+
edit a worktree's plugin but Godot is running on the main repo's `test_project/`,
91+
your changes won't appear there. Use `script/open-godot-here` to launch Godot on the
92+
current working tree's `test_project/`.
93+
8894
## Pre-commit smoke test
8995

9096
**Always do this before every commit.** Python mocks don't catch GDScript bugs, editor API regressions, or undo/redo issues.

README.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,58 @@ In Godot: **Project > Project Settings > Plugins** — enable **Godot AI**.
3838

3939
The plugin will automatically start the MCP server, connect over WebSocket, and show status in the **Godot AI** dock.
4040

41+
<p align="center"><img src="docs/images/dock.png" alt="Godot AI dock" width="320"></p>
42+
4143
### 3. Connect your MCP client
4244

43-
Click a **Configure** button in the dock, or point any HTTP MCP client at:
45+
Pick a client in the dock's **Clients** dropdown and press **Configure**. The
46+
plugin writes the right config for:
4447

45-
```text
46-
http://127.0.0.1:8000/mcp
48+
- **Claude Code** (CLI)
49+
- **Claude Desktop** (via `npx mcp-remote` bridge)
50+
- **Codex**
51+
- **Antigravity**
52+
53+
If auto-configure can't find the client's CLI (GUI-launched editors have
54+
limited PATH), the dock shows a **Run this manually** panel with a copyable
55+
command — or use the commands below directly.
56+
57+
<details>
58+
<summary><strong>Manual configuration</strong></summary>
59+
60+
Server URL: `http://127.0.0.1:8000/mcp`
61+
62+
**Claude Code** (CLI):
63+
```bash
64+
claude mcp add --scope user --transport http godot-ai http://127.0.0.1:8000/mcp
65+
```
66+
67+
**Claude Desktop** — edit `~/Library/Application Support/Claude/claude_desktop_config.json`
68+
(macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows) and add under
69+
`mcpServers`:
70+
```json
71+
"godot-ai": {
72+
"command": "npx",
73+
"args": ["-y", "mcp-remote", "http://127.0.0.1:8000/mcp"]
74+
}
75+
```
76+
Requires Node.js (`npx`). Restart Claude Desktop after editing.
77+
78+
**Codex** — edit `~/.codex/config.toml` and add:
79+
```toml
80+
[mcp_servers."godot-ai"]
81+
url = "http://127.0.0.1:8000/mcp"
82+
enabled = true
83+
```
84+
85+
**Antigravity** — edit `~/.gemini/antigravity/mcp_config.json` and add under
86+
`mcpServers`:
87+
```json
88+
"godot-ai": { "serverUrl": "http://127.0.0.1:8000/mcp", "disabled": false }
4789
```
4890

91+
</details>
92+
4993
### 4. Try it
5094

5195
- *"Show me the current scene hierarchy."*

docs/images/dock.png

12.3 KB
Loading

0 commit comments

Comments
 (0)