@keeveeg/godot-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +28 -0
- package/dist/config.js.map +1 -0
- package/dist/godot-bridge.d.ts +81 -0
- package/dist/godot-bridge.d.ts.map +1 -0
- package/dist/godot-bridge.js +294 -0
- package/dist/godot-bridge.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +45 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/accessibility.d.ts +7 -0
- package/dist/tools/accessibility.d.ts.map +1 -0
- package/dist/tools/accessibility.js +71 -0
- package/dist/tools/accessibility.js.map +1 -0
- package/dist/tools/addon_management.d.ts +7 -0
- package/dist/tools/addon_management.d.ts.map +1 -0
- package/dist/tools/addon_management.js +64 -0
- package/dist/tools/addon_management.js.map +1 -0
- package/dist/tools/analysis.d.ts +7 -0
- package/dist/tools/analysis.d.ts.map +1 -0
- package/dist/tools/analysis.js +43 -0
- package/dist/tools/analysis.js.map +1 -0
- package/dist/tools/analytics.d.ts +7 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +76 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/animation.d.ts +7 -0
- package/dist/tools/animation.d.ts.map +1 -0
- package/dist/tools/animation.js +142 -0
- package/dist/tools/animation.js.map +1 -0
- package/dist/tools/asset_pipeline.d.ts +7 -0
- package/dist/tools/asset_pipeline.d.ts.map +1 -0
- package/dist/tools/asset_pipeline.js +102 -0
- package/dist/tools/asset_pipeline.js.map +1 -0
- package/dist/tools/asset_scaffolding.d.ts +7 -0
- package/dist/tools/asset_scaffolding.d.ts.map +1 -0
- package/dist/tools/asset_scaffolding.js +113 -0
- package/dist/tools/asset_scaffolding.js.map +1 -0
- package/dist/tools/audio.d.ts +7 -0
- package/dist/tools/audio.d.ts.map +1 -0
- package/dist/tools/audio.js +116 -0
- package/dist/tools/audio.js.map +1 -0
- package/dist/tools/audio_config.d.ts +7 -0
- package/dist/tools/audio_config.d.ts.map +1 -0
- package/dist/tools/audio_config.js +83 -0
- package/dist/tools/audio_config.js.map +1 -0
- package/dist/tools/batch.d.ts +7 -0
- package/dist/tools/batch.d.ts.map +1 -0
- package/dist/tools/batch.js +96 -0
- package/dist/tools/batch.js.map +1 -0
- package/dist/tools/build_config.d.ts +7 -0
- package/dist/tools/build_config.d.ts.map +1 -0
- package/dist/tools/build_config.js +98 -0
- package/dist/tools/build_config.js.map +1 -0
- package/dist/tools/cicd_pipeline.d.ts +7 -0
- package/dist/tools/cicd_pipeline.d.ts.map +1 -0
- package/dist/tools/cicd_pipeline.js +125 -0
- package/dist/tools/cicd_pipeline.js.map +1 -0
- package/dist/tools/cloud_services.d.ts +7 -0
- package/dist/tools/cloud_services.d.ts.map +1 -0
- package/dist/tools/cloud_services.js +97 -0
- package/dist/tools/cloud_services.js.map +1 -0
- package/dist/tools/code_generation.d.ts +7 -0
- package/dist/tools/code_generation.d.ts.map +1 -0
- package/dist/tools/code_generation.js +79 -0
- package/dist/tools/code_generation.js.map +1 -0
- package/dist/tools/code_quality.d.ts +7 -0
- package/dist/tools/code_quality.d.ts.map +1 -0
- package/dist/tools/code_quality.js +98 -0
- package/dist/tools/code_quality.js.map +1 -0
- package/dist/tools/collaboration.d.ts +7 -0
- package/dist/tools/collaboration.d.ts.map +1 -0
- package/dist/tools/collaboration.js +73 -0
- package/dist/tools/collaboration.js.map +1 -0
- package/dist/tools/debug_config.d.ts +7 -0
- package/dist/tools/debug_config.d.ts.map +1 -0
- package/dist/tools/debug_config.js +77 -0
- package/dist/tools/debug_config.js.map +1 -0
- package/dist/tools/debugging.d.ts +7 -0
- package/dist/tools/debugging.d.ts.map +1 -0
- package/dist/tools/debugging.js +90 -0
- package/dist/tools/debugging.js.map +1 -0
- package/dist/tools/documentation_tools.d.ts +7 -0
- package/dist/tools/documentation_tools.d.ts.map +1 -0
- package/dist/tools/documentation_tools.js +89 -0
- package/dist/tools/documentation_tools.js.map +1 -0
- package/dist/tools/editor.d.ts +7 -0
- package/dist/tools/editor.d.ts.map +1 -0
- package/dist/tools/editor.js +97 -0
- package/dist/tools/editor.js.map +1 -0
- package/dist/tools/editor_config.d.ts +7 -0
- package/dist/tools/editor_config.d.ts.map +1 -0
- package/dist/tools/editor_config.js +92 -0
- package/dist/tools/editor_config.js.map +1 -0
- package/dist/tools/export.d.ts +7 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +81 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/game_template.d.ts +7 -0
- package/dist/tools/game_template.d.ts.map +1 -0
- package/dist/tools/game_template.js +112 -0
- package/dist/tools/game_template.js.map +1 -0
- package/dist/tools/gameplay_automation.d.ts +7 -0
- package/dist/tools/gameplay_automation.d.ts.map +1 -0
- package/dist/tools/gameplay_automation.js +109 -0
- package/dist/tools/gameplay_automation.js.map +1 -0
- package/dist/tools/git_integration.d.ts +7 -0
- package/dist/tools/git_integration.d.ts.map +1 -0
- package/dist/tools/git_integration.js +75 -0
- package/dist/tools/git_integration.js.map +1 -0
- package/dist/tools/headless_testing.d.ts +7 -0
- package/dist/tools/headless_testing.d.ts.map +1 -0
- package/dist/tools/headless_testing.js +65 -0
- package/dist/tools/headless_testing.js.map +1 -0
- package/dist/tools/iap_monetization.d.ts +7 -0
- package/dist/tools/iap_monetization.d.ts.map +1 -0
- package/dist/tools/iap_monetization.js +70 -0
- package/dist/tools/iap_monetization.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +93 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/input.d.ts +7 -0
- package/dist/tools/input.d.ts.map +1 -0
- package/dist/tools/input.js +110 -0
- package/dist/tools/input.js.map +1 -0
- package/dist/tools/localization.d.ts +7 -0
- package/dist/tools/localization.d.ts.map +1 -0
- package/dist/tools/localization.js +97 -0
- package/dist/tools/localization.js.map +1 -0
- package/dist/tools/marketing.d.ts +7 -0
- package/dist/tools/marketing.d.ts.map +1 -0
- package/dist/tools/marketing.js +87 -0
- package/dist/tools/marketing.js.map +1 -0
- package/dist/tools/memory_profiling.d.ts +7 -0
- package/dist/tools/memory_profiling.d.ts.map +1 -0
- package/dist/tools/memory_profiling.js +58 -0
- package/dist/tools/memory_profiling.js.map +1 -0
- package/dist/tools/mod_support.d.ts +7 -0
- package/dist/tools/mod_support.d.ts.map +1 -0
- package/dist/tools/mod_support.js +93 -0
- package/dist/tools/mod_support.js.map +1 -0
- package/dist/tools/navigation.d.ts +7 -0
- package/dist/tools/navigation.d.ts.map +1 -0
- package/dist/tools/navigation.js +133 -0
- package/dist/tools/navigation.js.map +1 -0
- package/dist/tools/networking.d.ts +7 -0
- package/dist/tools/networking.d.ts.map +1 -0
- package/dist/tools/networking.js +94 -0
- package/dist/tools/networking.js.map +1 -0
- package/dist/tools/node.d.ts +7 -0
- package/dist/tools/node.d.ts.map +1 -0
- package/dist/tools/node.js +209 -0
- package/dist/tools/node.js.map +1 -0
- package/dist/tools/node_config.d.ts +7 -0
- package/dist/tools/node_config.d.ts.map +1 -0
- package/dist/tools/node_config.js +97 -0
- package/dist/tools/node_config.js.map +1 -0
- package/dist/tools/particles.d.ts +7 -0
- package/dist/tools/particles.d.ts.map +1 -0
- package/dist/tools/particles.js +118 -0
- package/dist/tools/particles.js.map +1 -0
- package/dist/tools/performance_optimization.d.ts +7 -0
- package/dist/tools/performance_optimization.d.ts.map +1 -0
- package/dist/tools/performance_optimization.js +75 -0
- package/dist/tools/performance_optimization.js.map +1 -0
- package/dist/tools/physics.d.ts +7 -0
- package/dist/tools/physics.d.ts.map +1 -0
- package/dist/tools/physics.js +106 -0
- package/dist/tools/physics.js.map +1 -0
- package/dist/tools/physics_config.d.ts +7 -0
- package/dist/tools/physics_config.d.ts.map +1 -0
- package/dist/tools/physics_config.js +95 -0
- package/dist/tools/physics_config.js.map +1 -0
- package/dist/tools/platform_export.d.ts +7 -0
- package/dist/tools/platform_export.d.ts.map +1 -0
- package/dist/tools/platform_export.js +76 -0
- package/dist/tools/platform_export.js.map +1 -0
- package/dist/tools/platform_specific.d.ts +7 -0
- package/dist/tools/platform_specific.d.ts.map +1 -0
- package/dist/tools/platform_specific.js +92 -0
- package/dist/tools/platform_specific.js.map +1 -0
- package/dist/tools/profiling.d.ts +7 -0
- package/dist/tools/profiling.d.ts.map +1 -0
- package/dist/tools/profiling.js +28 -0
- package/dist/tools/profiling.js.map +1 -0
- package/dist/tools/project.d.ts +7 -0
- package/dist/tools/project.d.ts.map +1 -0
- package/dist/tools/project.js +86 -0
- package/dist/tools/project.js.map +1 -0
- package/dist/tools/project_config.d.ts +7 -0
- package/dist/tools/project_config.d.ts.map +1 -0
- package/dist/tools/project_config.js +143 -0
- package/dist/tools/project_config.js.map +1 -0
- package/dist/tools/project_creation.d.ts +7 -0
- package/dist/tools/project_creation.d.ts.map +1 -0
- package/dist/tools/project_creation.js +147 -0
- package/dist/tools/project_creation.js.map +1 -0
- package/dist/tools/rendering_config.d.ts +7 -0
- package/dist/tools/rendering_config.d.ts.map +1 -0
- package/dist/tools/rendering_config.js +110 -0
- package/dist/tools/rendering_config.js.map +1 -0
- package/dist/tools/resource.d.ts +7 -0
- package/dist/tools/resource.d.ts.map +1 -0
- package/dist/tools/resource.js +124 -0
- package/dist/tools/resource.js.map +1 -0
- package/dist/tools/resource_config.d.ts +7 -0
- package/dist/tools/resource_config.d.ts.map +1 -0
- package/dist/tools/resource_config.js +76 -0
- package/dist/tools/resource_config.js.map +1 -0
- package/dist/tools/runtime.d.ts +7 -0
- package/dist/tools/runtime.d.ts.map +1 -0
- package/dist/tools/runtime.js +231 -0
- package/dist/tools/runtime.js.map +1 -0
- package/dist/tools/save_load.d.ts +7 -0
- package/dist/tools/save_load.d.ts.map +1 -0
- package/dist/tools/save_load.js +63 -0
- package/dist/tools/save_load.js.map +1 -0
- package/dist/tools/scene.d.ts +7 -0
- package/dist/tools/scene.d.ts.map +1 -0
- package/dist/tools/scene.js +129 -0
- package/dist/tools/scene.js.map +1 -0
- package/dist/tools/scene3d.d.ts +7 -0
- package/dist/tools/scene3d.d.ts.map +1 -0
- package/dist/tools/scene3d.js +82 -0
- package/dist/tools/scene3d.js.map +1 -0
- package/dist/tools/scene_config.d.ts +7 -0
- package/dist/tools/scene_config.d.ts.map +1 -0
- package/dist/tools/scene_config.js +79 -0
- package/dist/tools/scene_config.js.map +1 -0
- package/dist/tools/scene_scaffolding.d.ts +7 -0
- package/dist/tools/scene_scaffolding.d.ts.map +1 -0
- package/dist/tools/scene_scaffolding.js +110 -0
- package/dist/tools/scene_scaffolding.js.map +1 -0
- package/dist/tools/script.d.ts +7 -0
- package/dist/tools/script.d.ts.map +1 -0
- package/dist/tools/script.js +111 -0
- package/dist/tools/script.js.map +1 -0
- package/dist/tools/script_scaffolding.d.ts +7 -0
- package/dist/tools/script_scaffolding.d.ts.map +1 -0
- package/dist/tools/script_scaffolding.js +115 -0
- package/dist/tools/script_scaffolding.js.map +1 -0
- package/dist/tools/security.d.ts +7 -0
- package/dist/tools/security.d.ts.map +1 -0
- package/dist/tools/security.js +73 -0
- package/dist/tools/security.js.map +1 -0
- package/dist/tools/shader.d.ts +7 -0
- package/dist/tools/shader.d.ts.map +1 -0
- package/dist/tools/shader.js +118 -0
- package/dist/tools/shader.js.map +1 -0
- package/dist/tools/shared-types.d.ts +138 -0
- package/dist/tools/shared-types.d.ts.map +1 -0
- package/dist/tools/shared-types.js +170 -0
- package/dist/tools/shared-types.js.map +1 -0
- package/dist/tools/testing.d.ts +7 -0
- package/dist/tools/testing.d.ts.map +1 -0
- package/dist/tools/testing.js +78 -0
- package/dist/tools/testing.js.map +1 -0
- package/dist/tools/theme.d.ts +7 -0
- package/dist/tools/theme.d.ts.map +1 -0
- package/dist/tools/theme.js +97 -0
- package/dist/tools/theme.js.map +1 -0
- package/dist/tools/tilemap.d.ts +7 -0
- package/dist/tools/tilemap.d.ts.map +1 -0
- package/dist/tools/tilemap.js +89 -0
- package/dist/tools/tilemap.js.map +1 -0
- package/dist/tools/version_control_advanced.d.ts +7 -0
- package/dist/tools/version_control_advanced.d.ts.map +1 -0
- package/dist/tools/version_control_advanced.js +100 -0
- package/dist/tools/version_control_advanced.js.map +1 -0
- package/dist/tools/visual_testing.d.ts +7 -0
- package/dist/tools/visual_testing.d.ts.map +1 -0
- package/dist/tools/visual_testing.js +81 -0
- package/dist/tools/visual_testing.js.map +1 -0
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +37 -0
- package/dist/types.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Save/Load tools - 5 tools for game save system testing
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, OptionalProperties } from './shared-types.js';
|
|
6
|
+
export function registerSaveLoadTools(server, bridge) {
|
|
7
|
+
// 1. save_game_state
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'save_game_state',
|
|
10
|
+
{
|
|
11
|
+
description: 'Save the current game state to a numbered slot with optional metadata',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
slot: z.number().int().min(0).max(99).describe('Save slot number (0-99)'),
|
|
14
|
+
metadata: OptionalProperties.describe('Optional metadata to store with the save (e.g. player name, level, timestamp)'),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
async (args) => callGodot(bridge, 'save_game_state', args),
|
|
18
|
+
);
|
|
19
|
+
// 2. load_game_state
|
|
20
|
+
server.registerTool(
|
|
21
|
+
'load_game_state',
|
|
22
|
+
{
|
|
23
|
+
description: 'Load a game state from a numbered save slot',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
slot: z.number().int().min(0).max(99).describe('Save slot number to load (0-99)'),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
async (args) => callGodot(bridge, 'load_game_state', args),
|
|
29
|
+
);
|
|
30
|
+
// 3. list_save_files
|
|
31
|
+
server.registerTool(
|
|
32
|
+
'list_save_files',
|
|
33
|
+
{
|
|
34
|
+
description: 'List all save files with their metadata',
|
|
35
|
+
inputSchema: {},
|
|
36
|
+
},
|
|
37
|
+
async () => callGodot(bridge, 'list_save_files'),
|
|
38
|
+
);
|
|
39
|
+
// 4. delete_save_file
|
|
40
|
+
server.registerTool(
|
|
41
|
+
'delete_save_file',
|
|
42
|
+
{
|
|
43
|
+
description: 'Delete a save file from a specific slot',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
slot: z.number().int().min(0).max(99).describe('Save slot number to delete (0-99)'),
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
async (args) => callGodot(bridge, 'delete_save_file', args),
|
|
49
|
+
);
|
|
50
|
+
// 5. compare_save_states
|
|
51
|
+
server.registerTool(
|
|
52
|
+
'compare_save_states',
|
|
53
|
+
{
|
|
54
|
+
description: 'Compare two save states and return a diff of their contents',
|
|
55
|
+
inputSchema: {
|
|
56
|
+
slot_a: z.number().int().min(0).max(99).describe('First save slot to compare (0-99)'),
|
|
57
|
+
slot_b: z.number().int().min(0).max(99).describe('Second save slot to compare (0-99)'),
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
async (args) => callGodot(bridge, 'compare_save_states', args),
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=save_load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save_load.js","sourceRoot":"","sources":["../../src/tools/save_load.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAmB;IAC1E,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACzE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CACnC,+EAA+E,CAChF;SACF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAClF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACpF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAA+B,CAAC,CACvF,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACvF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene tools - 11 tools for scene management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerSceneTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/tools/scene.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAuI/E"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene tools - 11 tools for scene management
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScenePath } from './shared-types.js';
|
|
6
|
+
export function registerSceneTools(server, bridge) {
|
|
7
|
+
// 1. get_scene_tree
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_scene_tree',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get the node tree of the specified or currently open scene',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
max_depth: z.number().int().positive().optional().default(15).describe('Maximum tree depth to serialize (default: 15)'),
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
async (args) => callGodot(bridge, 'scene/get_tree', args),
|
|
17
|
+
);
|
|
18
|
+
// 2. get_scene_file_content
|
|
19
|
+
server.registerTool(
|
|
20
|
+
'get_scene_file_content',
|
|
21
|
+
{
|
|
22
|
+
description: 'Read the raw .tscn/.scn file content of a scene',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
path: ScenePath,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
async (args) => callGodot(bridge, 'scene/get_file_content', args),
|
|
28
|
+
);
|
|
29
|
+
// 3. create_scene
|
|
30
|
+
server.registerTool(
|
|
31
|
+
'create_scene',
|
|
32
|
+
{
|
|
33
|
+
description: 'Create a new empty scene with a specified root node type',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
path: ScenePath.describe("Path to save the scene (e.g. 'res://scenes/new.tscn')"),
|
|
36
|
+
root_node_type: z.string().optional().describe("Root node type (e.g. 'Node2D', 'Control')"),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
async (args) => callGodot(bridge, 'scene/create', args),
|
|
40
|
+
);
|
|
41
|
+
// 4. open_scene
|
|
42
|
+
server.registerTool(
|
|
43
|
+
'open_scene',
|
|
44
|
+
{
|
|
45
|
+
description: 'Open a scene file in the editor',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
path: ScenePath.describe('Scene file path to open'),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
async (args) => callGodot(bridge, 'scene/open', args),
|
|
51
|
+
);
|
|
52
|
+
// 5. delete_scene
|
|
53
|
+
server.registerTool(
|
|
54
|
+
'delete_scene',
|
|
55
|
+
{
|
|
56
|
+
description: 'Delete a scene file from the project',
|
|
57
|
+
inputSchema: {
|
|
58
|
+
path: ScenePath.describe('Scene file path to delete'),
|
|
59
|
+
force: z.boolean().optional().describe('Force close and delete if scene is currently open'),
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
async (args) => callGodot(bridge, 'scene/delete', args),
|
|
63
|
+
);
|
|
64
|
+
// 6. add_scene_instance
|
|
65
|
+
server.registerTool(
|
|
66
|
+
'add_scene_instance',
|
|
67
|
+
{
|
|
68
|
+
description: 'Add an instance of a scene as a child of a node in the current scene',
|
|
69
|
+
inputSchema: {
|
|
70
|
+
scene_path: ScenePath.describe('Path to the scene to instantiate'),
|
|
71
|
+
parent_path: z.string().optional().describe('Parent node path, defaults to scene root'),
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
async (args) => callGodot(bridge, 'scene/add_instance', args),
|
|
75
|
+
);
|
|
76
|
+
// 7. play_scene
|
|
77
|
+
server.registerTool(
|
|
78
|
+
'play_scene',
|
|
79
|
+
{
|
|
80
|
+
description: 'Start playing the current or specified scene',
|
|
81
|
+
inputSchema: {
|
|
82
|
+
mode: z.enum(['main', 'current', 'custom']).optional().describe("Play mode: 'main', 'current', or 'custom'"),
|
|
83
|
+
scene_path: z.string().optional().describe("Scene to play when mode is 'custom'"),
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
async (args) => callGodot(bridge, 'scene/play', args),
|
|
87
|
+
);
|
|
88
|
+
// 8. stop_scene
|
|
89
|
+
server.registerTool(
|
|
90
|
+
'stop_scene',
|
|
91
|
+
{
|
|
92
|
+
description: 'Stop the currently playing scene',
|
|
93
|
+
inputSchema: {},
|
|
94
|
+
},
|
|
95
|
+
async () => callGodot(bridge, 'scene/stop'),
|
|
96
|
+
);
|
|
97
|
+
// 9. save_scene
|
|
98
|
+
server.registerTool(
|
|
99
|
+
'save_scene',
|
|
100
|
+
{
|
|
101
|
+
description: 'Save the current scene or save it to a new path',
|
|
102
|
+
inputSchema: {
|
|
103
|
+
path: z.string().optional().describe('Path of the scene to save (defaults to current)'),
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
async (args) => callGodot(bridge, 'scene/save', args),
|
|
107
|
+
);
|
|
108
|
+
// 10. get_loaded_scenes
|
|
109
|
+
server.registerTool(
|
|
110
|
+
'get_loaded_scenes',
|
|
111
|
+
{
|
|
112
|
+
description: 'Get a list of all currently loaded scenes in the editor',
|
|
113
|
+
inputSchema: {},
|
|
114
|
+
},
|
|
115
|
+
async () => callGodot(bridge, 'scene/get_loaded'),
|
|
116
|
+
);
|
|
117
|
+
// 11. set_main_scene
|
|
118
|
+
server.registerTool(
|
|
119
|
+
'set_main_scene',
|
|
120
|
+
{
|
|
121
|
+
description: "Set the project's main scene",
|
|
122
|
+
inputSchema: {
|
|
123
|
+
path: ScenePath.describe('Scene file path to set as main scene'),
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
async (args) => callGodot(bridge, 'scene/set_main', args),
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=scene.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/tools/scene.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAmB;IACvE,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SACxH;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,SAAS;SAChB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAA+B,CAAC,CAC7F,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE;YACX,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACjF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SAC5F;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,IAA+B,CAAC,CACnF,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE;YACX,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SACpD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAA+B,CAAC,CACjF,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,sCAAsC;QACnD,WAAW,EAAE;YACX,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACrD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;SAC5F;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,IAA+B,CAAC,CACnF,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE;YACX,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SACxF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;YACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SAClF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAA+B,CAAC,CACjF,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAC5C,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;SACxF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAA+B,CAAC,CACjF,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAClD,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE;YACX,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACjE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene3D tools - 6 tools for 3D scene manipulation
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerScene3dTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=scene3d.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene3d.d.ts","sourceRoot":"","sources":["../../src/tools/scene3d.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA4FjF"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene3D tools - 6 tools for 3D scene manipulation
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, NodePath, ParentPath, Properties, OptionalProperties } from './shared-types.js';
|
|
6
|
+
export function registerScene3dTools(server, bridge) {
|
|
7
|
+
// 1. add_mesh_instance
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'add_mesh_instance',
|
|
10
|
+
{
|
|
11
|
+
description: 'Add a MeshInstance3D with a primitive mesh type',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
parent: ParentPath,
|
|
14
|
+
mesh_type: z.enum(['cube', 'sphere', 'cylinder', 'capsule', 'plane', 'prism', 'torus']).describe('Primitive mesh type'),
|
|
15
|
+
properties: OptionalProperties.describe('Mesh properties (size, material_path, etc.)'),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
async (args) => callGodot(bridge, 'scene3d/add_mesh', args),
|
|
19
|
+
);
|
|
20
|
+
// 2. setup_camera_3d
|
|
21
|
+
server.registerTool(
|
|
22
|
+
'setup_camera_3d',
|
|
23
|
+
{
|
|
24
|
+
description: 'Add and configure a Camera3D node',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
path: NodePath.describe('Camera node path'),
|
|
27
|
+
properties: Properties.describe('Camera properties (fov, near, far, position, look_at, make_current, etc.)'),
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
async (args) => callGodot(bridge, 'scene3d/setup_camera', args),
|
|
31
|
+
);
|
|
32
|
+
// 3. setup_lighting
|
|
33
|
+
server.registerTool(
|
|
34
|
+
'setup_lighting',
|
|
35
|
+
{
|
|
36
|
+
description: 'Add a light node (DirectionalLight3D, OmniLight3D, SpotLight3D)',
|
|
37
|
+
inputSchema: {
|
|
38
|
+
parent: ParentPath,
|
|
39
|
+
type: z.enum(['omni', 'spot', 'directional']).describe('Light type'),
|
|
40
|
+
properties: OptionalProperties.describe('Light properties (color, energy, position, shadow_enabled, etc.)'),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
async (args) => callGodot(bridge, 'scene3d/setup_lighting', args),
|
|
44
|
+
);
|
|
45
|
+
// 4. setup_environment
|
|
46
|
+
server.registerTool(
|
|
47
|
+
'setup_environment',
|
|
48
|
+
{
|
|
49
|
+
description: 'Configure the WorldEnvironment for the 3D scene',
|
|
50
|
+
inputSchema: {
|
|
51
|
+
path: NodePath.describe('WorldEnvironment node path'),
|
|
52
|
+
properties: Properties.describe('Environment properties (background_mode, background_color, ambient_light_color, fog_enabled, glow_enabled, etc.)'),
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
async (args) => callGodot(bridge, 'scene3d/setup_environment', args),
|
|
56
|
+
);
|
|
57
|
+
// 5. add_gridmap
|
|
58
|
+
server.registerTool(
|
|
59
|
+
'add_gridmap',
|
|
60
|
+
{
|
|
61
|
+
description: 'Add a GridMap node for 3D tile-based level design',
|
|
62
|
+
inputSchema: {
|
|
63
|
+
parent: ParentPath,
|
|
64
|
+
properties: OptionalProperties.describe('GridMap properties (mesh_library_path, cell_size, etc.)'),
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
async (args) => callGodot(bridge, 'scene3d/add_gridmap', args),
|
|
68
|
+
);
|
|
69
|
+
// 6. set_material_3d
|
|
70
|
+
server.registerTool(
|
|
71
|
+
'set_material_3d',
|
|
72
|
+
{
|
|
73
|
+
description: 'Create and apply a StandardMaterial3D or ShaderMaterial to a mesh',
|
|
74
|
+
inputSchema: {
|
|
75
|
+
path: NodePath.describe('MeshInstance3D node path'),
|
|
76
|
+
properties: Properties.describe('Material properties (albedo_color, metallic, roughness, shader_path, etc.)'),
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
async (args) => callGodot(bridge, 'scene3d/set_material', args),
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=scene3d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene3d.js","sourceRoot":"","sources":["../../src/tools/scene3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene configuration tools - 6 tools for scene metadata and properties
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerSceneConfigTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=scene_config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene_config.d.ts","sourceRoot":"","sources":["../../src/tools/scene_config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA+ErF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene configuration tools - 6 tools for scene metadata and properties
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, NodePath, OptionalScenePath } from './shared-types.js';
|
|
6
|
+
export function registerSceneConfigTools(server, bridge) {
|
|
7
|
+
// 1. get_scene_inheritance
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_scene_inheritance',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get the scene inheritance chain (instantiated scenes, inherited scenes)',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
scene_path: OptionalScenePath.describe('Scene file path (empty for current scene)'),
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
async (args) => callGodot(bridge, 'scene_config/get_inheritance', args),
|
|
17
|
+
);
|
|
18
|
+
// 2. set_scene_unique_name
|
|
19
|
+
server.registerTool(
|
|
20
|
+
'set_scene_unique_name',
|
|
21
|
+
{
|
|
22
|
+
description: 'Toggle the unique name flag on a node (accessible as %NodeName)',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
node_path: NodePath.describe('Node path within the scene'),
|
|
25
|
+
unique: z.boolean().optional().default(true).describe('Enable (true) or disable (false) unique name (default: true)'),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
async (args) => callGodot(bridge, 'scene_config/set_unique_name', args),
|
|
29
|
+
);
|
|
30
|
+
// 3. get_scene_groups
|
|
31
|
+
server.registerTool(
|
|
32
|
+
'get_scene_groups',
|
|
33
|
+
{
|
|
34
|
+
description: 'Get all groups used in a scene and which nodes belong to each',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
scene_path: OptionalScenePath.describe('Scene file path (empty for current scene)'),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
async (args) => callGodot(bridge, 'scene_config/get_groups', args),
|
|
40
|
+
);
|
|
41
|
+
// 4. set_scene_group
|
|
42
|
+
server.registerTool(
|
|
43
|
+
'set_scene_group',
|
|
44
|
+
{
|
|
45
|
+
description: 'Add or remove a node from a group',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
node_path: NodePath.describe('Node path within the current scene'),
|
|
48
|
+
group: z.string().describe('Group name'),
|
|
49
|
+
add: z.boolean().optional().default(true).describe('true to add to group, false to remove (default: true)'),
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
async (args) => callGodot(bridge, 'scene_config/set_group', args),
|
|
53
|
+
);
|
|
54
|
+
// 5. get_scene_meta
|
|
55
|
+
server.registerTool(
|
|
56
|
+
'get_scene_meta',
|
|
57
|
+
{
|
|
58
|
+
description: "Get metadata stored on a scene's root node",
|
|
59
|
+
inputSchema: {
|
|
60
|
+
scene_path: OptionalScenePath.describe('Scene file path (empty for current scene)'),
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
async (args) => callGodot(bridge, 'scene_config/get_meta', args),
|
|
64
|
+
);
|
|
65
|
+
// 6. set_scene_meta
|
|
66
|
+
server.registerTool(
|
|
67
|
+
'set_scene_meta',
|
|
68
|
+
{
|
|
69
|
+
description: "Set metadata on the current scene's root node",
|
|
70
|
+
inputSchema: {
|
|
71
|
+
scene_path: z.string().optional().describe('Omit or pass empty string — only the current scene is supported'),
|
|
72
|
+
key: z.string().describe('Metadata key'),
|
|
73
|
+
value: z.unknown().describe('Metadata value (string, number, bool, array, or dict)'),
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
async (args) => callGodot(bridge, 'scene_config/set_meta', args),
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=scene_config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene_config.js","sourceRoot":"","sources":["../../src/tools/scene_config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene scaffolding tools - 8 tools for scene template creation
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerSceneScaffoldingTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=scene_scaffolding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene_scaffolding.d.ts","sourceRoot":"","sources":["../../src/tools/scene_scaffolding.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA8G1F"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene scaffolding tools - 8 tools for scene template creation
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, FilePath, Name, Dimension } from './shared-types.js';
|
|
6
|
+
export function registerSceneScaffoldingTools(server, bridge) {
|
|
7
|
+
// 1. create_main_scene
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'create_main_scene',
|
|
10
|
+
{
|
|
11
|
+
description: 'Create a main scene for the game with appropriate root node and basic setup',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
14
|
+
type: z.enum(['2d', '3d', 'ui']).describe('Scene dimension type'),
|
|
15
|
+
name: Name.optional().describe("Scene name (defaults to 'Main')"),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_main_scene', args),
|
|
19
|
+
);
|
|
20
|
+
// 2. create_player_scene
|
|
21
|
+
server.registerTool(
|
|
22
|
+
'create_player_scene',
|
|
23
|
+
{
|
|
24
|
+
description: 'Create a player character scene with physics body, collision, and controller script',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
27
|
+
type: Dimension,
|
|
28
|
+
controller: z.enum(['platformer', 'top_down', 'fps', 'custom']).optional().describe('Movement controller style'),
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_player_scene', args),
|
|
32
|
+
);
|
|
33
|
+
// 3. create_enemy_scene
|
|
34
|
+
server.registerTool(
|
|
35
|
+
'create_enemy_scene',
|
|
36
|
+
{
|
|
37
|
+
description: 'Create an enemy scene with physics body, collision, and basic AI behavior',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
40
|
+
type: Dimension,
|
|
41
|
+
ai_type: z.enum(['patrol', 'chase', 'stationary']).optional().describe('Enemy AI behavior type'),
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_enemy_scene', args),
|
|
45
|
+
);
|
|
46
|
+
// 4. create_level_scene
|
|
47
|
+
server.registerTool(
|
|
48
|
+
'create_level_scene',
|
|
49
|
+
{
|
|
50
|
+
description: 'Create a level/zone scene with optional template layout',
|
|
51
|
+
inputSchema: {
|
|
52
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
53
|
+
type: Dimension,
|
|
54
|
+
template: z.enum(['empty', 'platformer', 'dungeon', 'open_world']).optional().describe('Level layout template'),
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_level_scene', args),
|
|
58
|
+
);
|
|
59
|
+
// 5. create_ui_scene
|
|
60
|
+
server.registerTool(
|
|
61
|
+
'create_ui_scene',
|
|
62
|
+
{
|
|
63
|
+
description: 'Create a UI scene from a predefined template (main menu, HUD, pause, inventory, dialog)',
|
|
64
|
+
inputSchema: {
|
|
65
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
66
|
+
template: z.enum(['main_menu', 'hud', 'pause_menu', 'inventory', 'dialog']).optional().describe('UI template type'),
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_ui_scene', args),
|
|
70
|
+
);
|
|
71
|
+
// 6. create_camera_scene
|
|
72
|
+
server.registerTool(
|
|
73
|
+
'create_camera_scene',
|
|
74
|
+
{
|
|
75
|
+
description: 'Create a reusable camera scene with configurable follow and zoom behavior',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
78
|
+
type: Dimension.describe('Camera dimension type'),
|
|
79
|
+
follow: z.boolean().optional().describe('Enable smooth follow on a target'),
|
|
80
|
+
zoom: z.boolean().optional().describe('Enable zoom controls'),
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_camera_scene', args),
|
|
84
|
+
);
|
|
85
|
+
// 7. create_hud_scene
|
|
86
|
+
server.registerTool(
|
|
87
|
+
'create_hud_scene',
|
|
88
|
+
{
|
|
89
|
+
description: 'Create a HUD scene with specified UI elements (health bar, score, timer, minimap, inventory)',
|
|
90
|
+
inputSchema: {
|
|
91
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
92
|
+
elements: z.array(z.enum(['health', 'score', 'timer', 'minimap', 'inventory'])).describe('HUD elements to include'),
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_hud_scene', args),
|
|
96
|
+
);
|
|
97
|
+
// 8. create_dialog_scene
|
|
98
|
+
server.registerTool(
|
|
99
|
+
'create_dialog_scene',
|
|
100
|
+
{
|
|
101
|
+
description: 'Create a dialog/conversation scene with text display and choice buttons',
|
|
102
|
+
inputSchema: {
|
|
103
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
104
|
+
style: z.enum(['visual_novel', 'rpg', 'modern']).optional().describe('Dialog visual style'),
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
async (args) => callGodot(bridge, 'scene_scaffolding/create_dialog_scene', args),
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=scene_scaffolding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene_scaffolding.js","sourceRoot":"","sources":["../../src/tools/scene_scaffolding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script tools - 9 tools for script management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerScriptTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/tools/script.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgHhF"}
|