@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,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Game template tools - 8 tools for complete game genre scaffolding
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name, FilePath } from './shared-types.js';
|
|
6
|
+
export function registerGameTemplateTools(server, bridge) {
|
|
7
|
+
// 1. create_platformer_template
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'create_platformer_template',
|
|
10
|
+
{
|
|
11
|
+
description: 'Create a complete 2D platformer project structure with player, enemies, levels, and UI',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
14
|
+
name: Name.describe('Game name'),
|
|
15
|
+
features: z.array(z.string()).optional().describe("Additional features to include (e.g. 'double_jump', 'wall_slide', 'dash')"),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
async (args) => callGodot(bridge, 'game_template/create_platformer', args),
|
|
19
|
+
);
|
|
20
|
+
// 2. create_rpg_template
|
|
21
|
+
server.registerTool(
|
|
22
|
+
'create_rpg_template',
|
|
23
|
+
{
|
|
24
|
+
description: 'Create a complete RPG project structure with player, NPCs, inventory, dialog, and quests',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
27
|
+
name: Name.describe('Game name'),
|
|
28
|
+
features: z.array(z.string()).optional().describe("Additional features (e.g. 'turn_based', 'real_time_combat', 'crafting')"),
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
async (args) => callGodot(bridge, 'game_template/create_rpg', args),
|
|
32
|
+
);
|
|
33
|
+
// 3. create_fps_template
|
|
34
|
+
server.registerTool(
|
|
35
|
+
'create_fps_template',
|
|
36
|
+
{
|
|
37
|
+
description: 'Create a complete FPS project structure with player controller, weapons, enemies, and HUD',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
40
|
+
name: Name.describe('Game name'),
|
|
41
|
+
features: z.array(z.string()).optional().describe("Additional features (e.g. 'sprint', 'crouch', 'inventory')"),
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
async (args) => callGodot(bridge, 'game_template/create_fps', args),
|
|
45
|
+
);
|
|
46
|
+
// 4. create_puzzle_template
|
|
47
|
+
server.registerTool(
|
|
48
|
+
'create_puzzle_template',
|
|
49
|
+
{
|
|
50
|
+
description: 'Create a complete puzzle game project structure with grid system, piece management, and scoring',
|
|
51
|
+
inputSchema: {
|
|
52
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
53
|
+
name: Name.describe('Game name'),
|
|
54
|
+
features: z.array(z.string()).optional().describe("Additional features (e.g. 'match3', 'physics_puzzle', 'tile_swap')"),
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
async (args) => callGodot(bridge, 'game_template/create_puzzle', args),
|
|
58
|
+
);
|
|
59
|
+
// 5. create_racing_template
|
|
60
|
+
server.registerTool(
|
|
61
|
+
'create_racing_template',
|
|
62
|
+
{
|
|
63
|
+
description: 'Create a complete racing game project structure with vehicle physics, track, and lap system',
|
|
64
|
+
inputSchema: {
|
|
65
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
66
|
+
name: Name.describe('Game name'),
|
|
67
|
+
features: z.array(z.string()).optional().describe("Additional features (e.g. 'drift', 'boost', 'ai_opponents')"),
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
async (args) => callGodot(bridge, 'game_template/create_racing', args),
|
|
71
|
+
);
|
|
72
|
+
// 6. create_strategy_template
|
|
73
|
+
server.registerTool(
|
|
74
|
+
'create_strategy_template',
|
|
75
|
+
{
|
|
76
|
+
description: 'Create a complete strategy game project structure with grid, units, resources, and turns',
|
|
77
|
+
inputSchema: {
|
|
78
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
79
|
+
name: Name.describe('Game name'),
|
|
80
|
+
features: z.array(z.string()).optional().describe("Additional features (e.g. 'fog_of_war', 'tech_tree', 'diplomacy')"),
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
async (args) => callGodot(bridge, 'game_template/create_strategy', args),
|
|
84
|
+
);
|
|
85
|
+
// 7. create_visual_novel_template
|
|
86
|
+
server.registerTool(
|
|
87
|
+
'create_visual_novel_template',
|
|
88
|
+
{
|
|
89
|
+
description: 'Create a complete visual novel project structure with dialog system, character portraits, and branching',
|
|
90
|
+
inputSchema: {
|
|
91
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
92
|
+
name: Name.describe('Game name'),
|
|
93
|
+
features: z.array(z.string()).optional().describe("Additional features (e.g. 'save_system', 'gallery', 'achievements')"),
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
async (args) => callGodot(bridge, 'game_template/create_visual_novel', args),
|
|
97
|
+
);
|
|
98
|
+
// 8. create_custom_template
|
|
99
|
+
server.registerTool(
|
|
100
|
+
'create_custom_template',
|
|
101
|
+
{
|
|
102
|
+
description: 'Create a custom game project structure by selecting specific components to include',
|
|
103
|
+
inputSchema: {
|
|
104
|
+
project_path: FilePath.describe('Path to the Godot project root'),
|
|
105
|
+
name: Name.describe('Game name'),
|
|
106
|
+
components: z.array(z.enum(['player', 'enemies', 'ui', 'levels', 'save', 'audio', 'physics'])).describe('Components to include'),
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
async (args) => callGodot(bridge, 'game_template/create_custom', args),
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=game_template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game_template.js","sourceRoot":"","sources":["../../src/tools/game_template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gameplay automation tools - 7 tools for automated gameplay testing
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerGameplayAutomationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=gameplay_automation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gameplay_automation.d.ts","sourceRoot":"","sources":["../../src/tools/gameplay_automation.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,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA2I5F"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gameplay automation tools - 7 tools for automated gameplay testing
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScenePath, NodePath, Position3D, Properties } from './shared-types.js';
|
|
6
|
+
export function registerGameplayAutomationTools(server, bridge) {
|
|
7
|
+
// 1. simulate_gameplay_scenario
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'simulate_gameplay_scenario',
|
|
10
|
+
{
|
|
11
|
+
description: 'Run a sequence of gameplay actions (input, wait, check) as an automated scenario',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
scenario: z
|
|
14
|
+
.array(
|
|
15
|
+
z.object({
|
|
16
|
+
action: z.string().describe("Action type: 'input', 'wait', 'move', 'click', 'assert'"),
|
|
17
|
+
params: Properties.describe('Parameters for the action'),
|
|
18
|
+
wait: z.number().optional().describe('Wait time in ms after this step'),
|
|
19
|
+
}),
|
|
20
|
+
)
|
|
21
|
+
.describe('Ordered list of gameplay actions to execute'),
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async (args) => callGodot(bridge, 'simulate_gameplay_scenario', args),
|
|
25
|
+
);
|
|
26
|
+
// 2. record_gameplay
|
|
27
|
+
server.registerTool(
|
|
28
|
+
'record_gameplay',
|
|
29
|
+
{
|
|
30
|
+
description: 'Record gameplay for a duration, capturing input events and/or game state',
|
|
31
|
+
inputSchema: {
|
|
32
|
+
duration: z.number().min(1).max(300).optional().default(10).describe('Recording duration in seconds (default: 10)'),
|
|
33
|
+
include_input: z.boolean().optional().default(true).describe('Record input events (default: true)'),
|
|
34
|
+
include_state: z.boolean().optional().default(false).describe('Record game state snapshots (default: false)'),
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
async (args) => callGodot(bridge, 'record_gameplay', args),
|
|
38
|
+
);
|
|
39
|
+
// 3. replay_gameplay
|
|
40
|
+
server.registerTool(
|
|
41
|
+
'replay_gameplay',
|
|
42
|
+
{
|
|
43
|
+
description: 'Replay a previously recorded gameplay session',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
recording_path: z.string().describe('Path to the recording file'),
|
|
46
|
+
speed: z.number().min(0.1).max(10).optional().default(1.0).describe('Playback speed multiplier (default: 1.0)'),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
async (args) => callGodot(bridge, 'replay_gameplay', args),
|
|
50
|
+
);
|
|
51
|
+
// 4. create_test_character
|
|
52
|
+
server.registerTool(
|
|
53
|
+
'create_test_character',
|
|
54
|
+
{
|
|
55
|
+
description: 'Create a test character in the scene at a specified position',
|
|
56
|
+
inputSchema: {
|
|
57
|
+
scene_path: ScenePath.describe('Path to the character scene to instantiate'),
|
|
58
|
+
position: Position3D.optional().describe('World position [x, y, z]'),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
async (args) => callGodot(bridge, 'create_test_character', args),
|
|
62
|
+
);
|
|
63
|
+
// 5. navigate_character
|
|
64
|
+
server.registerTool(
|
|
65
|
+
'navigate_character',
|
|
66
|
+
{
|
|
67
|
+
description: 'Move a character to a target position using direct movement or pathfinding',
|
|
68
|
+
inputSchema: {
|
|
69
|
+
character_path: NodePath,
|
|
70
|
+
target: Position3D.describe('Target position [x, y, z]'),
|
|
71
|
+
method: z.enum(['direct', 'pathfind']).optional().default('direct').describe('Navigation method (default: direct)'),
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
async (args) => callGodot(bridge, 'navigate_character', args),
|
|
75
|
+
);
|
|
76
|
+
// 6. assert_game_state
|
|
77
|
+
server.registerTool(
|
|
78
|
+
'assert_game_state',
|
|
79
|
+
{
|
|
80
|
+
description: 'Assert multiple game state conditions simultaneously',
|
|
81
|
+
inputSchema: {
|
|
82
|
+
conditions: z
|
|
83
|
+
.array(
|
|
84
|
+
z.object({
|
|
85
|
+
path: z.string().describe('Node path'),
|
|
86
|
+
property: z.string().describe('Property name to check'),
|
|
87
|
+
expected: z.unknown().describe('Expected value'),
|
|
88
|
+
operator: z.string().optional().describe('Comparison operator: ==, !=, >, <, >=, <=, contains'),
|
|
89
|
+
}),
|
|
90
|
+
)
|
|
91
|
+
.describe('List of conditions that must all pass'),
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
async (args) => callGodot(bridge, 'assert_game_state', args),
|
|
95
|
+
);
|
|
96
|
+
// 7. wait_for_game_event
|
|
97
|
+
server.registerTool(
|
|
98
|
+
'wait_for_game_event',
|
|
99
|
+
{
|
|
100
|
+
description: 'Wait for a specific game event (signal, node creation, property change) with timeout',
|
|
101
|
+
inputSchema: {
|
|
102
|
+
event: z.string().describe("Event to wait for. Use prefix format: 'signal:NodePath:SignalName', 'node:NodePath', or 'property:NodePath:PropName:ExpectedValue'"),
|
|
103
|
+
timeout: z.number().int().min(1).max(30000).optional().default(5000).describe('Timeout in milliseconds (default: 5000)'),
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
async (args) => callGodot(bridge, 'wait_for_game_event', args),
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=gameplay_automation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gameplay_automation.js","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git integration tools - 6 tools for version control
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerGitIntegrationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=git_integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git_integration.d.ts","sourceRoot":"","sources":["../../src/tools/git_integration.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,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAyExF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git integration tools - 6 tools for version control
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name } from './shared-types.js';
|
|
6
|
+
export function registerGitIntegrationTools(server, bridge) {
|
|
7
|
+
// 1. git_status
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'git_status',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get the current git status with changed, staged, and untracked files',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'git_status'),
|
|
15
|
+
);
|
|
16
|
+
// 2. git_diff
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'git_diff',
|
|
19
|
+
{
|
|
20
|
+
description: 'Get the diff for a specific file or all changes',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
file_path: z.string().optional().describe('Specific file to diff, or omit for all changes'),
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
async (args) => callGodot(bridge, 'git_diff', args),
|
|
26
|
+
);
|
|
27
|
+
// 3. git_commit
|
|
28
|
+
server.registerTool(
|
|
29
|
+
'git_commit',
|
|
30
|
+
{
|
|
31
|
+
description: 'Commit staged changes with a message, optionally staging specific files first',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
message: z.string().describe('Commit message'),
|
|
34
|
+
files: z.array(z.string()).optional().describe('Files to stage before committing'),
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
async (args) => callGodot(bridge, 'git_commit', args),
|
|
38
|
+
);
|
|
39
|
+
// 4. git_log
|
|
40
|
+
server.registerTool(
|
|
41
|
+
'git_log',
|
|
42
|
+
{
|
|
43
|
+
description: 'Get the git commit history',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
limit: z.number().int().min(1).max(100).optional().describe('Number of commits to show (default: 20)'),
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
async (args) => callGodot(bridge, 'git_log', args),
|
|
49
|
+
);
|
|
50
|
+
// 5. git_branch
|
|
51
|
+
server.registerTool(
|
|
52
|
+
'git_branch',
|
|
53
|
+
{
|
|
54
|
+
description: 'Manage git branches - list, create, switch, or delete',
|
|
55
|
+
inputSchema: {
|
|
56
|
+
action: z.enum(['list', 'create', 'switch', 'delete']).describe('Branch action to perform'),
|
|
57
|
+
name: Name.optional().describe('Branch name (required for create, switch, delete)'),
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
async (args) => callGodot(bridge, 'git_branch', args),
|
|
61
|
+
);
|
|
62
|
+
// 6. git_stash
|
|
63
|
+
server.registerTool(
|
|
64
|
+
'git_stash',
|
|
65
|
+
{
|
|
66
|
+
description: 'Manage git stash - save, pop, or list stashes',
|
|
67
|
+
inputSchema: {
|
|
68
|
+
action: z.enum(['save', 'pop', 'list']).describe('Stash action to perform'),
|
|
69
|
+
message: z.string().optional().describe('Stash message (for save action)'),
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
async (args) => callGodot(bridge, 'git_stash', args),
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=git_integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git_integration.js","sourceRoot":"","sources":["../../src/tools/git_integration.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,2BAA2B,CAAC,MAAiB,EAAE,MAAmB;IAChF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACf,YAAY,EACZ;QACE,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAC5C,CAAC;IAEJ,cAAc;IACd,MAAM,CAAC,YAAY,CACf,UAAU,EACV;QACE,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC5F;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,IAA+B,CAAC,CAC/E,CAAC;IAEJ,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACf,YAAY,EACZ;QACE,WAAW,EAAE,+EAA+E;QAC5F,WAAW,EAAE;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SACnF;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAA+B,CAAC,CACjF,CAAC;IAEJ,aAAa;IACb,MAAM,CAAC,YAAY,CACf,SAAS,EACT;QACE,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SACvG;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,IAA+B,CAAC,CAC9E,CAAC;IAEJ,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACf,YAAY,EACZ;QACE,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC3F,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;SACpF;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAA+B,CAAC,CACjF,CAAC;IAEJ,eAAe;IACf,MAAM,CAAC,YAAY,CACf,WAAW,EACX;QACE,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC3E;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAA+B,CAAC,CAChF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Headless testing tools - 5 tools for CI/CD testing
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerHeadlessTestingTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=headless_testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless_testing.d.ts","sourceRoot":"","sources":["../../src/tools/headless_testing.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,CA8DzF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Headless testing tools - 5 tools for CI/CD testing
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScenePath, ScriptPath, FilePath } from './shared-types.js';
|
|
6
|
+
export function registerHeadlessTestingTools(server, bridge) {
|
|
7
|
+
// 1. run_headless_test
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'run_headless_test',
|
|
10
|
+
{
|
|
11
|
+
description: 'Run a single test script in headless mode for CI/CD',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
test_script: ScriptPath.describe('Path to the test script to run'),
|
|
14
|
+
timeout: z.number().int().min(1).max(300).optional().describe('Timeout in seconds (default: 60)'),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
async (args) => callGodot(bridge, 'run_headless_test', args),
|
|
18
|
+
);
|
|
19
|
+
// 2. run_test_suite
|
|
20
|
+
server.registerTool(
|
|
21
|
+
'run_test_suite',
|
|
22
|
+
{
|
|
23
|
+
description: 'Run a full test suite from a directory',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
suite_path: FilePath.describe('Path to the test suite directory'),
|
|
26
|
+
parallel: z.boolean().optional().describe('Run tests in parallel (default: false)'),
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
async (args) => callGodot(bridge, 'run_test_suite', args),
|
|
30
|
+
);
|
|
31
|
+
// 3. generate_test_report
|
|
32
|
+
server.registerTool(
|
|
33
|
+
'generate_test_report',
|
|
34
|
+
{
|
|
35
|
+
description: 'Generate a test report in the specified format from accumulated results',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
format: z.enum(['json', 'html', 'junit']).optional().describe('Report format (default: json)'),
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
async (args) => callGodot(bridge, 'generate_test_report', args),
|
|
41
|
+
);
|
|
42
|
+
// 4. validate_project
|
|
43
|
+
server.registerTool(
|
|
44
|
+
'validate_project',
|
|
45
|
+
{
|
|
46
|
+
description: 'Validate the project for common issues (missing resources, broken references, script errors)',
|
|
47
|
+
inputSchema: {},
|
|
48
|
+
},
|
|
49
|
+
async () => callGodot(bridge, 'validate_project'),
|
|
50
|
+
);
|
|
51
|
+
// 5. run_performance_benchmark
|
|
52
|
+
server.registerTool(
|
|
53
|
+
'run_performance_benchmark',
|
|
54
|
+
{
|
|
55
|
+
description: 'Run a performance benchmark on a scene measuring FPS, frame time, memory, and draw calls',
|
|
56
|
+
inputSchema: {
|
|
57
|
+
scene_path: ScenePath.describe('Path to the scene to benchmark'),
|
|
58
|
+
duration: z.number().int().min(1).max(120).optional().describe('Benchmark duration in seconds (default: 10)'),
|
|
59
|
+
metrics: z.array(z.string()).optional().describe('Specific metrics to collect (default: all)'),
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
async (args) => callGodot(bridge, 'run_performance_benchmark', args),
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=headless_testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless_testing.js","sourceRoot":"","sources":["../../src/tools/headless_testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,MAAmB;IACjF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;QACE,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACf,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SAClG;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAA+B,CAAC,CACxF,CAAC;IAEJ,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;QACE,WAAW,EAAE,wCAAwC;QACrD,WAAW,EAAE;YACf,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACjE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SACpF;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEJ,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACE,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE;YACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SAC/F;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEJ,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACE,WAAW,EAAE,8FAA8F;QAC3G,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAClD,CAAC;IAEJ,+BAA+B;IAC/B,MAAM,CAAC,YAAY,CACf,2BAA2B,EAC3B;QACE,WAAW,EAAE,0FAA0F;QACvG,WAAW,EAAE;YACf,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC7G,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SAC/F;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,EAAE,IAA+B,CAAC,CAChG,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IAP monetization tools - 6 tools for in-app purchase management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerIAPMonetizationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=iap_monetization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iap_monetization.d.ts","sourceRoot":"","sources":["../../src/tools/iap_monetization.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,CAoEzF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IAP monetization tools - 6 tools for in-app purchase management
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name } from './shared-types.js';
|
|
6
|
+
export function registerIAPMonetizationTools(server, bridge) {
|
|
7
|
+
// 1. get_iap_settings
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_iap_settings',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get the current in-app purchase configuration',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'get_iap_settings'),
|
|
15
|
+
);
|
|
16
|
+
// 2. add_product
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'add_product',
|
|
19
|
+
{
|
|
20
|
+
description: 'Add a new in-app purchase product to the catalog',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
product_id: z.string().min(1).describe("Unique product identifier (e.g. 'com.game.coins_100')"),
|
|
23
|
+
type: z.enum(['consumable', 'non_consumable', 'subscription']).describe('Product type'),
|
|
24
|
+
price: z.string().optional().describe("Price display string (e.g. '$0.99')"),
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
async (args) => callGodot(bridge, 'add_product', args),
|
|
28
|
+
);
|
|
29
|
+
// 3. remove_product
|
|
30
|
+
server.registerTool(
|
|
31
|
+
'remove_product',
|
|
32
|
+
{
|
|
33
|
+
description: 'Remove a product from the in-app purchase catalog',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
product_id: Name.describe('Product identifier to remove'),
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
async (args) => callGodot(bridge, 'remove_product', args),
|
|
39
|
+
);
|
|
40
|
+
// 4. get_products
|
|
41
|
+
server.registerTool(
|
|
42
|
+
'get_products',
|
|
43
|
+
{
|
|
44
|
+
description: 'Get all registered in-app purchase products with their details and prices',
|
|
45
|
+
inputSchema: {},
|
|
46
|
+
},
|
|
47
|
+
async () => callGodot(bridge, 'get_products'),
|
|
48
|
+
);
|
|
49
|
+
// 5. purchase_product
|
|
50
|
+
server.registerTool(
|
|
51
|
+
'purchase_product',
|
|
52
|
+
{
|
|
53
|
+
description: 'Initiate a purchase for a specific product (test/sandbox mode)',
|
|
54
|
+
inputSchema: {
|
|
55
|
+
product_id: Name.describe('Product identifier to purchase'),
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
async (args) => callGodot(bridge, 'purchase_product', args),
|
|
59
|
+
);
|
|
60
|
+
// 6. restore_purchases
|
|
61
|
+
server.registerTool(
|
|
62
|
+
'restore_purchases',
|
|
63
|
+
{
|
|
64
|
+
description: 'Restore previously purchased non-consumable and subscription products',
|
|
65
|
+
inputSchema: {},
|
|
66
|
+
},
|
|
67
|
+
async () => callGodot(bridge, 'restore_purchases'),
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=iap_monetization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iap_monetization.js","sourceRoot":"","sources":["../../src/tools/iap_monetization.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,4BAA4B,CAAC,MAAiB,EAAE,MAAmB;IACjF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACE,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAClD,CAAC;IAEJ,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACf,aAAa,EACb;QACE,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE;YACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YAC/F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SAC7E;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAA+B,CAAC,CAClF,CAAC;IAEJ,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;QACE,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE;YACf,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SAC1D;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEJ,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACE,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAC9C,CAAC;IAEJ,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE;YACf,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC;SAC5D;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAA+B,CAAC,CACvF,CAAC;IAEJ,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,CACnD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool module auto-registration
|
|
3
|
+
*
|
|
4
|
+
* Imports all tool modules and registers them with the MCP server.
|
|
5
|
+
*/
|
|
6
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
7
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
8
|
+
/**
|
|
9
|
+
* Register all tool modules with the MCP server.
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerAllTools(server: McpServer, bridge: GodotBridge): void;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA4CtD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA0C7E"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool module auto-registration
|
|
3
|
+
*
|
|
4
|
+
* Imports all tool modules and registers them with the MCP server.
|
|
5
|
+
*/
|
|
6
|
+
import { registerProjectTools } from './project.js';
|
|
7
|
+
import { registerSceneTools } from './scene.js';
|
|
8
|
+
import { registerNodeTools } from './node.js';
|
|
9
|
+
import { registerScriptTools } from './script.js';
|
|
10
|
+
import { registerEditorTools } from './editor.js';
|
|
11
|
+
import { registerInputTools } from './input.js';
|
|
12
|
+
import { registerRuntimeTools } from './runtime.js';
|
|
13
|
+
import { registerAnimationTools } from './animation.js';
|
|
14
|
+
import { registerTilemapTools } from './tilemap.js';
|
|
15
|
+
import { registerThemeTools } from './theme.js';
|
|
16
|
+
import { registerShaderTools } from './shader.js';
|
|
17
|
+
import { registerResourceTools } from './resource.js';
|
|
18
|
+
import { registerPhysicsTools } from './physics.js';
|
|
19
|
+
import { registerScene3dTools } from './scene3d.js';
|
|
20
|
+
import { registerParticlesTools } from './particles.js';
|
|
21
|
+
import { registerNavigationTools } from './navigation.js';
|
|
22
|
+
import { registerAudioTools } from './audio.js';
|
|
23
|
+
import { registerBatchTools } from './batch.js';
|
|
24
|
+
import { registerAnalysisTools } from './analysis.js';
|
|
25
|
+
import { registerTestingTools } from './testing.js';
|
|
26
|
+
import { registerProfilingTools } from './profiling.js';
|
|
27
|
+
import { registerExportTools } from './export.js';
|
|
28
|
+
import { registerAddonManagementTools } from './addon_management.js';
|
|
29
|
+
import { registerAudioConfigTools } from './audio_config.js';
|
|
30
|
+
import { registerBuildConfigTools } from './build_config.js';
|
|
31
|
+
import { registerDebugConfigTools } from './debug_config.js';
|
|
32
|
+
import { registerDebuggingTools } from './debugging.js';
|
|
33
|
+
import { registerEditorConfigTools } from './editor_config.js';
|
|
34
|
+
import { registerGameplayAutomationTools } from './gameplay_automation.js';
|
|
35
|
+
import { registerMemoryProfilingTools } from './memory_profiling.js';
|
|
36
|
+
import { registerNodeConfigTools } from './node_config.js';
|
|
37
|
+
import { registerPhysicsConfigTools } from './physics_config.js';
|
|
38
|
+
import { registerPlatformExportTools } from './platform_export.js';
|
|
39
|
+
import { registerPlatformSpecificTools } from './platform_specific.js';
|
|
40
|
+
import { registerProjectConfigTools } from './project_config.js';
|
|
41
|
+
import { registerProjectCreationTools } from './project_creation.js';
|
|
42
|
+
import { registerRenderingConfigTools } from './rendering_config.js';
|
|
43
|
+
import { registerResourceConfigTools } from './resource_config.js';
|
|
44
|
+
import { registerSaveLoadTools } from './save_load.js';
|
|
45
|
+
import { registerSceneConfigTools } from './scene_config.js';
|
|
46
|
+
import { registerVisualTestingTools } from './visual_testing.js';
|
|
47
|
+
/**
|
|
48
|
+
* Register all tool modules with the MCP server.
|
|
49
|
+
*/
|
|
50
|
+
export function registerAllTools(server, bridge) {
|
|
51
|
+
registerProjectTools(server, bridge);
|
|
52
|
+
registerSceneTools(server, bridge);
|
|
53
|
+
registerNodeTools(server, bridge);
|
|
54
|
+
registerScriptTools(server, bridge);
|
|
55
|
+
registerEditorTools(server, bridge);
|
|
56
|
+
registerInputTools(server, bridge);
|
|
57
|
+
registerRuntimeTools(server, bridge);
|
|
58
|
+
registerAnimationTools(server, bridge);
|
|
59
|
+
registerTilemapTools(server, bridge);
|
|
60
|
+
registerThemeTools(server, bridge);
|
|
61
|
+
registerShaderTools(server, bridge);
|
|
62
|
+
registerResourceTools(server, bridge);
|
|
63
|
+
registerPhysicsTools(server, bridge);
|
|
64
|
+
registerScene3dTools(server, bridge);
|
|
65
|
+
registerParticlesTools(server, bridge);
|
|
66
|
+
registerNavigationTools(server, bridge);
|
|
67
|
+
registerAudioTools(server, bridge);
|
|
68
|
+
registerBatchTools(server, bridge);
|
|
69
|
+
registerAnalysisTools(server, bridge);
|
|
70
|
+
registerTestingTools(server, bridge);
|
|
71
|
+
registerProfilingTools(server, bridge);
|
|
72
|
+
registerExportTools(server, bridge);
|
|
73
|
+
registerAddonManagementTools(server, bridge);
|
|
74
|
+
registerAudioConfigTools(server, bridge);
|
|
75
|
+
registerBuildConfigTools(server, bridge);
|
|
76
|
+
registerDebugConfigTools(server, bridge);
|
|
77
|
+
registerDebuggingTools(server, bridge);
|
|
78
|
+
registerEditorConfigTools(server, bridge);
|
|
79
|
+
registerGameplayAutomationTools(server, bridge);
|
|
80
|
+
registerMemoryProfilingTools(server, bridge);
|
|
81
|
+
registerNodeConfigTools(server, bridge);
|
|
82
|
+
registerPhysicsConfigTools(server, bridge);
|
|
83
|
+
registerPlatformExportTools(server, bridge);
|
|
84
|
+
registerPlatformSpecificTools(server, bridge);
|
|
85
|
+
registerProjectConfigTools(server, bridge);
|
|
86
|
+
registerProjectCreationTools(server, bridge);
|
|
87
|
+
registerRenderingConfigTools(server, bridge);
|
|
88
|
+
registerResourceConfigTools(server, bridge);
|
|
89
|
+
registerSaveLoadTools(server, bridge);
|
|
90
|
+
registerSceneConfigTools(server, bridge);
|
|
91
|
+
registerVisualTestingTools(server, bridge);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|