@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,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debugging tools - 8 tools for game debugging
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerDebuggingTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=debugging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugging.d.ts","sourceRoot":"","sources":["../../src/tools/debugging.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,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAmGnF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debugging tools - 8 tools for game debugging
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScriptPath, GDScriptCode } from './shared-types.js';
|
|
6
|
+
export function registerDebuggingTools(server, bridge) {
|
|
7
|
+
// 1. set_breakpoint
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'set_breakpoint',
|
|
10
|
+
{
|
|
11
|
+
description: 'Set a breakpoint in a GDScript file at a specific line, optionally with a condition',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
script_path: ScriptPath,
|
|
14
|
+
line: z.number().int().min(1).describe('Line number to set breakpoint on'),
|
|
15
|
+
condition: z.string().optional().describe('Optional condition expression - breakpoint only triggers when true'),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
async (args) => callGodot(bridge, 'set_breakpoint', args),
|
|
19
|
+
);
|
|
20
|
+
// 2. remove_breakpoint
|
|
21
|
+
server.registerTool(
|
|
22
|
+
'remove_breakpoint',
|
|
23
|
+
{
|
|
24
|
+
description: 'Remove a breakpoint from a GDScript file at a specific line',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
script_path: ScriptPath,
|
|
27
|
+
line: z.number().int().min(1).describe('Line number of the breakpoint to remove'),
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
async (args) => callGodot(bridge, 'remove_breakpoint', args),
|
|
31
|
+
);
|
|
32
|
+
// 3. list_breakpoints
|
|
33
|
+
server.registerTool(
|
|
34
|
+
'list_breakpoints',
|
|
35
|
+
{
|
|
36
|
+
description: 'List all active breakpoints across all scripts',
|
|
37
|
+
inputSchema: {},
|
|
38
|
+
},
|
|
39
|
+
async () => callGodot(bridge, 'list_breakpoints'),
|
|
40
|
+
);
|
|
41
|
+
// 4. get_call_stack
|
|
42
|
+
server.registerTool(
|
|
43
|
+
'get_call_stack',
|
|
44
|
+
{
|
|
45
|
+
description: 'Get the current call stack with local variables when the game is paused at a breakpoint',
|
|
46
|
+
inputSchema: {},
|
|
47
|
+
},
|
|
48
|
+
async () => callGodot(bridge, 'get_call_stack'),
|
|
49
|
+
);
|
|
50
|
+
// 5. evaluate_expression
|
|
51
|
+
server.registerTool(
|
|
52
|
+
'evaluate_expression',
|
|
53
|
+
{
|
|
54
|
+
description: 'Evaluate a GDScript expression in the editor or running game context',
|
|
55
|
+
inputSchema: {
|
|
56
|
+
expression: GDScriptCode.describe('GDScript expression to evaluate'),
|
|
57
|
+
context: z.enum(['editor', 'game']).optional().default('editor').describe('Context to evaluate in (default: editor)'),
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
async (args) => callGodot(bridge, 'evaluate_expression', args),
|
|
61
|
+
);
|
|
62
|
+
// 6. step_over
|
|
63
|
+
server.registerTool(
|
|
64
|
+
'step_over',
|
|
65
|
+
{
|
|
66
|
+
description: 'Step over the current line when paused at a breakpoint',
|
|
67
|
+
inputSchema: {},
|
|
68
|
+
},
|
|
69
|
+
async () => callGodot(bridge, 'step_over'),
|
|
70
|
+
);
|
|
71
|
+
// 7. step_into
|
|
72
|
+
server.registerTool(
|
|
73
|
+
'step_into',
|
|
74
|
+
{
|
|
75
|
+
description: 'Step into the current function call when paused at a breakpoint',
|
|
76
|
+
inputSchema: {},
|
|
77
|
+
},
|
|
78
|
+
async () => callGodot(bridge, 'step_into'),
|
|
79
|
+
);
|
|
80
|
+
// 8. continue_execution
|
|
81
|
+
server.registerTool(
|
|
82
|
+
'continue_execution',
|
|
83
|
+
{
|
|
84
|
+
description: 'Continue execution when paused at a breakpoint',
|
|
85
|
+
inputSchema: {},
|
|
86
|
+
},
|
|
87
|
+
async () => callGodot(bridge, 'continue_execution'),
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=debugging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugging.js","sourceRoot":"","sources":["../../src/tools/debugging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documentation tools - 6 tools for project documentation generation
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerDocumentationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=documentation_tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation_tools.d.ts","sourceRoot":"","sources":["../../src/tools/documentation_tools.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,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAkFvF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documentation tools - 6 tools for project documentation generation
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, FilePath, ScenePath } from './shared-types.js';
|
|
6
|
+
export function registerDocumentationTools(server, bridge) {
|
|
7
|
+
// 1. generate_project_documentation
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'generate_project_documentation',
|
|
10
|
+
{
|
|
11
|
+
description: 'Generate comprehensive project documentation from project structure and scripts',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
14
|
+
format: z.enum(['markdown', 'html', 'pdf']).optional().describe('Output format'),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
async (args) => callGodot(bridge, 'documentation/generate_project_docs', args),
|
|
18
|
+
);
|
|
19
|
+
// 2. generate_api_documentation
|
|
20
|
+
server.registerTool(
|
|
21
|
+
'generate_api_documentation',
|
|
22
|
+
{
|
|
23
|
+
description: 'Generate API reference documentation from all GDScript files in the project',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
26
|
+
include_private: z.boolean().optional().describe('Include private methods and variables'),
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
async (args) => callGodot(bridge, 'documentation/generate_api_docs', args),
|
|
30
|
+
);
|
|
31
|
+
// 3. generate_scene_diagram
|
|
32
|
+
server.registerTool(
|
|
33
|
+
'generate_scene_diagram',
|
|
34
|
+
{
|
|
35
|
+
description: "Generate a text-based diagram of a scene's node hierarchy and signal connections",
|
|
36
|
+
inputSchema: {
|
|
37
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
38
|
+
scene_path: ScenePath,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
async (args) => callGodot(bridge, 'documentation/generate_scene_diagram', args),
|
|
42
|
+
);
|
|
43
|
+
// 4. generate_class_diagram
|
|
44
|
+
server.registerTool(
|
|
45
|
+
'generate_class_diagram',
|
|
46
|
+
{
|
|
47
|
+
description: 'Generate a class diagram showing inheritance and composition relationships',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
50
|
+
classes: z.array(z.string()).optional().describe('Specific classes to include (defaults to all)'),
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
async (args) => callGodot(bridge, 'documentation/generate_class_diagram', args),
|
|
54
|
+
);
|
|
55
|
+
// 5. create_changelog
|
|
56
|
+
server.registerTool(
|
|
57
|
+
'create_changelog',
|
|
58
|
+
{
|
|
59
|
+
description: 'Create or update a CHANGELOG.md file with version history entries',
|
|
60
|
+
inputSchema: {
|
|
61
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
62
|
+
entries: z
|
|
63
|
+
.array(
|
|
64
|
+
z.object({
|
|
65
|
+
version: z.string().describe("Version number (e.g. '1.0.0')"),
|
|
66
|
+
date: z.string().describe('Release date (YYYY-MM-DD)'),
|
|
67
|
+
changes: z.array(z.string()).describe('List of changes'),
|
|
68
|
+
}),
|
|
69
|
+
)
|
|
70
|
+
.optional()
|
|
71
|
+
.describe('Changelog entries to add'),
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
async (args) => callGodot(bridge, 'documentation/create_changelog', args),
|
|
75
|
+
);
|
|
76
|
+
// 6. generate_user_manual
|
|
77
|
+
server.registerTool(
|
|
78
|
+
'generate_user_manual',
|
|
79
|
+
{
|
|
80
|
+
description: 'Generate a user manual with controls, gameplay, and technical sections',
|
|
81
|
+
inputSchema: {
|
|
82
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
83
|
+
sections: z.array(z.string()).optional().describe('Specific sections to include'),
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
async (args) => callGodot(bridge, 'documentation/generate_user_manual', args),
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=documentation_tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation_tools.js","sourceRoot":"","sources":["../../src/tools/documentation_tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor tools — 9 tools for editor interaction
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerEditorTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/tools/editor.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,CAmGhF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor tools — 9 tools for editor interaction
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, NodePath, GDScriptCode } from './shared-types.js';
|
|
6
|
+
export function registerEditorTools(server, bridge) {
|
|
7
|
+
// 1. get_editor_errors — {} -> errors with stack traces
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_editor_errors',
|
|
10
|
+
{
|
|
11
|
+
description: 'Validate all GDScripts in the current scene tree and return compilation errors',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'editor/get_errors'),
|
|
15
|
+
);
|
|
16
|
+
// 2. get_editor_screenshot — {path?: string} -> base64 image
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'get_editor_screenshot',
|
|
19
|
+
{
|
|
20
|
+
description: 'Take a screenshot of the Godot editor window',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
path: z.string().optional().describe('Custom save path for the screenshot'),
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
async (args) => callGodot(bridge, 'editor/get_screenshot', args),
|
|
26
|
+
);
|
|
27
|
+
// 3. get_game_screenshot — {path?: string} -> base64 image
|
|
28
|
+
server.registerTool(
|
|
29
|
+
'get_game_screenshot',
|
|
30
|
+
{
|
|
31
|
+
description: 'Take a screenshot of the running game viewport',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
path: z.string().optional().describe('Custom save path for the screenshot'),
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
async (args) => callGodot(bridge, 'editor/get_game_screenshot', args),
|
|
37
|
+
);
|
|
38
|
+
// 4. execute_editor_script — {code: string} -> result
|
|
39
|
+
server.registerTool(
|
|
40
|
+
'execute_editor_script',
|
|
41
|
+
{
|
|
42
|
+
description: 'Execute a GDScript snippet in the editor context (EditorScript)',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
code: GDScriptCode,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
async (args) => callGodot(bridge, 'editor/execute_script', args),
|
|
48
|
+
);
|
|
49
|
+
// 5. clear_output — {} -> success
|
|
50
|
+
server.registerTool(
|
|
51
|
+
'clear_output',
|
|
52
|
+
{
|
|
53
|
+
description: 'Clear the editor output log',
|
|
54
|
+
inputSchema: {},
|
|
55
|
+
},
|
|
56
|
+
async () => callGodot(bridge, 'editor/clear_output'),
|
|
57
|
+
);
|
|
58
|
+
// 6. get_signals — {node_path: string} -> signals with connections
|
|
59
|
+
server.registerTool(
|
|
60
|
+
'get_signals',
|
|
61
|
+
{
|
|
62
|
+
description: 'Get all signals and their connections for a node',
|
|
63
|
+
inputSchema: {
|
|
64
|
+
node_path: NodePath.describe('Node path to inspect'),
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
async (args) => callGodot(bridge, 'editor/get_signals', args),
|
|
68
|
+
);
|
|
69
|
+
// 7. reload_plugin — {} -> success
|
|
70
|
+
server.registerTool(
|
|
71
|
+
'reload_plugin',
|
|
72
|
+
{
|
|
73
|
+
description: 'Reload editor plugins (triggers plugin re-initialization)',
|
|
74
|
+
inputSchema: {},
|
|
75
|
+
},
|
|
76
|
+
async () => callGodot(bridge, 'editor/reload_plugin'),
|
|
77
|
+
);
|
|
78
|
+
// 8. reload_project — {} -> success
|
|
79
|
+
server.registerTool(
|
|
80
|
+
'reload_project',
|
|
81
|
+
{
|
|
82
|
+
description: 'Rescan the project filesystem for new or changed files',
|
|
83
|
+
inputSchema: {},
|
|
84
|
+
},
|
|
85
|
+
async () => callGodot(bridge, 'editor/reload_project'),
|
|
86
|
+
);
|
|
87
|
+
// 9. get_output_log — {} -> log content
|
|
88
|
+
server.registerTool(
|
|
89
|
+
'get_output_log',
|
|
90
|
+
{
|
|
91
|
+
description: 'Get the contents of the editor output log',
|
|
92
|
+
inputSchema: {},
|
|
93
|
+
},
|
|
94
|
+
async () => callGodot(bridge, 'editor/get_output_log'),
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/tools/editor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,wDAAwD;IACxD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,gFAAgF;QAC7F,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,CACnD,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SAC5E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEF,2DAA2D;IAC3D,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SAC5E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,SAAS,CAAC,MAAM,EAAE,4BAA4B,EAAE,IAA+B,CAAC,CACnF,CAAC;IAEF,sDAAsD;IACtD,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EAAE,iEAAiE;QAC9E,WAAW,EAAE;YACX,IAAI,EAAE,YAAY;SACnB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACrD,CAAC;IAEF,mEAAmE;IACnE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE;YACX,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SACrD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;IAEF,mCAAmC;IACnC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACtD,CAAC;IAEF,oCAAoC;IACpC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,CACvD,CAAC;IAEF,wCAAwC;IACxC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,CACvD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor configuration tools - 8 tools for editor settings
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerEditorConfigTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=editor_config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor_config.d.ts","sourceRoot":"","sources":["../../src/tools/editor_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,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA+FtF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor configuration tools - 8 tools for editor settings
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name } from './shared-types.js';
|
|
6
|
+
export function registerEditorConfigTools(server, bridge) {
|
|
7
|
+
// 1. get_editor_settings
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_editor_settings',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get all editor settings (theme, layout, font, scale, etc.)',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'editor_config/get_settings'),
|
|
15
|
+
);
|
|
16
|
+
// 2. set_editor_theme
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'set_editor_theme',
|
|
19
|
+
{
|
|
20
|
+
description: 'Set the editor color theme',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
theme: z.enum(['dark', 'light', 'amoled']).describe('Editor theme preset'),
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
async (args) => callGodot(bridge, 'editor_config/set_theme', args),
|
|
26
|
+
);
|
|
27
|
+
// 3. set_editor_layout
|
|
28
|
+
server.registerTool(
|
|
29
|
+
'set_editor_layout',
|
|
30
|
+
{
|
|
31
|
+
description: 'Switch the editor to a specific workspace layout',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
layout: z.enum(['default', '2d', '3d', 'script']).describe('Editor layout preset to activate'),
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
async (args) => callGodot(bridge, 'editor_config/set_layout', args),
|
|
37
|
+
);
|
|
38
|
+
// 4. set_font_size
|
|
39
|
+
server.registerTool(
|
|
40
|
+
'set_font_size',
|
|
41
|
+
{
|
|
42
|
+
description: 'Set the editor font size in pixels',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
size: z.number().int().min(8).max(48).describe('Font size in pixels'),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
async (args) => callGodot(bridge, 'editor_config/set_font_size', args),
|
|
48
|
+
);
|
|
49
|
+
// 5. set_editor_scale
|
|
50
|
+
server.registerTool(
|
|
51
|
+
'set_editor_scale',
|
|
52
|
+
{
|
|
53
|
+
description: 'Set the editor UI scale factor',
|
|
54
|
+
inputSchema: {
|
|
55
|
+
scale: z.number().min(0.5).max(3.0).describe('UI scale factor (1.0 = 100%)'),
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
async (args) => callGodot(bridge, 'editor_config/set_scale', args),
|
|
59
|
+
);
|
|
60
|
+
// 6. save_editor_layout
|
|
61
|
+
server.registerTool(
|
|
62
|
+
'save_editor_layout',
|
|
63
|
+
{
|
|
64
|
+
description: 'Save the current editor layout under a name',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
name: Name.describe('Layout name to save as'),
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
async (args) => callGodot(bridge, 'editor_config/save_layout', args),
|
|
70
|
+
);
|
|
71
|
+
// 7. load_editor_layout
|
|
72
|
+
server.registerTool(
|
|
73
|
+
'load_editor_layout',
|
|
74
|
+
{
|
|
75
|
+
description: 'Load a previously saved editor layout',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
name: Name.describe('Layout name to load'),
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
async (args) => callGodot(bridge, 'editor_config/load_layout', args),
|
|
81
|
+
);
|
|
82
|
+
// 8. reset_editor_layout
|
|
83
|
+
server.registerTool(
|
|
84
|
+
'reset_editor_layout',
|
|
85
|
+
{
|
|
86
|
+
description: 'Reset the editor layout to factory defaults',
|
|
87
|
+
inputSchema: {},
|
|
88
|
+
},
|
|
89
|
+
async () => callGodot(bridge, 'editor_config/reset_layout'),
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=editor_config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor_config.js","sourceRoot":"","sources":["../../src/tools/editor_config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export tools - 7 tools for project export
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerExportTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/tools/export.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,CAkFhF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export tools - 7 tools for project export
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name } from './shared-types.js';
|
|
6
|
+
export function registerExportTools(server, bridge) {
|
|
7
|
+
// 1. list_export_presets
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'list_export_presets',
|
|
10
|
+
{
|
|
11
|
+
description: 'List all configured export presets',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'export/list_presets'),
|
|
15
|
+
);
|
|
16
|
+
// 2. export_project
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'export_project',
|
|
19
|
+
{
|
|
20
|
+
description: 'Export the project using a specific preset',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
preset: Name.describe('Export preset name'),
|
|
23
|
+
output_path: z.string().optional().describe('Output path for the export'),
|
|
24
|
+
debug: z.boolean().optional().default(false).describe('Export as debug build (default: false = release)'),
|
|
25
|
+
pack_only: z.boolean().optional().default(false).describe('Export as pack file only (default: false)'),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
async (args) => callGodot(bridge, 'export/project', args),
|
|
29
|
+
);
|
|
30
|
+
// 3. get_export_info
|
|
31
|
+
server.registerTool(
|
|
32
|
+
'get_export_info',
|
|
33
|
+
{
|
|
34
|
+
description: 'Get export project information (platform, features, resources)',
|
|
35
|
+
inputSchema: {},
|
|
36
|
+
},
|
|
37
|
+
async () => callGodot(bridge, 'export/get_info'),
|
|
38
|
+
);
|
|
39
|
+
// 4. validate_export
|
|
40
|
+
server.registerTool(
|
|
41
|
+
'validate_export',
|
|
42
|
+
{
|
|
43
|
+
description: 'Validate the project for export (check for missing resources, errors)',
|
|
44
|
+
inputSchema: {},
|
|
45
|
+
},
|
|
46
|
+
async (args) => callGodot(bridge, 'export/validate', args),
|
|
47
|
+
);
|
|
48
|
+
// 5. get_export_templates
|
|
49
|
+
server.registerTool(
|
|
50
|
+
'get_export_templates',
|
|
51
|
+
{
|
|
52
|
+
description: 'Get available export templates for the current Godot version',
|
|
53
|
+
inputSchema: {},
|
|
54
|
+
},
|
|
55
|
+
async () => callGodot(bridge, 'export/get_templates'),
|
|
56
|
+
);
|
|
57
|
+
// 6. create_export_preset
|
|
58
|
+
server.registerTool(
|
|
59
|
+
'create_export_preset',
|
|
60
|
+
{
|
|
61
|
+
description: 'Create a new export preset',
|
|
62
|
+
inputSchema: {
|
|
63
|
+
name: Name.describe('Preset name'),
|
|
64
|
+
platform: z.string().describe("Target platform (e.g. 'Windows Desktop', 'Linux', 'Android')"),
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
async (args) => callGodot(bridge, 'export/create_preset', args),
|
|
68
|
+
);
|
|
69
|
+
// 7. delete_export_preset
|
|
70
|
+
server.registerTool(
|
|
71
|
+
'delete_export_preset',
|
|
72
|
+
{
|
|
73
|
+
description: 'Delete an export preset from the project',
|
|
74
|
+
inputSchema: {
|
|
75
|
+
name: z.string().describe('Name of the export preset to delete'),
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
async (args) => callGodot(bridge, 'export/delete_preset', args),
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACrD,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACvG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACtD,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClC,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,8DAA8D,CAAC;SAC5E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SACjE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Game template tools - 8 tools for complete game genre scaffolding
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerGameTemplateTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=game_template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game_template.d.ts","sourceRoot":"","sources":["../../src/tools/game_template.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,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgHtF"}
|