36 lines
1.5 KiB
GDScript
36 lines
1.5 KiB
GDScript
@tool
|
|
extends RefCounted
|
|
## meta.* transport-level commands — server-side limit overrides.
|
|
|
|
|
|
static func register(registry: MCPToolkitCommandRegistry) -> void:
|
|
registry.add("meta.set_limits", func(parameters: Dictionary) -> Dictionary:
|
|
return _cmd_set_limits(parameters)
|
|
, MCPToolkitCommandOptions.new().mark_scene_independent())
|
|
|
|
|
|
## The sanctioned writer for `mcp_toolkit/limits/*` — `project.set_setting`
|
|
## deliberately refuses that prefix, routing limit changes here so the floor
|
|
## clamps are always applied (script/save read caps >= 64 KB, ws_buffer >= 256 KB).
|
|
static func _cmd_set_limits(parameters: Dictionary) -> Dictionary:
|
|
var script_cap = parameters.get("script_read_cap_kb", null)
|
|
var save_cap = parameters.get("save_read_cap_kb", null)
|
|
var ws_buf = parameters.get("ws_buffer_kb", null)
|
|
if script_cap != null:
|
|
ProjectSettings.set_setting("mcp_toolkit/limits/script_read_cap_kb",
|
|
maxi(int(script_cap), 64))
|
|
if save_cap != null:
|
|
ProjectSettings.set_setting("mcp_toolkit/limits/save_read_cap_kb",
|
|
maxi(int(save_cap), 64))
|
|
if ws_buf != null:
|
|
ProjectSettings.set_setting("mcp_toolkit/limits/ws_buffer_kb",
|
|
maxi(int(ws_buf), 256))
|
|
return MCPToolkitSuccess.ok({
|
|
"script_read_cap_kb": int(ProjectSettings.get_setting(
|
|
"mcp_toolkit/limits/script_read_cap_kb", 256)),
|
|
"save_read_cap_kb": int(ProjectSettings.get_setting(
|
|
"mcp_toolkit/limits/save_read_cap_kb", 256)),
|
|
"ws_buffer_kb": int(ProjectSettings.get_setting(
|
|
"mcp_toolkit/limits/ws_buffer_kb", 1024)),
|
|
})
|