@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,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accessibility tools - 6 tools for accessibility auditing and compliance
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ScenePath, NodePath } from './shared-types.js';
|
|
6
|
+
export function registerAccessibilityTools(server, bridge) {
|
|
7
|
+
// 1. check_accessibility
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'check_accessibility',
|
|
10
|
+
{
|
|
11
|
+
description: 'Run a comprehensive accessibility audit on a scene and return a detailed report',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
scene_path: ScenePath.optional().describe('Scene path to audit (defaults to current scene)'),
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
async (args) => callGodot(bridge, 'accessibility/check', args),
|
|
17
|
+
);
|
|
18
|
+
// 2. validate_contrast
|
|
19
|
+
server.registerTool(
|
|
20
|
+
'validate_contrast',
|
|
21
|
+
{
|
|
22
|
+
description: 'Validate color contrast ratio of a UI node against WCAG standards',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
node_path: NodePath.describe('Path to the Control node to check'),
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
async (args) => callGodot(bridge, 'accessibility/validate_contrast', args),
|
|
28
|
+
);
|
|
29
|
+
// 3. check_font_sizes
|
|
30
|
+
server.registerTool(
|
|
31
|
+
'check_font_sizes',
|
|
32
|
+
{
|
|
33
|
+
description: 'Find all UI nodes with font sizes below a minimum threshold',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
min_size: z.number().optional().describe('Minimum acceptable font size in pixels (default: 14)'),
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
async (args) => callGodot(bridge, 'accessibility/check_fonts', args),
|
|
39
|
+
);
|
|
40
|
+
// 4. validate_focus_order
|
|
41
|
+
server.registerTool(
|
|
42
|
+
'validate_focus_order',
|
|
43
|
+
{
|
|
44
|
+
description: 'Validate and return the keyboard focus navigation order for the current scene',
|
|
45
|
+
inputSchema: {},
|
|
46
|
+
},
|
|
47
|
+
async () => callGodot(bridge, 'accessibility/validate_focus'),
|
|
48
|
+
);
|
|
49
|
+
// 5. add_accessibility_labels
|
|
50
|
+
server.registerTool(
|
|
51
|
+
'add_accessibility_labels',
|
|
52
|
+
{
|
|
53
|
+
description: 'Add accessibility labels to interactive nodes in a scene',
|
|
54
|
+
inputSchema: {
|
|
55
|
+
scene_path: ScenePath,
|
|
56
|
+
auto_generate: z.boolean().optional().describe('Auto-generate labels from node names and text (default: true)'),
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
async (args) => callGodot(bridge, 'accessibility/add_labels', args),
|
|
60
|
+
);
|
|
61
|
+
// 6. get_accessibility_score
|
|
62
|
+
server.registerTool(
|
|
63
|
+
'get_accessibility_score',
|
|
64
|
+
{
|
|
65
|
+
description: 'Calculate an overall accessibility score for the project with improvement recommendations',
|
|
66
|
+
inputSchema: {},
|
|
67
|
+
},
|
|
68
|
+
async () => callGodot(bridge, 'accessibility/get_score'),
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=accessibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../src/tools/accessibility.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAmB;IAC/E,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACE,WAAW,EAAE,iFAAiF;QAC9F,WAAW,EAAE;YACf,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;SAC7F;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;IAEJ,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;QACE,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE;YACf,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAClE;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iCAAiC,EAAE,IAA+B,CAAC,CACtG,CAAC;IAEJ,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACE,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;SACjG;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,EAAE,IAA+B,CAAC,CAChG,CAAC;IAEJ,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACE,WAAW,EAAE,+EAA+E;QAC5F,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAC9D,CAAC;IAEJ,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACf,0BAA0B,EAC1B;QACE,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE;YACf,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;SAChH;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,EAAE,IAA+B,CAAC,CAC/F,CAAC;IAEJ,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACf,yBAAyB,EACzB;QACE,WAAW,EAAE,2FAA2F;QACxG,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,CAAC,CACzD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Addon management tools - 5 tools for plugin/addon lifecycle management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerAddonManagementTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=addon_management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon_management.d.ts","sourceRoot":"","sources":["../../src/tools/addon_management.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,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Addon management tools - 5 tools for plugin/addon lifecycle management
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name, Properties } from './shared-types.js';
|
|
6
|
+
export function registerAddonManagementTools(server, bridge) {
|
|
7
|
+
// 1. list_addons
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'list_addons',
|
|
10
|
+
{
|
|
11
|
+
description: 'List all installed addons/plugins with their versions and status',
|
|
12
|
+
inputSchema: {},
|
|
13
|
+
},
|
|
14
|
+
async () => callGodot(bridge, 'list_addons'),
|
|
15
|
+
);
|
|
16
|
+
// 2. install_addon
|
|
17
|
+
server.registerTool(
|
|
18
|
+
'install_addon',
|
|
19
|
+
{
|
|
20
|
+
description: 'Install an addon from the Asset Library, git repository, or local path',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
name: Name.describe('Addon name or identifier'),
|
|
23
|
+
source: z.enum(['asset_lib', 'git', 'local']).optional().default('asset_lib').describe('Installation source (default: asset_lib)'),
|
|
24
|
+
url: z.string().optional().describe('Git URL or local path (required for git/local sources)'),
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
async (args) => callGodot(bridge, 'install_addon', args),
|
|
28
|
+
);
|
|
29
|
+
// 3. uninstall_addon
|
|
30
|
+
server.registerTool(
|
|
31
|
+
'uninstall_addon',
|
|
32
|
+
{
|
|
33
|
+
description: 'Uninstall an addon and remove its files',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
name: Name.describe('Addon name to uninstall'),
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
async (args) => callGodot(bridge, 'uninstall_addon', args),
|
|
39
|
+
);
|
|
40
|
+
// 4. update_addon
|
|
41
|
+
server.registerTool(
|
|
42
|
+
'update_addon',
|
|
43
|
+
{
|
|
44
|
+
description: 'Update an installed addon to its latest version',
|
|
45
|
+
inputSchema: {
|
|
46
|
+
name: Name.describe('Addon name to update'),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
async (args) => callGodot(bridge, 'update_addon', args),
|
|
50
|
+
);
|
|
51
|
+
// 5. configure_addon
|
|
52
|
+
server.registerTool(
|
|
53
|
+
'configure_addon',
|
|
54
|
+
{
|
|
55
|
+
description: 'Update configuration settings for an installed addon',
|
|
56
|
+
inputSchema: {
|
|
57
|
+
name: Name.describe('Addon name to configure'),
|
|
58
|
+
settings: Properties.describe('Configuration key-value pairs to set'),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
async (args) => callGodot(bridge, 'configure_addon', args),
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=addon_management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon_management.js","sourceRoot":"","sources":["../../src/tools/addon_management.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,MAAmB;IACjF,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EAAE,kEAAkE;QAC/E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAC7C,CAAC;IAEF,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC/C,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,OAAO,CAAC,WAAW,CAAC;iBACpB,QAAQ,CAAC,0CAA0C,CAAC;YACvD,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;SACtE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,IAA+B,CAAC,CACpF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAC/C;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SAC5C;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,IAA+B,CAAC,CACnF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC9C,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACtE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analysis tools - 4 tools for project and scene analysis
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerAnalysisTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAyClF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analysis tools - 4 tools for project and scene analysis
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
export function registerAnalysisTools(server, bridge) {
|
|
6
|
+
// 1. analyze_scene_complexity
|
|
7
|
+
server.registerTool(
|
|
8
|
+
'analyze_scene_complexity',
|
|
9
|
+
{
|
|
10
|
+
description: "Analyze a scene's complexity (node count, depth, resource usage)",
|
|
11
|
+
inputSchema: {},
|
|
12
|
+
},
|
|
13
|
+
async (args) => callGodot(bridge, 'analysis/scene_complexity', args),
|
|
14
|
+
);
|
|
15
|
+
// 2. analyze_signal_flow
|
|
16
|
+
server.registerTool(
|
|
17
|
+
'analyze_signal_flow',
|
|
18
|
+
{
|
|
19
|
+
description: 'Analyze signal flow and connections in a scene',
|
|
20
|
+
inputSchema: {},
|
|
21
|
+
},
|
|
22
|
+
async (args) => callGodot(bridge, 'analysis/signal_flow', args),
|
|
23
|
+
);
|
|
24
|
+
// 3. find_unused_resources
|
|
25
|
+
server.registerTool(
|
|
26
|
+
'find_unused_resources',
|
|
27
|
+
{
|
|
28
|
+
description: 'Find resources in the project that are not referenced by any scene or script',
|
|
29
|
+
inputSchema: {},
|
|
30
|
+
},
|
|
31
|
+
async (args) => callGodot(bridge, 'analysis/unused_resources', args),
|
|
32
|
+
);
|
|
33
|
+
// 4. get_project_statistics
|
|
34
|
+
server.registerTool(
|
|
35
|
+
'get_project_statistics',
|
|
36
|
+
{
|
|
37
|
+
description: 'Get project statistics (file counts, sizes, node types, script languages, etc.)',
|
|
38
|
+
inputSchema: {},
|
|
39
|
+
},
|
|
40
|
+
async () => callGodot(bridge, 'analysis/statistics'),
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAmB;IAC1E,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EAAE,kEAAkE;QAC/E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,EAAE,IAA+B,CAAC,CAChG,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EAAE,8EAA8E;QAC3F,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,EAAE,IAA+B,CAAC,CAChG,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EACT,iFAAiF;QACnF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analytics tools - 6 tools for player analytics and event tracking
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerAnalyticsTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/tools/analytics.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,CA0EnF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analytics tools - 6 tools for player analytics and event tracking
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, Name, Properties, OptionalProperties, Timeout } from './shared-types.js';
|
|
6
|
+
export function registerAnalyticsTools(server, bridge) {
|
|
7
|
+
// 1. track_event
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'track_event',
|
|
10
|
+
{
|
|
11
|
+
description: 'Track a custom analytics event with optional properties',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
event_name: Name.describe("Name of the event (e.g. 'level_complete', 'item_pickup')"),
|
|
14
|
+
properties: OptionalProperties,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
async (args) => callGodot(bridge, 'analytics/track_event', args),
|
|
18
|
+
);
|
|
19
|
+
// 2. track_screen
|
|
20
|
+
server.registerTool(
|
|
21
|
+
'track_screen',
|
|
22
|
+
{
|
|
23
|
+
description: 'Track a screen view with optional duration',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
screen_name: Name.describe("Name of the screen (e.g. 'MainMenu', 'Settings', 'Level_5')"),
|
|
26
|
+
duration: Timeout.describe('Time spent on screen in seconds'),
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
async (args) => callGodot(bridge, 'analytics/track_screen', args),
|
|
30
|
+
);
|
|
31
|
+
// 3. track_error
|
|
32
|
+
server.registerTool(
|
|
33
|
+
'track_error',
|
|
34
|
+
{
|
|
35
|
+
description: 'Track an error event with type, message, and optional stack trace',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
error_type: z.string().describe("Error category (e.g. 'crash', 'network', 'validation')"),
|
|
38
|
+
message: z.string().describe('Error message description'),
|
|
39
|
+
stack: z.string().optional().describe('Stack trace or additional context'),
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
async (args) => callGodot(bridge, 'analytics/track_error', args),
|
|
43
|
+
);
|
|
44
|
+
// 4. get_analytics_summary
|
|
45
|
+
server.registerTool(
|
|
46
|
+
'get_analytics_summary',
|
|
47
|
+
{
|
|
48
|
+
description: 'Get a summary of analytics data for a given time range',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
time_range: z.enum(['hour', 'day', 'week', 'month']).optional().describe('Time range for summary (default: day)'),
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
async (args) => callGodot(bridge, 'analytics/get_summary', args),
|
|
54
|
+
);
|
|
55
|
+
// 5. set_user_properties
|
|
56
|
+
server.registerTool(
|
|
57
|
+
'set_user_properties',
|
|
58
|
+
{
|
|
59
|
+
description: 'Set persistent user/player properties for analytics segmentation',
|
|
60
|
+
inputSchema: {
|
|
61
|
+
properties: Properties.describe("User properties as key-value pairs (e.g. {'level': 5, 'premium': true})"),
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
async (args) => callGodot(bridge, 'analytics/set_user_properties', args),
|
|
65
|
+
);
|
|
66
|
+
// 6. get_player_metrics
|
|
67
|
+
server.registerTool(
|
|
68
|
+
'get_player_metrics',
|
|
69
|
+
{
|
|
70
|
+
description: 'Get player engagement metrics: session count, total playtime, and retention data',
|
|
71
|
+
inputSchema: {},
|
|
72
|
+
},
|
|
73
|
+
async () => callGodot(bridge, 'analytics/get_player_metrics'),
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAErF,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAmB;IAC3E,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACf,aAAa,EACb;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE;YACf,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACrF,UAAU,EAAE,kBAAkB;SAC/B;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEJ,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACf,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,6DAA6D,CAAC;YACzF,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC9D;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAA+B,CAAC,CAC7F,CAAC;IAEJ,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACf,aAAa,EACb;QACE,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE;YACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YACzF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAC3E;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEJ,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACf,uBAAuB,EACvB;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACf,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;SAClH;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEJ,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACE,WAAW,EAAE,kEAAkE;QAC/E,WAAW,EAAE;YACf,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,yEAAyE,CAAC;SAC3G;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,EAAE,IAA+B,CAAC,CACpG,CAAC;IAEJ,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACE,WAAW,EAAE,kFAAkF;QAC/F,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAC9D,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Animation tools — 10 tools for animation management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { GodotBridge } from '../godot-bridge.js';
|
|
6
|
+
export declare function registerAnimationTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../src/tools/animation.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,CA0JnF"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Animation tools — 10 tools for animation management
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, NodePath, PositiveNumber, PropertyValue } from './shared-types.js';
|
|
6
|
+
export function registerAnimationTools(server, bridge) {
|
|
7
|
+
// 1. list_animations — {player_path: string} -> animation names
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'list_animations',
|
|
10
|
+
{
|
|
11
|
+
description: 'List all animations on an AnimationPlayer',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
player_path: NodePath.describe('AnimationPlayer node path'),
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
async (args) => callGodot(bridge, 'animation/list', args),
|
|
17
|
+
);
|
|
18
|
+
// 2. create_animation — {player_path: string, name: string, length?: number} -> success
|
|
19
|
+
server.registerTool(
|
|
20
|
+
'create_animation',
|
|
21
|
+
{
|
|
22
|
+
description: 'Create a new animation on an AnimationPlayer',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
player_path: NodePath.describe('AnimationPlayer node path'),
|
|
25
|
+
name: z.string().describe('Animation name'),
|
|
26
|
+
length: PositiveNumber.optional().default(1.0).describe('Animation length in seconds (default: 1.0)'),
|
|
27
|
+
library: z.string().optional().describe('Animation library name (empty for default)'),
|
|
28
|
+
loop_mode: z.enum(['none', 'loop', 'pingpong']).optional().default('none').describe('Animation loop mode'),
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
async (args) => callGodot(bridge, 'animation/create', args),
|
|
32
|
+
);
|
|
33
|
+
// 3. add_animation_track — {player_path: string, animation: string, track_type: "value"|"position"|"rotation"|"scale"|"method"|"bezier", property?: string} -> track index
|
|
34
|
+
server.registerTool(
|
|
35
|
+
'add_animation_track',
|
|
36
|
+
{
|
|
37
|
+
description: 'Add a track to an animation',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
player_path: NodePath.describe('AnimationPlayer node path'),
|
|
40
|
+
animation: z.string().describe('Animation name'),
|
|
41
|
+
track_type: z.enum(['value', 'position', 'rotation', 'scale', 'method', 'bezier']).describe('Type of track to add'),
|
|
42
|
+
property: z.string().optional().describe("Property path for value/bezier tracks (e.g. 'position:x')"),
|
|
43
|
+
library: z.string().optional().describe('Animation library name (empty for default)'),
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
async (args) => callGodot(bridge, 'animation/add_track', args),
|
|
47
|
+
);
|
|
48
|
+
// 4. set_animation_keyframe — {player_path: string, animation: string, track_index: number, time: number, value: any, easing?: number} -> success
|
|
49
|
+
server.registerTool(
|
|
50
|
+
'set_animation_keyframe',
|
|
51
|
+
{
|
|
52
|
+
description: 'Set a keyframe in an animation track',
|
|
53
|
+
inputSchema: {
|
|
54
|
+
player_path: NodePath.describe('AnimationPlayer node path'),
|
|
55
|
+
animation: z.string().describe('Animation name'),
|
|
56
|
+
track_index: z.number().int().min(0).describe('Track index'),
|
|
57
|
+
time: z.number().min(0).describe('Keyframe time in seconds'),
|
|
58
|
+
value: PropertyValue.describe('Keyframe value'),
|
|
59
|
+
library: z.string().optional().describe('Animation library name (empty for default)'),
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
async (args) => callGodot(bridge, 'animation/set_keyframe', args),
|
|
63
|
+
);
|
|
64
|
+
// 5. get_animation_info — {player_path: string, animation: string} -> detailed info
|
|
65
|
+
server.registerTool(
|
|
66
|
+
'get_animation_info',
|
|
67
|
+
{
|
|
68
|
+
description: 'Get detailed information about an animation including tracks and keyframes',
|
|
69
|
+
inputSchema: {
|
|
70
|
+
player_path: NodePath.describe('AnimationPlayer node path'),
|
|
71
|
+
animation: z.string().describe('Animation name'),
|
|
72
|
+
library: z.string().optional().describe('Animation library name (empty for default)'),
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
async (args) => callGodot(bridge, 'animation/get_info', args),
|
|
76
|
+
);
|
|
77
|
+
// 6. remove_animation — {player_path: string, animation: string} -> success
|
|
78
|
+
server.registerTool(
|
|
79
|
+
'remove_animation',
|
|
80
|
+
{
|
|
81
|
+
description: 'Remove an animation from an AnimationPlayer',
|
|
82
|
+
inputSchema: {
|
|
83
|
+
player_path: NodePath.describe('AnimationPlayer node path'),
|
|
84
|
+
animation: z.string().describe('Animation name to remove'),
|
|
85
|
+
library: z.string().optional().describe('Animation library name (empty for default)'),
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
async (args) => callGodot(bridge, 'animation/remove', args),
|
|
89
|
+
);
|
|
90
|
+
// 7. create_animation_tree — {path: string, properties?: Record<string,any>} -> success
|
|
91
|
+
server.registerTool(
|
|
92
|
+
'create_animation_tree',
|
|
93
|
+
{
|
|
94
|
+
description: 'Create an AnimationTree node on a given path',
|
|
95
|
+
inputSchema: {
|
|
96
|
+
path: NodePath.describe('Node path where the AnimationTree will be added'),
|
|
97
|
+
player_path: z.string().optional().describe('AnimationPlayer path'),
|
|
98
|
+
root_type: z.string().optional().describe('Animation root node type (default: AnimationNodeBlendTree)'),
|
|
99
|
+
properties: z.record(z.string(), z.unknown()).optional().describe('Optional properties to set on the AnimationTree'),
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
async (args) => callGodot(bridge, 'animation/create_tree', args),
|
|
103
|
+
);
|
|
104
|
+
// 8. get_animation_tree_structure — {path: string} -> tree structure
|
|
105
|
+
server.registerTool(
|
|
106
|
+
'get_animation_tree_structure',
|
|
107
|
+
{
|
|
108
|
+
description: 'Get the structure of an AnimationTree including state machines and blend trees',
|
|
109
|
+
inputSchema: {
|
|
110
|
+
path: NodePath.describe('AnimationTree node path'),
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
async (args) => callGodot(bridge, 'animation/get_tree_structure', args),
|
|
114
|
+
);
|
|
115
|
+
// 9. set_tree_parameter — {path: string, parameter: string, value: any} -> success
|
|
116
|
+
server.registerTool(
|
|
117
|
+
'set_tree_parameter',
|
|
118
|
+
{
|
|
119
|
+
description: 'Set a parameter on an AnimationTree (e.g. blend amount, state)',
|
|
120
|
+
inputSchema: {
|
|
121
|
+
path: NodePath.describe('AnimationTree node path'),
|
|
122
|
+
parameter: z.string().describe("Parameter path (e.g. 'parameters/blend_position')"),
|
|
123
|
+
value: PropertyValue.describe('Parameter value'),
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
async (args) => callGodot(bridge, 'animation/set_tree_parameter', args),
|
|
127
|
+
);
|
|
128
|
+
// 10. add_state_machine_state — {path: string, state_name: string, animation?: string} -> success
|
|
129
|
+
server.registerTool(
|
|
130
|
+
'add_state_machine_state',
|
|
131
|
+
{
|
|
132
|
+
description: 'Add a state to an AnimationNodeStateMachine',
|
|
133
|
+
inputSchema: {
|
|
134
|
+
path: NodePath.describe('AnimationTree node path'),
|
|
135
|
+
state_name: z.string().describe('Name for the new state'),
|
|
136
|
+
animation: z.string().optional().describe('Animation name to assign to this state'),
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
async (args) => callGodot(bridge, 'animation/add_state', args),
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.js","sourceRoot":"","sources":["../../src/tools/animation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/E,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAmB;IAC3E,gEAAgE;IAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE;YACX,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SAC5D;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,wFAAwF;IACxF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC3C,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACrG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACrF,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SAC3G;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAA+B,CAAC,CACvF,CAAC;IAEF,2KAA2K;IAC3K,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE;YACX,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChD,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBACpE,QAAQ,CAAC,sBAAsB,CAAC;YACnC,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2DAA2D,CAAC;YACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACtF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;IAEF,kJAAkJ;IAClJ,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EAAE,sCAAsC;QACnD,WAAW,EAAE;YACX,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC5D,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACtF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAA+B,CAAC,CAC7F,CAAC;IAEF,oFAAoF;IACpF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,4EAA4E;QACzF,WAAW,EAAE;YACX,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACtF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;IAEF,4EAA4E;IAC5E,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACtF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAA+B,CAAC,CACvF,CAAC;IAEF,wFAAwF;IACxF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YACvG,UAAU,EAAE,CAAC;iBACV,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;SAC/D;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,WAAW,EAAE,gFAAgF;QAC7F,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SACnD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,SAAS,CAAC,MAAM,EAAE,8BAA8B,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,mFAAmF;IACnF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YACnF,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SACjD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,SAAS,CAAC,MAAM,EAAE,8BAA8B,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,kGAAkG;IAClG,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACzD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SACpF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset pipeline tools - 8 tools for asset import, optimization, and management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerAssetPipelineTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=asset_pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset_pipeline.d.ts","sourceRoot":"","sources":["../../src/tools/asset_pipeline.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,CAsGvF"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset pipeline tools - 8 tools for asset import, optimization, and management
|
|
3
|
+
*/
|
|
4
|
+
import { callGodot } from '../server.js';
|
|
5
|
+
import { z, ResourcePath, Properties, OptionalProperties } from './shared-types.js';
|
|
6
|
+
export function registerAssetPipelineTools(server, bridge) {
|
|
7
|
+
// 1. get_import_settings
|
|
8
|
+
server.registerTool(
|
|
9
|
+
'get_import_settings',
|
|
10
|
+
{
|
|
11
|
+
description: 'Get the current import settings for a specific asset',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
asset_path: ResourcePath.describe("Path to the asset (e.g. 'res://assets/sprite.png')"),
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
async (args) => callGodot(bridge, 'asset_pipeline/get_import_settings', args),
|
|
17
|
+
);
|
|
18
|
+
// 2. set_import_settings
|
|
19
|
+
server.registerTool(
|
|
20
|
+
'set_import_settings',
|
|
21
|
+
{
|
|
22
|
+
description: 'Set import settings for a specific asset and trigger reimport',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
asset_path: ResourcePath.describe('Path to the asset'),
|
|
25
|
+
settings: Properties.describe('Import settings to apply'),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
async (args) => callGodot(bridge, 'asset_pipeline/set_import_settings', args),
|
|
29
|
+
);
|
|
30
|
+
// 3. optimize_asset_textures
|
|
31
|
+
server.registerTool(
|
|
32
|
+
'optimize_asset_textures',
|
|
33
|
+
{
|
|
34
|
+
description: 'Optimize textures in the project (resize, compress, convert format)',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
path: z.string().optional().describe('Directory to scan (default: entire project)'),
|
|
37
|
+
max_size: z.number().int().positive().optional().describe('Max texture dimension in pixels'),
|
|
38
|
+
format: z.enum(['webp', 'basis', 'astc']).optional().describe('Target compression format'),
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
async (args) => callGodot(bridge, 'asset_pipeline/optimize_asset_textures', args),
|
|
42
|
+
);
|
|
43
|
+
// 4. compress_audio
|
|
44
|
+
server.registerTool(
|
|
45
|
+
'compress_audio',
|
|
46
|
+
{
|
|
47
|
+
description: 'Compress audio files in the project',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
path: z.string().optional().describe('Directory to scan (default: entire project)'),
|
|
50
|
+
quality: z.enum(['low', 'medium', 'high']).optional().describe('Compression quality (default: medium)'),
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
async (args) => callGodot(bridge, 'asset_pipeline/compress_audio', args),
|
|
54
|
+
);
|
|
55
|
+
// 5. batch_reimport
|
|
56
|
+
server.registerTool(
|
|
57
|
+
'batch_reimport',
|
|
58
|
+
{
|
|
59
|
+
description: 'Reimport assets in batch with optional new settings',
|
|
60
|
+
inputSchema: {
|
|
61
|
+
path: z.string().optional().describe('Directory to reimport (default: entire project)'),
|
|
62
|
+
settings: OptionalProperties.describe('New import settings to apply during reimport'),
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
async (args) => callGodot(bridge, 'asset_pipeline/batch_reimport', args),
|
|
66
|
+
);
|
|
67
|
+
// 6. create_atlas
|
|
68
|
+
server.registerTool(
|
|
69
|
+
'create_atlas',
|
|
70
|
+
{
|
|
71
|
+
description: 'Create a texture atlas from multiple texture files',
|
|
72
|
+
inputSchema: {
|
|
73
|
+
textures: z.array(z.string()).describe('List of texture paths to include in the atlas'),
|
|
74
|
+
max_size: z.number().int().positive().optional().describe('Maximum atlas size in pixels (default: 2048)'),
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
async (args) => callGodot(bridge, 'asset_pipeline/create_atlas', args),
|
|
78
|
+
);
|
|
79
|
+
// 7. validate_assets
|
|
80
|
+
server.registerTool(
|
|
81
|
+
'validate_assets',
|
|
82
|
+
{
|
|
83
|
+
description: 'Validate assets for common issues (missing files, broken references, oversized)',
|
|
84
|
+
inputSchema: {
|
|
85
|
+
path: z.string().optional().describe('Directory to validate (default: entire project)'),
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
async (args) => callGodot(bridge, 'asset_pipeline/validate_assets', args),
|
|
89
|
+
);
|
|
90
|
+
// 8. get_asset_dependencies
|
|
91
|
+
server.registerTool(
|
|
92
|
+
'get_asset_dependencies',
|
|
93
|
+
{
|
|
94
|
+
description: 'Get the dependency tree for a specific asset',
|
|
95
|
+
inputSchema: {
|
|
96
|
+
asset_path: ResourcePath.describe('Path to the asset'),
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
async (args) => callGodot(bridge, 'asset_pipeline/get_asset_dependencies', args),
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=asset_pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset_pipeline.js","sourceRoot":"","sources":["../../src/tools/asset_pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset scaffolding tools - 6 tools for procedural asset generation
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
+
import type { GodotBridge } from "../godot-bridge.js";
|
|
6
|
+
export declare function registerAssetScaffoldingTools(server: McpServer, bridge: GodotBridge): void;
|
|
7
|
+
//# sourceMappingURL=asset_scaffolding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset_scaffolding.d.ts","sourceRoot":"","sources":["../../src/tools/asset_scaffolding.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA+F1F"}
|