@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
|
+
* Input tools — 7 tools for input simulation
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerInputTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.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,CAyH/E"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input tools — 7 tools for input simulation
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Position2D, Pressed } from './shared-types.js';
|
|
6
|
+
export function registerInputTools(server, bridge) {
|
|
7
|
+
// 1. simulate_key — {keycode: string, pressed?: boolean, echo?: boolean} -> success
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'simulate_key',
|
|
10
|
+
{
|
|
11
|
+
description: 'Simulate a keyboard key press/release in the running game',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
keycode: z.string().describe("Key code name (e.g. 'KEY_ENTER', 'KEY_SPACE', 'KEY_A')"),
|
|
14
|
+
pressed: Pressed,
|
|
15
|
+
echo: z.boolean().optional().describe('Whether this is an echo/repeat event'),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
async (args) => callGodot(bridge, 'input/simulate_key', args),
|
|
19
|
+
);
|
|
20
|
+
// 2. simulate_mouse_click — {position: [number,number], button?: "left"|"right"|"middle", pressed?: boolean} -> success
|
|
21
|
+
server.registerTool(
|
|
22
|
+
'simulate_mouse_click',
|
|
23
|
+
{
|
|
24
|
+
description: 'Simulate a mouse click at a screen position',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
position: Position2D.describe('Screen position [x, y]'),
|
|
27
|
+
button: z.enum(['left', 'right', 'middle']).optional().default('left').describe('Mouse button (default: left)'),
|
|
28
|
+
pressed: Pressed,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
async (args) => callGodot(bridge, 'input/simulate_mouse_click', args),
|
|
32
|
+
);
|
|
33
|
+
// 3. simulate_mouse_move — {position: [number,number], relative?: boolean} -> success
|
|
34
|
+
server.registerTool(
|
|
35
|
+
'simulate_mouse_move',
|
|
36
|
+
{
|
|
37
|
+
description: 'Simulate mouse movement to a screen position',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
position: Position2D.describe('Target screen position [x, y]'),
|
|
40
|
+
relative: z.boolean().optional().describe('If true, position is relative to current mouse position'),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
async (args) => callGodot(bridge, 'input/simulate_mouse_move', args),
|
|
44
|
+
);
|
|
45
|
+
// 4. simulate_action — {action: string, pressed?: boolean} -> success
|
|
46
|
+
server.registerTool(
|
|
47
|
+
'simulate_action',
|
|
48
|
+
{
|
|
49
|
+
description: 'Simulate an input action (from InputMap) being pressed/released',
|
|
50
|
+
inputSchema: {
|
|
51
|
+
action: z.string().describe("Input action name (e.g. 'ui_accept', 'move_left')"),
|
|
52
|
+
pressed: Pressed,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
async (args) => callGodot(bridge, 'input/simulate_action', args),
|
|
56
|
+
);
|
|
57
|
+
// 5. simulate_sequence — {events: Array<{type: string, delay?: number, [key: string]: any}>} -> success
|
|
58
|
+
server.registerTool(
|
|
59
|
+
'simulate_sequence',
|
|
60
|
+
{
|
|
61
|
+
description: 'Simulate a sequence of input events with timing',
|
|
62
|
+
inputSchema: {
|
|
63
|
+
events: z
|
|
64
|
+
.array(
|
|
65
|
+
z
|
|
66
|
+
.object({
|
|
67
|
+
type: z.string().describe("Event type (e.g. 'key', 'mouse_click', 'mouse_move', 'action')"),
|
|
68
|
+
delay: z.number().optional().describe('Delay before this event in milliseconds'),
|
|
69
|
+
})
|
|
70
|
+
.passthrough()
|
|
71
|
+
.describe('Additional event-specific properties are passed through'),
|
|
72
|
+
)
|
|
73
|
+
.describe('Sequence of input events to simulate'),
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
async (args) => callGodot(bridge, 'input/simulate_sequence', args),
|
|
77
|
+
);
|
|
78
|
+
// 6. get_input_actions — {} -> action list
|
|
79
|
+
server.registerTool(
|
|
80
|
+
'get_input_actions',
|
|
81
|
+
{
|
|
82
|
+
description: 'Get all input actions defined in the InputMap',
|
|
83
|
+
inputSchema: {},
|
|
84
|
+
},
|
|
85
|
+
async () => callGodot(bridge, 'input/get_actions'),
|
|
86
|
+
);
|
|
87
|
+
// 7. set_input_action — {action: string, events: Array<{type: string, [key: string]: any}>} -> success
|
|
88
|
+
server.registerTool(
|
|
89
|
+
'set_input_action',
|
|
90
|
+
{
|
|
91
|
+
description: 'Add or modify an input action and its event mappings',
|
|
92
|
+
inputSchema: {
|
|
93
|
+
action: z.string().describe('Action name'),
|
|
94
|
+
deadzone: z.number().min(0).max(1).optional().default(0.5).describe('Input deadzone value (0-1, default: 0.5)'),
|
|
95
|
+
events: z
|
|
96
|
+
.array(
|
|
97
|
+
z
|
|
98
|
+
.object({
|
|
99
|
+
type: z.string().describe("Event type (e.g. 'key', 'mouse_button', 'joypad_button')"),
|
|
100
|
+
})
|
|
101
|
+
.passthrough()
|
|
102
|
+
.describe('Additional event-specific properties are passed through'),
|
|
103
|
+
)
|
|
104
|
+
.describe('List of input events to map to this action'),
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
async (args) => callGodot(bridge, 'input/set_action', args),
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Localization tools - 8 tools for multi-language support
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerLocalizationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=localization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../src/tools/localization.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,CAiGtF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Localization tools - 8 tools for multi-language support
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, FilePath } from './shared-types.js';
|
|
6
|
+
export function registerLocalizationTools(server, bridge) {
|
|
7
|
+
// 1. get_localization_settings
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_localization_settings',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get current localization settings including locale, fallback locale, and translation files',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'localization/get_settings'),
|
|
15
|
+
);
|
|
16
|
+
// 2. set_locale
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'set_locale',
|
|
19
|
+
{
|
|
20
|
+
description: 'Set the active locale for the project',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
locale: z.string().describe("Locale code to set (e.g. 'en', 'fr', 'ja', 'pt_BR')"),
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
async (args) => callGodot(bridge, 'localization/set_locale', args),
|
|
26
|
+
);
|
|
27
|
+
// 3. get_translations
|
|
28
|
+
server.registerTool(
|
|
29
|
+
'get_translations',
|
|
30
|
+
{
|
|
31
|
+
description: 'Get translation keys and their values, optionally filtered by locale',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
locale: z.string().optional().describe('Locale to get translations for (defaults to current locale)'),
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
async (args) => callGodot(bridge, 'localization/get_translations', args),
|
|
37
|
+
);
|
|
38
|
+
// 4. add_translation
|
|
39
|
+
server.registerTool(
|
|
40
|
+
'add_translation',
|
|
41
|
+
{
|
|
42
|
+
description: 'Add or update a translation key for a specific locale',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
key: z.string().describe("Translation key (e.g. 'UI.MAIN_MENU.START')"),
|
|
45
|
+
locale: z.string().describe("Locale code (e.g. 'en', 'fr')"),
|
|
46
|
+
value: z.string().describe('Translated text value'),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
async (args) => callGodot(bridge, 'localization/add_translation', args),
|
|
50
|
+
);
|
|
51
|
+
// 5. remove_translation
|
|
52
|
+
server.registerTool(
|
|
53
|
+
'remove_translation',
|
|
54
|
+
{
|
|
55
|
+
description: 'Remove a translation key, optionally from a specific locale only',
|
|
56
|
+
inputSchema: {
|
|
57
|
+
key: z.string().describe('Translation key to remove'),
|
|
58
|
+
locale: z.string().optional().describe('Specific locale to remove from (removes from all if omitted)'),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
async (args) => callGodot(bridge, 'localization/remove_translation', args),
|
|
62
|
+
);
|
|
63
|
+
// 6. import_translations
|
|
64
|
+
server.registerTool(
|
|
65
|
+
'import_translations',
|
|
66
|
+
{
|
|
67
|
+
description: 'Import translations from an external file (CSV, JSON, PO, or XLIFF)',
|
|
68
|
+
inputSchema: {
|
|
69
|
+
file_path: FilePath.describe('Path to the translation file (res:// or absolute)'),
|
|
70
|
+
format: z.enum(['csv', 'json', 'po', 'xliff']).describe('File format'),
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
async (args) => callGodot(bridge, 'localization/import_translations', args),
|
|
74
|
+
);
|
|
75
|
+
// 7. export_translations
|
|
76
|
+
server.registerTool(
|
|
77
|
+
'export_translations',
|
|
78
|
+
{
|
|
79
|
+
description: 'Export translations for a locale to a file (CSV, JSON, or PO)',
|
|
80
|
+
inputSchema: {
|
|
81
|
+
locale: z.string().describe('Locale to export'),
|
|
82
|
+
format: z.enum(['csv', 'json', 'po']).describe('Export format'),
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
async (args) => callGodot(bridge, 'localization/export_translations', args),
|
|
86
|
+
);
|
|
87
|
+
// 8. validate_translations
|
|
88
|
+
server.registerTool(
|
|
89
|
+
'validate_translations',
|
|
90
|
+
{
|
|
91
|
+
description: 'Validate translations and report missing keys per locale',
|
|
92
|
+
inputSchema: {},
|
|
93
|
+
},
|
|
94
|
+
async () => callGodot(bridge, 'localization/validate_translations'),
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=localization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localization.js","sourceRoot":"","sources":["../../src/tools/localization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marketing tools - 6 tools for store assets and promotional material generation
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerMarketingTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=marketing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketing.d.ts","sourceRoot":"","sources":["../../src/tools/marketing.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,CAiFnF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marketing tools - 6 tools for store assets and promotional material generation
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, PositiveNumber, Size2D, FilePath } from './shared-types.js';
|
|
6
|
+
export function registerMarketingTools(server, bridge) {
|
|
7
|
+
// 1. take_store_screenshot
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'take_store_screenshot',
|
|
10
|
+
{
|
|
11
|
+
description: 'Capture high-resolution screenshots for store listings from specified scenes',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
resolution: Size2D.optional().describe('Screenshot resolution [width, height] (default: [1920, 1080])'),
|
|
14
|
+
scenes: z.array(z.string()).optional().describe('Scene paths to capture (defaults to current scene)'),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
async (args) => callGodot(bridge, 'marketing/take_screenshot', args),
|
|
18
|
+
);
|
|
19
|
+
// 2. create_screenshot_grid
|
|
20
|
+
server.registerTool(
|
|
21
|
+
'create_screenshot_grid',
|
|
22
|
+
{
|
|
23
|
+
description: 'Combine multiple screenshots into a grid, carousel, or hero layout image',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
screenshots: z.array(z.string()).describe('Paths to screenshot images'),
|
|
26
|
+
layout: z.enum(['grid', 'carousel', 'hero']).optional().describe('Layout style (default: grid)'),
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
async (args) => callGodot(bridge, 'marketing/create_grid', args),
|
|
30
|
+
);
|
|
31
|
+
// 3. generate_trailer_script
|
|
32
|
+
server.registerTool(
|
|
33
|
+
'generate_trailer_script',
|
|
34
|
+
{
|
|
35
|
+
description: 'Generate a trailer script with timed scene sequences and camera actions',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
duration: PositiveNumber.describe('Total trailer duration in seconds'),
|
|
38
|
+
scenes: z
|
|
39
|
+
.array(
|
|
40
|
+
z.object({
|
|
41
|
+
scene: z.string().describe('Scene path'),
|
|
42
|
+
duration: PositiveNumber.describe('Duration for this scene in seconds'),
|
|
43
|
+
action: z.string().optional().describe("Camera action (e.g. 'pan_left', 'zoom_in', 'orbit')"),
|
|
44
|
+
}),
|
|
45
|
+
)
|
|
46
|
+
.describe('Ordered list of scene segments'),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
async (args) => callGodot(bridge, 'marketing/generate_trailer', args),
|
|
50
|
+
);
|
|
51
|
+
// 4. create_app_icon
|
|
52
|
+
server.registerTool(
|
|
53
|
+
'create_app_icon',
|
|
54
|
+
{
|
|
55
|
+
description: 'Generate an app icon at the specified size and style from the current scene',
|
|
56
|
+
inputSchema: {
|
|
57
|
+
size: z.number().int().positive().describe('Icon size in pixels (e.g. 512, 1024)'),
|
|
58
|
+
style: z.enum(['flat', '3d', 'pixel']).optional().describe('Icon style (default: flat)'),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
async (args) => callGodot(bridge, 'marketing/create_icon', args),
|
|
62
|
+
);
|
|
63
|
+
// 5. generate_store_description
|
|
64
|
+
server.registerTool(
|
|
65
|
+
'generate_store_description',
|
|
66
|
+
{
|
|
67
|
+
description: 'Generate a platform-optimized store description with features and metadata',
|
|
68
|
+
inputSchema: {
|
|
69
|
+
platform: z.enum(['steam', 'app_store', 'play_store', 'itch']).describe('Target store platform'),
|
|
70
|
+
features: z.array(z.string()).optional().describe('Key features to highlight'),
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
async (args) => callGodot(bridge, 'marketing/generate_description', args),
|
|
74
|
+
);
|
|
75
|
+
// 6. create_press_kit
|
|
76
|
+
server.registerTool(
|
|
77
|
+
'create_press_kit',
|
|
78
|
+
{
|
|
79
|
+
description: 'Generate a complete press kit with screenshots, description, logos, and fact sheet',
|
|
80
|
+
inputSchema: {
|
|
81
|
+
output_path: FilePath.describe('Directory path to save the press kit files'),
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
async (args) => callGodot(bridge, 'marketing/create_press_kit', args),
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=marketing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketing.js","sourceRoot":"","sources":["../../src/tools/marketing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory profiling tools - 5 tools for memory analysis and leak detection
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerMemoryProfilingTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=memory_profiling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory_profiling.d.ts","sourceRoot":"","sources":["../../src/tools/memory_profiling.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,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgEzF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory profiling tools - 5 tools for memory analysis and leak detection
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, NodeType } from './shared-types.js';
|
|
6
|
+
export function registerMemoryProfilingTools(server, bridge) {
|
|
7
|
+
// 1. get_memory_usage
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_memory_usage',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get detailed memory usage breakdown by category (static, video, textures, buffers, objects)',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'get_memory_usage'),
|
|
15
|
+
);
|
|
16
|
+
// 2. track_object_creation
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'track_object_creation',
|
|
19
|
+
{
|
|
20
|
+
description: 'Track object creation for a specific class over a duration. Records a baseline count; poll get_object_count afterward to see changes.',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
class_name: NodeType.describe("Godot class name to track (e.g. 'Node2D', 'RigidBody3D')"),
|
|
23
|
+
duration: z.number().min(1).max(60).optional().default(10).describe('Tracking duration in seconds (default: 10)'),
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
async (args) => callGodot(bridge, 'track_object_creation', args),
|
|
27
|
+
);
|
|
28
|
+
// 3. find_memory_leaks
|
|
29
|
+
server.registerTool(
|
|
30
|
+
'find_memory_leaks',
|
|
31
|
+
{
|
|
32
|
+
description: 'Analyze the scene tree and object graph to find potential memory leaks (orphan nodes, leaked resources)',
|
|
33
|
+
inputSchema: {},
|
|
34
|
+
},
|
|
35
|
+
async () => callGodot(bridge, 'find_memory_leaks'),
|
|
36
|
+
);
|
|
37
|
+
// 4. get_object_count
|
|
38
|
+
server.registerTool(
|
|
39
|
+
'get_object_count',
|
|
40
|
+
{
|
|
41
|
+
description: 'Get count of live objects, optionally filtered by class name',
|
|
42
|
+
inputSchema: {
|
|
43
|
+
class_name: NodeType.optional().describe('Filter by class name, or omit for total count'),
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
async (args) => callGodot(bridge, 'get_object_count', args),
|
|
47
|
+
);
|
|
48
|
+
// 5. force_garbage_collection
|
|
49
|
+
server.registerTool(
|
|
50
|
+
'force_garbage_collection',
|
|
51
|
+
{
|
|
52
|
+
description: 'Force garbage collection and report the amount of memory freed',
|
|
53
|
+
inputSchema: {},
|
|
54
|
+
},
|
|
55
|
+
async () => callGodot(bridge, 'force_garbage_collection'),
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=memory_profiling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory_profiling.js","sourceRoot":"","sources":["../../src/tools/memory_profiling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,MAAmB;IACjF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,6FAA6F;QAC/F,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAClD,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACzF,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,4CAA4C,CAAC;SAC1D;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,yGAAyG;QAC3G,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,CACnD,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE;YACX,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SAC1F;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAA+B,CAAC,CACvF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mod support tools - 8 tools for game modding framework management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerModSupportTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=mod_support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod_support.d.ts","sourceRoot":"","sources":["../../src/tools/mod_support.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,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA6FpF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mod support tools - 8 tools for game modding framework management
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name, FilePath } from './shared-types.js';
|
|
6
|
+
export function registerModSupportTools(server, bridge) {
|
|
7
|
+
// 1. get_mod_settings
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_mod_settings',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get the current mod framework configuration',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'get_mod_settings'),
|
|
15
|
+
);
|
|
16
|
+
// 2. enable_modding
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'enable_modding',
|
|
19
|
+
{
|
|
20
|
+
description: 'Enable the modding framework with optional API version and sandbox settings',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
api_version: z.string().optional().describe("Mod API version to use (default: '1.0')"),
|
|
23
|
+
sandboxed: z.boolean().optional().describe('Whether mods run in a sandboxed environment (default: true)'),
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
async (args) => callGodot(bridge, 'enable_modding', args),
|
|
27
|
+
);
|
|
28
|
+
// 3. load_mod
|
|
29
|
+
server.registerTool(
|
|
30
|
+
'load_mod',
|
|
31
|
+
{
|
|
32
|
+
description: 'Load a mod from the specified path',
|
|
33
|
+
inputSchema: {
|
|
34
|
+
mod_path: FilePath.describe('Path to the mod directory or archive (res:// or user://)'),
|
|
35
|
+
enabled: z.boolean().optional().describe('Whether the mod should be enabled immediately (default: true)'),
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
async (args) => callGodot(bridge, 'load_mod', args),
|
|
39
|
+
);
|
|
40
|
+
// 4. unload_mod
|
|
41
|
+
server.registerTool(
|
|
42
|
+
'unload_mod',
|
|
43
|
+
{
|
|
44
|
+
description: 'Unload a currently loaded mod by its ID',
|
|
45
|
+
inputSchema: {
|
|
46
|
+
mod_id: Name.describe('ID of the mod to unload'),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
async (args) => callGodot(bridge, 'unload_mod', args),
|
|
50
|
+
);
|
|
51
|
+
// 5. get_loaded_mods
|
|
52
|
+
server.registerTool(
|
|
53
|
+
'get_loaded_mods',
|
|
54
|
+
{
|
|
55
|
+
description: 'Get a list of all currently loaded mods with their status',
|
|
56
|
+
inputSchema: {},
|
|
57
|
+
},
|
|
58
|
+
async () => callGodot(bridge, 'get_loaded_mods'),
|
|
59
|
+
);
|
|
60
|
+
// 6. validate_mod
|
|
61
|
+
server.registerTool(
|
|
62
|
+
'validate_mod',
|
|
63
|
+
{
|
|
64
|
+
description: 'Validate a mod package for correctness and compatibility',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
mod_path: FilePath.describe('Path to the mod directory or archive to validate'),
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
async (args) => callGodot(bridge, 'validate_mod', args),
|
|
70
|
+
);
|
|
71
|
+
// 7. create_mod_template
|
|
72
|
+
server.registerTool(
|
|
73
|
+
'create_mod_template',
|
|
74
|
+
{
|
|
75
|
+
description: 'Create a new mod template with the specified name and type',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
name: Name.describe('Name for the new mod'),
|
|
78
|
+
type: z.enum(['content', 'gameplay', 'ui', 'total_conversion']).describe('Type of mod to create'),
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
async (args) => callGodot(bridge, 'create_mod_template', args),
|
|
82
|
+
);
|
|
83
|
+
// 8. get_mod_api
|
|
84
|
+
server.registerTool(
|
|
85
|
+
'get_mod_api',
|
|
86
|
+
{
|
|
87
|
+
description: 'Get the available modding API with all functions and hooks available to modders',
|
|
88
|
+
inputSchema: {},
|
|
89
|
+
},
|
|
90
|
+
async () => callGodot(bridge, 'get_mod_api'),
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=mod_support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod_support.js","sourceRoot":"","sources":["../../src/tools/mod_support.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navigation tools - 10 tools for navigation system
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerNavigationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tools/navigation.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,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA6IpF"}
|