37 lines
1.7 KiB
GDScript
37 lines
1.7 KiB
GDScript
@tool
|
|
extends McpClient
|
|
|
|
|
|
func _init() -> void:
|
|
id = "zoo_code"
|
|
display_name = "Zoo Code"
|
|
config_type = "json"
|
|
path_template = {
|
|
"darwin": "~/Library/Application Support/Code/User/globalStorage/zoocodeorganization.zoo-code/settings/mcp_settings.json",
|
|
"windows": "$APPDATA/Code/User/globalStorage/zoocodeorganization.zoo-code/settings/mcp_settings.json",
|
|
"linux": "$XDG_CONFIG_HOME/Code/User/globalStorage/zoocodeorganization.zoo-code/settings/mcp_settings.json",
|
|
}
|
|
server_key_path = PackedStringArray(["mcpServers"])
|
|
## Local validation against the installed extension shows Zoo stores MCP
|
|
## entries in `settings/mcp_settings.json` under `mcpServers`, matching Roo's
|
|
## shape. Its changelog also references Streamable HTTP support, so pin the
|
|
## transport explicitly to avoid any typeless entry falling back to SSE.
|
|
entry_extra_fields = {"type": "streamable-http"}
|
|
## Preserve user-controlled state across reconfigure, parallel to Roo/Kilo.
|
|
entry_initial_fields = {"disabled": false, "alwaysAllow": []}
|
|
## Attach migration (#838). Zoo's stdio zod schema is Roo's: flat
|
|
## command/args/env(+cwd), `type: z.enum(["stdio"]).optional()`, and
|
|
## url/headers explicitly forbidden on stdio entries (McpHub.ts) — so both
|
|
## are legacy keys and the documented type pin repins "streamable-http".
|
|
command_shape = McpClient.CommandShape.FLAT
|
|
command_transport_key = "type"
|
|
command_transport_value = "stdio"
|
|
command_legacy_keys = PackedStringArray(["url", "headers"])
|
|
command_initial_fields = {"disabled": false, "alwaysAllow": []}
|
|
command_user_fields = PackedStringArray([
|
|
"disabled", "alwaysAllow", "timeout", "watchPaths", "disabledTools",
|
|
"env", "cwd",
|
|
])
|
|
command_timeout_fields = PackedStringArray(["timeout"])
|
|
command_supports_url_fallback = true
|