@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.
Files changed (285) hide show
  1. package/dist/config.d.ts +30 -0
  2. package/dist/config.d.ts.map +1 -0
  3. package/dist/config.js +28 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/godot-bridge.d.ts +81 -0
  6. package/dist/godot-bridge.d.ts.map +1 -0
  7. package/dist/godot-bridge.js +294 -0
  8. package/dist/godot-bridge.js.map +1 -0
  9. package/dist/index.d.ts +9 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +61 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/server.d.ts +25 -0
  14. package/dist/server.d.ts.map +1 -0
  15. package/dist/server.js +45 -0
  16. package/dist/server.js.map +1 -0
  17. package/dist/tools/accessibility.d.ts +7 -0
  18. package/dist/tools/accessibility.d.ts.map +1 -0
  19. package/dist/tools/accessibility.js +71 -0
  20. package/dist/tools/accessibility.js.map +1 -0
  21. package/dist/tools/addon_management.d.ts +7 -0
  22. package/dist/tools/addon_management.d.ts.map +1 -0
  23. package/dist/tools/addon_management.js +64 -0
  24. package/dist/tools/addon_management.js.map +1 -0
  25. package/dist/tools/analysis.d.ts +7 -0
  26. package/dist/tools/analysis.d.ts.map +1 -0
  27. package/dist/tools/analysis.js +43 -0
  28. package/dist/tools/analysis.js.map +1 -0
  29. package/dist/tools/analytics.d.ts +7 -0
  30. package/dist/tools/analytics.d.ts.map +1 -0
  31. package/dist/tools/analytics.js +76 -0
  32. package/dist/tools/analytics.js.map +1 -0
  33. package/dist/tools/animation.d.ts +7 -0
  34. package/dist/tools/animation.d.ts.map +1 -0
  35. package/dist/tools/animation.js +142 -0
  36. package/dist/tools/animation.js.map +1 -0
  37. package/dist/tools/asset_pipeline.d.ts +7 -0
  38. package/dist/tools/asset_pipeline.d.ts.map +1 -0
  39. package/dist/tools/asset_pipeline.js +102 -0
  40. package/dist/tools/asset_pipeline.js.map +1 -0
  41. package/dist/tools/asset_scaffolding.d.ts +7 -0
  42. package/dist/tools/asset_scaffolding.d.ts.map +1 -0
  43. package/dist/tools/asset_scaffolding.js +113 -0
  44. package/dist/tools/asset_scaffolding.js.map +1 -0
  45. package/dist/tools/audio.d.ts +7 -0
  46. package/dist/tools/audio.d.ts.map +1 -0
  47. package/dist/tools/audio.js +116 -0
  48. package/dist/tools/audio.js.map +1 -0
  49. package/dist/tools/audio_config.d.ts +7 -0
  50. package/dist/tools/audio_config.d.ts.map +1 -0
  51. package/dist/tools/audio_config.js +83 -0
  52. package/dist/tools/audio_config.js.map +1 -0
  53. package/dist/tools/batch.d.ts +7 -0
  54. package/dist/tools/batch.d.ts.map +1 -0
  55. package/dist/tools/batch.js +96 -0
  56. package/dist/tools/batch.js.map +1 -0
  57. package/dist/tools/build_config.d.ts +7 -0
  58. package/dist/tools/build_config.d.ts.map +1 -0
  59. package/dist/tools/build_config.js +98 -0
  60. package/dist/tools/build_config.js.map +1 -0
  61. package/dist/tools/cicd_pipeline.d.ts +7 -0
  62. package/dist/tools/cicd_pipeline.d.ts.map +1 -0
  63. package/dist/tools/cicd_pipeline.js +125 -0
  64. package/dist/tools/cicd_pipeline.js.map +1 -0
  65. package/dist/tools/cloud_services.d.ts +7 -0
  66. package/dist/tools/cloud_services.d.ts.map +1 -0
  67. package/dist/tools/cloud_services.js +97 -0
  68. package/dist/tools/cloud_services.js.map +1 -0
  69. package/dist/tools/code_generation.d.ts +7 -0
  70. package/dist/tools/code_generation.d.ts.map +1 -0
  71. package/dist/tools/code_generation.js +79 -0
  72. package/dist/tools/code_generation.js.map +1 -0
  73. package/dist/tools/code_quality.d.ts +7 -0
  74. package/dist/tools/code_quality.d.ts.map +1 -0
  75. package/dist/tools/code_quality.js +98 -0
  76. package/dist/tools/code_quality.js.map +1 -0
  77. package/dist/tools/collaboration.d.ts +7 -0
  78. package/dist/tools/collaboration.d.ts.map +1 -0
  79. package/dist/tools/collaboration.js +73 -0
  80. package/dist/tools/collaboration.js.map +1 -0
  81. package/dist/tools/debug_config.d.ts +7 -0
  82. package/dist/tools/debug_config.d.ts.map +1 -0
  83. package/dist/tools/debug_config.js +77 -0
  84. package/dist/tools/debug_config.js.map +1 -0
  85. package/dist/tools/debugging.d.ts +7 -0
  86. package/dist/tools/debugging.d.ts.map +1 -0
  87. package/dist/tools/debugging.js +90 -0
  88. package/dist/tools/debugging.js.map +1 -0
  89. package/dist/tools/documentation_tools.d.ts +7 -0
  90. package/dist/tools/documentation_tools.d.ts.map +1 -0
  91. package/dist/tools/documentation_tools.js +89 -0
  92. package/dist/tools/documentation_tools.js.map +1 -0
  93. package/dist/tools/editor.d.ts +7 -0
  94. package/dist/tools/editor.d.ts.map +1 -0
  95. package/dist/tools/editor.js +97 -0
  96. package/dist/tools/editor.js.map +1 -0
  97. package/dist/tools/editor_config.d.ts +7 -0
  98. package/dist/tools/editor_config.d.ts.map +1 -0
  99. package/dist/tools/editor_config.js +92 -0
  100. package/dist/tools/editor_config.js.map +1 -0
  101. package/dist/tools/export.d.ts +7 -0
  102. package/dist/tools/export.d.ts.map +1 -0
  103. package/dist/tools/export.js +81 -0
  104. package/dist/tools/export.js.map +1 -0
  105. package/dist/tools/game_template.d.ts +7 -0
  106. package/dist/tools/game_template.d.ts.map +1 -0
  107. package/dist/tools/game_template.js +112 -0
  108. package/dist/tools/game_template.js.map +1 -0
  109. package/dist/tools/gameplay_automation.d.ts +7 -0
  110. package/dist/tools/gameplay_automation.d.ts.map +1 -0
  111. package/dist/tools/gameplay_automation.js +109 -0
  112. package/dist/tools/gameplay_automation.js.map +1 -0
  113. package/dist/tools/git_integration.d.ts +7 -0
  114. package/dist/tools/git_integration.d.ts.map +1 -0
  115. package/dist/tools/git_integration.js +75 -0
  116. package/dist/tools/git_integration.js.map +1 -0
  117. package/dist/tools/headless_testing.d.ts +7 -0
  118. package/dist/tools/headless_testing.d.ts.map +1 -0
  119. package/dist/tools/headless_testing.js +65 -0
  120. package/dist/tools/headless_testing.js.map +1 -0
  121. package/dist/tools/iap_monetization.d.ts +7 -0
  122. package/dist/tools/iap_monetization.d.ts.map +1 -0
  123. package/dist/tools/iap_monetization.js +70 -0
  124. package/dist/tools/iap_monetization.js.map +1 -0
  125. package/dist/tools/index.d.ts +12 -0
  126. package/dist/tools/index.d.ts.map +1 -0
  127. package/dist/tools/index.js +93 -0
  128. package/dist/tools/index.js.map +1 -0
  129. package/dist/tools/input.d.ts +7 -0
  130. package/dist/tools/input.d.ts.map +1 -0
  131. package/dist/tools/input.js +110 -0
  132. package/dist/tools/input.js.map +1 -0
  133. package/dist/tools/localization.d.ts +7 -0
  134. package/dist/tools/localization.d.ts.map +1 -0
  135. package/dist/tools/localization.js +97 -0
  136. package/dist/tools/localization.js.map +1 -0
  137. package/dist/tools/marketing.d.ts +7 -0
  138. package/dist/tools/marketing.d.ts.map +1 -0
  139. package/dist/tools/marketing.js +87 -0
  140. package/dist/tools/marketing.js.map +1 -0
  141. package/dist/tools/memory_profiling.d.ts +7 -0
  142. package/dist/tools/memory_profiling.d.ts.map +1 -0
  143. package/dist/tools/memory_profiling.js +58 -0
  144. package/dist/tools/memory_profiling.js.map +1 -0
  145. package/dist/tools/mod_support.d.ts +7 -0
  146. package/dist/tools/mod_support.d.ts.map +1 -0
  147. package/dist/tools/mod_support.js +93 -0
  148. package/dist/tools/mod_support.js.map +1 -0
  149. package/dist/tools/navigation.d.ts +7 -0
  150. package/dist/tools/navigation.d.ts.map +1 -0
  151. package/dist/tools/navigation.js +133 -0
  152. package/dist/tools/navigation.js.map +1 -0
  153. package/dist/tools/networking.d.ts +7 -0
  154. package/dist/tools/networking.d.ts.map +1 -0
  155. package/dist/tools/networking.js +94 -0
  156. package/dist/tools/networking.js.map +1 -0
  157. package/dist/tools/node.d.ts +7 -0
  158. package/dist/tools/node.d.ts.map +1 -0
  159. package/dist/tools/node.js +209 -0
  160. package/dist/tools/node.js.map +1 -0
  161. package/dist/tools/node_config.d.ts +7 -0
  162. package/dist/tools/node_config.d.ts.map +1 -0
  163. package/dist/tools/node_config.js +97 -0
  164. package/dist/tools/node_config.js.map +1 -0
  165. package/dist/tools/particles.d.ts +7 -0
  166. package/dist/tools/particles.d.ts.map +1 -0
  167. package/dist/tools/particles.js +118 -0
  168. package/dist/tools/particles.js.map +1 -0
  169. package/dist/tools/performance_optimization.d.ts +7 -0
  170. package/dist/tools/performance_optimization.d.ts.map +1 -0
  171. package/dist/tools/performance_optimization.js +75 -0
  172. package/dist/tools/performance_optimization.js.map +1 -0
  173. package/dist/tools/physics.d.ts +7 -0
  174. package/dist/tools/physics.d.ts.map +1 -0
  175. package/dist/tools/physics.js +106 -0
  176. package/dist/tools/physics.js.map +1 -0
  177. package/dist/tools/physics_config.d.ts +7 -0
  178. package/dist/tools/physics_config.d.ts.map +1 -0
  179. package/dist/tools/physics_config.js +95 -0
  180. package/dist/tools/physics_config.js.map +1 -0
  181. package/dist/tools/platform_export.d.ts +7 -0
  182. package/dist/tools/platform_export.d.ts.map +1 -0
  183. package/dist/tools/platform_export.js +76 -0
  184. package/dist/tools/platform_export.js.map +1 -0
  185. package/dist/tools/platform_specific.d.ts +7 -0
  186. package/dist/tools/platform_specific.d.ts.map +1 -0
  187. package/dist/tools/platform_specific.js +92 -0
  188. package/dist/tools/platform_specific.js.map +1 -0
  189. package/dist/tools/profiling.d.ts +7 -0
  190. package/dist/tools/profiling.d.ts.map +1 -0
  191. package/dist/tools/profiling.js +28 -0
  192. package/dist/tools/profiling.js.map +1 -0
  193. package/dist/tools/project.d.ts +7 -0
  194. package/dist/tools/project.d.ts.map +1 -0
  195. package/dist/tools/project.js +86 -0
  196. package/dist/tools/project.js.map +1 -0
  197. package/dist/tools/project_config.d.ts +7 -0
  198. package/dist/tools/project_config.d.ts.map +1 -0
  199. package/dist/tools/project_config.js +143 -0
  200. package/dist/tools/project_config.js.map +1 -0
  201. package/dist/tools/project_creation.d.ts +7 -0
  202. package/dist/tools/project_creation.d.ts.map +1 -0
  203. package/dist/tools/project_creation.js +147 -0
  204. package/dist/tools/project_creation.js.map +1 -0
  205. package/dist/tools/rendering_config.d.ts +7 -0
  206. package/dist/tools/rendering_config.d.ts.map +1 -0
  207. package/dist/tools/rendering_config.js +110 -0
  208. package/dist/tools/rendering_config.js.map +1 -0
  209. package/dist/tools/resource.d.ts +7 -0
  210. package/dist/tools/resource.d.ts.map +1 -0
  211. package/dist/tools/resource.js +124 -0
  212. package/dist/tools/resource.js.map +1 -0
  213. package/dist/tools/resource_config.d.ts +7 -0
  214. package/dist/tools/resource_config.d.ts.map +1 -0
  215. package/dist/tools/resource_config.js +76 -0
  216. package/dist/tools/resource_config.js.map +1 -0
  217. package/dist/tools/runtime.d.ts +7 -0
  218. package/dist/tools/runtime.d.ts.map +1 -0
  219. package/dist/tools/runtime.js +231 -0
  220. package/dist/tools/runtime.js.map +1 -0
  221. package/dist/tools/save_load.d.ts +7 -0
  222. package/dist/tools/save_load.d.ts.map +1 -0
  223. package/dist/tools/save_load.js +63 -0
  224. package/dist/tools/save_load.js.map +1 -0
  225. package/dist/tools/scene.d.ts +7 -0
  226. package/dist/tools/scene.d.ts.map +1 -0
  227. package/dist/tools/scene.js +129 -0
  228. package/dist/tools/scene.js.map +1 -0
  229. package/dist/tools/scene3d.d.ts +7 -0
  230. package/dist/tools/scene3d.d.ts.map +1 -0
  231. package/dist/tools/scene3d.js +82 -0
  232. package/dist/tools/scene3d.js.map +1 -0
  233. package/dist/tools/scene_config.d.ts +7 -0
  234. package/dist/tools/scene_config.d.ts.map +1 -0
  235. package/dist/tools/scene_config.js +79 -0
  236. package/dist/tools/scene_config.js.map +1 -0
  237. package/dist/tools/scene_scaffolding.d.ts +7 -0
  238. package/dist/tools/scene_scaffolding.d.ts.map +1 -0
  239. package/dist/tools/scene_scaffolding.js +110 -0
  240. package/dist/tools/scene_scaffolding.js.map +1 -0
  241. package/dist/tools/script.d.ts +7 -0
  242. package/dist/tools/script.d.ts.map +1 -0
  243. package/dist/tools/script.js +111 -0
  244. package/dist/tools/script.js.map +1 -0
  245. package/dist/tools/script_scaffolding.d.ts +7 -0
  246. package/dist/tools/script_scaffolding.d.ts.map +1 -0
  247. package/dist/tools/script_scaffolding.js +115 -0
  248. package/dist/tools/script_scaffolding.js.map +1 -0
  249. package/dist/tools/security.d.ts +7 -0
  250. package/dist/tools/security.d.ts.map +1 -0
  251. package/dist/tools/security.js +73 -0
  252. package/dist/tools/security.js.map +1 -0
  253. package/dist/tools/shader.d.ts +7 -0
  254. package/dist/tools/shader.d.ts.map +1 -0
  255. package/dist/tools/shader.js +118 -0
  256. package/dist/tools/shader.js.map +1 -0
  257. package/dist/tools/shared-types.d.ts +138 -0
  258. package/dist/tools/shared-types.d.ts.map +1 -0
  259. package/dist/tools/shared-types.js +170 -0
  260. package/dist/tools/shared-types.js.map +1 -0
  261. package/dist/tools/testing.d.ts +7 -0
  262. package/dist/tools/testing.d.ts.map +1 -0
  263. package/dist/tools/testing.js +78 -0
  264. package/dist/tools/testing.js.map +1 -0
  265. package/dist/tools/theme.d.ts +7 -0
  266. package/dist/tools/theme.d.ts.map +1 -0
  267. package/dist/tools/theme.js +97 -0
  268. package/dist/tools/theme.js.map +1 -0
  269. package/dist/tools/tilemap.d.ts +7 -0
  270. package/dist/tools/tilemap.d.ts.map +1 -0
  271. package/dist/tools/tilemap.js +89 -0
  272. package/dist/tools/tilemap.js.map +1 -0
  273. package/dist/tools/version_control_advanced.d.ts +7 -0
  274. package/dist/tools/version_control_advanced.d.ts.map +1 -0
  275. package/dist/tools/version_control_advanced.js +100 -0
  276. package/dist/tools/version_control_advanced.js.map +1 -0
  277. package/dist/tools/visual_testing.d.ts +7 -0
  278. package/dist/tools/visual_testing.d.ts.map +1 -0
  279. package/dist/tools/visual_testing.js +81 -0
  280. package/dist/tools/visual_testing.js.map +1 -0
  281. package/dist/types.d.ts +77 -0
  282. package/dist/types.d.ts.map +1 -0
  283. package/dist/types.js +37 -0
  284. package/dist/types.js.map +1 -0
  285. package/package.json +49 -0
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Particles tools - 8 tools for particle system management
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, ParentPath, Dimension, Properties, OptionalProperties } from './shared-types.js';
6
+ export function registerParticlesTools(server, bridge) {
7
+ // 1. create_particles
8
+ server.registerTool(
9
+ 'create_particles',
10
+ {
11
+ description: 'Create a GPUParticles2D or GPUParticles3D node',
12
+ inputSchema: {
13
+ parent: ParentPath,
14
+ type: Dimension,
15
+ properties: OptionalProperties,
16
+ },
17
+ },
18
+ async (args) => callGodot(bridge, 'particles/create', args),
19
+ );
20
+ // 8. delete_particles
21
+ server.registerTool(
22
+ 'delete_particles',
23
+ {
24
+ description: 'Delete a particle system node from the scene',
25
+ inputSchema: {
26
+ node_path: NodePath.describe('Path to the particle node to delete'),
27
+ },
28
+ },
29
+ async (args) => callGodot(bridge, 'particles/delete', args),
30
+ );
31
+ // 2. set_particle_material
32
+ server.registerTool(
33
+ 'set_particle_material',
34
+ {
35
+ description: 'Set or create a ParticleProcessMaterial for a particle system',
36
+ inputSchema: {
37
+ path: NodePath.describe('Particle node path'),
38
+ properties: Properties.describe('Process material properties (direction, spread, gravity, initial_velocity, etc.)'),
39
+ },
40
+ },
41
+ async (args) => callGodot(bridge, 'particles/set_material', args),
42
+ );
43
+ // 3. set_particle_color_gradient
44
+ server.registerTool(
45
+ 'set_particle_color_gradient',
46
+ {
47
+ description: 'Set a color gradient on a particle system',
48
+ inputSchema: {
49
+ path: NodePath.describe('Particle node path'),
50
+ gradient: z
51
+ .array(
52
+ z.object({
53
+ offset: z.number().min(0).max(1).describe('Gradient position (0-1)'),
54
+ color: z.string().describe("Color as hex (e.g. '#FF0000FF')"),
55
+ }),
56
+ )
57
+ .describe('Gradient color stops'),
58
+ },
59
+ },
60
+ async (args) => callGodot(bridge, 'particles/set_color_gradient', args),
61
+ );
62
+ // 4. apply_particle_preset
63
+ server.registerTool(
64
+ 'apply_particle_preset',
65
+ {
66
+ description: 'Apply a predefined particle effect preset',
67
+ inputSchema: {
68
+ path: NodePath.describe('Particle node path'),
69
+ preset: z.enum(['fire', 'smoke', 'sparks', 'rain', 'snow']).describe('Particle preset name'),
70
+ },
71
+ },
72
+ async (args) => callGodot(bridge, 'particles/apply_preset', args),
73
+ );
74
+ // 5. get_particle_info
75
+ server.registerTool(
76
+ 'get_particle_info',
77
+ {
78
+ description: "Get information about a particle system's configuration",
79
+ inputSchema: {
80
+ path: NodePath.describe('Particle node path'),
81
+ },
82
+ },
83
+ async (args) => callGodot(bridge, 'particles/get_info', args),
84
+ );
85
+ // 6. set_particle_emission_shape
86
+ server.registerTool(
87
+ 'set_particle_emission_shape',
88
+ {
89
+ description: 'Set the emission shape for a particle system',
90
+ inputSchema: {
91
+ path: NodePath.describe('Particle node path'),
92
+ shape: z.enum(['point', 'sphere', 'box', 'ring']).describe('Emission shape type'),
93
+ size: z.array(z.number()).optional().describe('Shape size parameters'),
94
+ },
95
+ },
96
+ async (args) => callGodot(bridge, 'particles/set_emission_shape', args),
97
+ );
98
+ // 7. set_particle_velocity_curve
99
+ server.registerTool(
100
+ 'set_particle_velocity_curve',
101
+ {
102
+ description: 'Set a velocity curve for a particle system',
103
+ inputSchema: {
104
+ path: NodePath.describe('Particle node path'),
105
+ curve: z
106
+ .array(
107
+ z.object({
108
+ offset: z.number().min(0).max(1).describe('Curve position (0-1)'),
109
+ value: z.number().describe('Velocity value at this point'),
110
+ }),
111
+ )
112
+ .describe('Curve points'),
113
+ },
114
+ },
115
+ async (args) => callGodot(bridge, 'particles/set_velocity_curve', args),
116
+ );
117
+ }
118
+ //# sourceMappingURL=particles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particles.js","sourceRoot":"","sources":["../../src/tools/particles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Performance optimization tools - 6 tools for runtime performance analysis and optimization
3
+ */
4
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import type { GodotBridge } from "../godot-bridge.js";
6
+ export declare function registerPerformanceOptimizationTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=performance_optimization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance_optimization.d.ts","sourceRoot":"","sources":["../../src/tools/performance_optimization.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,oCAAoC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAyEjG"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Performance optimization tools - 6 tools for runtime performance analysis and optimization
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, ScenePath } from './shared-types.js';
6
+ export function registerPerformanceOptimizationTools(server, bridge) {
7
+ // 1. analyze_performance
8
+ server.registerTool(
9
+ 'analyze_performance',
10
+ {
11
+ description: 'Analyze performance of the current or specified scene over a duration',
12
+ inputSchema: {
13
+ scene_path: ScenePath.optional().describe('Path to the scene to analyze (defaults to current scene)'),
14
+ duration: z.number().int().min(1).max(60).optional().describe('Analysis duration in seconds (default: 5)'),
15
+ },
16
+ },
17
+ async (args) => callGodot(bridge, 'analyze_performance', args),
18
+ );
19
+ // 2. suggest_optimizations
20
+ server.registerTool(
21
+ 'suggest_optimizations',
22
+ {
23
+ description: 'Analyze a scene and suggest performance optimizations',
24
+ inputSchema: {
25
+ scene_path: ScenePath.optional().describe('Path to the scene to analyze (defaults to current scene)'),
26
+ },
27
+ },
28
+ async (args) => callGodot(bridge, 'suggest_optimizations', args),
29
+ );
30
+ // 3. auto_optimize
31
+ server.registerTool(
32
+ 'auto_optimize',
33
+ {
34
+ description: 'Automatically apply performance optimizations to achieve a target FPS or quality level',
35
+ inputSchema: {
36
+ target_fps: z.number().int().min(15).max(240).optional().describe('Target frame rate (default: 60)'),
37
+ quality_level: z.enum(['low', 'medium', 'high']).optional().describe('Target quality level (default: medium)'),
38
+ },
39
+ },
40
+ async (args) => callGodot(bridge, 'auto_optimize', args),
41
+ );
42
+ // 4. batch_draw_calls
43
+ server.registerTool(
44
+ 'batch_draw_calls',
45
+ {
46
+ description: 'Analyze and optimize draw calls in a scene to reduce rendering overhead',
47
+ inputSchema: {
48
+ scene_path: ScenePath,
49
+ },
50
+ },
51
+ async (args) => callGodot(bridge, 'batch_draw_calls', args),
52
+ );
53
+ // 5. optimize_textures
54
+ server.registerTool(
55
+ 'optimize_textures',
56
+ {
57
+ description: 'Optimize textures in a directory by resizing and compressing them',
58
+ inputSchema: {
59
+ path: z.string().optional().describe('Directory path to scan for textures (default: res://assets/)'),
60
+ max_size: z.number().int().min(64).max(4096).optional().describe('Maximum texture dimension in pixels (default: 2048)'),
61
+ },
62
+ },
63
+ async (args) => callGodot(bridge, 'optimize_textures', args),
64
+ );
65
+ // 6. profile_loading_times
66
+ server.registerTool(
67
+ 'profile_loading_times',
68
+ {
69
+ description: 'Profile resource loading times and identify bottlenecks',
70
+ inputSchema: {},
71
+ },
72
+ async () => callGodot(bridge, 'profile_loading_times'),
73
+ );
74
+ }
75
+ //# sourceMappingURL=performance_optimization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance_optimization.js","sourceRoot":"","sources":["../../src/tools/performance_optimization.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,oCAAoC,CAAC,MAAiB,EAAE,MAAmB;IACzF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACf,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACrG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SAC3G;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;IAEJ,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACf,uBAAuB,EACvB;QACE,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACf,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SACtG;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEJ,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACf,eAAe,EACf;QACE,WAAW,EAAE,wFAAwF;QACrG,WAAW,EAAE;YACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YACpG,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;SAC/G;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,IAA+B,CAAC,CACpF,CAAC;IAEJ,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;QACE,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE;YACf,UAAU,EAAE,SAAS;SACtB;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,mEAAmE;QAChF,WAAW,EAAE;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;YACpG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;SACxH;KACE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAA+B,CAAC,CACxF,CAAC;IAEJ,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACf,uBAAuB,EACvB;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,CACvD,CAAC;AACN,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Physics tools - 8 tools for physics setup
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerPhysicsTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=physics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics.d.ts","sourceRoot":"","sources":["../../src/tools/physics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAyHjF"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Physics tools - 8 tools for physics setup
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, ParentPath, Properties, OptionalProperties } from './shared-types.js';
6
+ export function registerPhysicsTools(server, bridge) {
7
+ // 1. setup_physics_body
8
+ server.registerTool(
9
+ 'setup_physics_body',
10
+ {
11
+ description: 'Add and configure a physics body on a node',
12
+ inputSchema: {
13
+ path: NodePath.describe('Node to add the physics body to'),
14
+ properties: Properties.describe('Body properties (mass, gravity_scale, etc.)'),
15
+ },
16
+ },
17
+ async (args) => callGodot(bridge, 'physics/setup_body', args),
18
+ );
19
+ // 2. setup_collision
20
+ server.registerTool(
21
+ 'setup_collision',
22
+ {
23
+ description: 'Add and configure a collision shape on a node',
24
+ inputSchema: {
25
+ path: NodePath.describe('Node to add collision to'),
26
+ shape_type: z.enum(['box', 'sphere', 'capsule', 'cylinder', 'convex', 'concave', 'polygon', 'circle', 'rectangle']).describe('Collision shape type'),
27
+ properties: OptionalProperties.describe('Shape properties (size, radius, height, etc.)'),
28
+ },
29
+ },
30
+ async (args) => callGodot(bridge, 'physics/setup_collision', args),
31
+ );
32
+ // 3. set_physics_layers
33
+ server.registerTool(
34
+ 'set_physics_layers',
35
+ {
36
+ description: 'Set physics collision layers and masks on a node',
37
+ inputSchema: {
38
+ path: NodePath.describe('Node with collision object'),
39
+ layer: z.number().int().min(1).max(32).optional().describe('Collision layer (1-32)'),
40
+ mask: z.number().int().min(1).max(32).optional().describe('Collision mask (1-32)'),
41
+ },
42
+ },
43
+ async (args) => callGodot(bridge, 'physics/set_layers', args),
44
+ );
45
+ // 4. get_physics_layers
46
+ server.registerTool(
47
+ 'get_physics_layers',
48
+ {
49
+ description: 'Get physics layer and mask information for a node',
50
+ inputSchema: {
51
+ path: NodePath.describe('Node with collision object'),
52
+ },
53
+ },
54
+ async (args) => callGodot(bridge, 'physics/get_layers', args),
55
+ );
56
+ // 5. get_collision_info
57
+ server.registerTool(
58
+ 'get_collision_info',
59
+ {
60
+ description: 'Get collision information for a physics body',
61
+ inputSchema: {
62
+ path: NodePath.describe('Physics body node path'),
63
+ },
64
+ },
65
+ async (args) => callGodot(bridge, 'physics/get_collision_info', args),
66
+ );
67
+ // 6. add_raycast
68
+ server.registerTool(
69
+ 'add_raycast',
70
+ {
71
+ description: 'Add a RayCast2D or RayCast3D node',
72
+ inputSchema: {
73
+ parent_path: ParentPath,
74
+ properties: OptionalProperties.describe('Raycast properties (target, enabled, collide_with_areas, etc.)'),
75
+ },
76
+ },
77
+ async (args) => callGodot(bridge, 'physics/add_raycast', args),
78
+ );
79
+ // 7. get_physics_material
80
+ server.registerTool(
81
+ 'get_physics_material',
82
+ {
83
+ description: 'Get the physics material properties of a node',
84
+ inputSchema: {
85
+ path: NodePath,
86
+ },
87
+ },
88
+ async (args) => callGodot(bridge, 'physics/get_material', args),
89
+ );
90
+ // 8. set_physics_material
91
+ server.registerTool(
92
+ 'set_physics_material',
93
+ {
94
+ description: 'Create and set a physics material on a node',
95
+ inputSchema: {
96
+ path: NodePath,
97
+ friction: z.number().min(0).optional().describe('Friction coefficient'),
98
+ bounce: z.number().min(0).max(1).optional().describe('Bounce/Restitution coefficient'),
99
+ rough: z.boolean().optional().describe('Whether surface is rough'),
100
+ absorbent: z.boolean().optional().describe('Whether the surface absorbs impact energy'),
101
+ },
102
+ },
103
+ async (args) => callGodot(bridge, 'physics/set_material', args),
104
+ );
105
+ }
106
+ //# sourceMappingURL=physics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics.js","sourceRoot":"","sources":["../../src/tools/physics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5F,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAmB;IACzE,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC1D,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SAC/E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACnD,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC;gBACJ,KAAK;gBACL,QAAQ;gBACR,SAAS;gBACT,UAAU;gBACV,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,WAAW;aACZ,CAAC;iBACD,QAAQ,CAAC,sBAAsB,CAAC;YACnC,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SACzF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,EAAE,IAA+B,CAAC,CAC9F,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACpF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SACnF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SACtD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC;SAClD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,SAAS,CAAC,MAAM,EAAE,4BAA4B,EAAE,IAA+B,CAAC,CACnF,CAAC;IAEF,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE;YACX,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CACrC,gEAAgE,CACjE;SACF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;SACf;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACvE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACtF,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAClE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACxF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Physics configuration tools - 8 tools for physics engine settings
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerPhysicsConfigTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=physics_config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics_config.d.ts","sourceRoot":"","sources":["../../src/tools/physics_config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAmGvF"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Physics configuration tools - 8 tools for physics engine settings
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, Name } from './shared-types.js';
6
+ export function registerPhysicsConfigTools(server, bridge) {
7
+ // 1. get_physics_settings
8
+ server.registerTool(
9
+ 'get_physics_settings',
10
+ {
11
+ description: 'Get all physics engine settings (gravity, FPS, engine, layers, damping)',
12
+ inputSchema: {},
13
+ },
14
+ async () => callGodot(bridge, 'physics_config/get_settings'),
15
+ );
16
+ // 2. set_gravity
17
+ server.registerTool(
18
+ 'set_gravity',
19
+ {
20
+ description: 'Set the default gravity vector for the physics world',
21
+ inputSchema: {
22
+ x: z.number().describe('Gravity X component'),
23
+ y: z.number().describe('Gravity Y component'),
24
+ z: z.number().optional().default(0).describe('Gravity Z component (for 3D, default 0)'),
25
+ },
26
+ },
27
+ async (args) => callGodot(bridge, 'physics_config/set_gravity', args),
28
+ );
29
+ // 3. set_physics_fps
30
+ server.registerTool(
31
+ 'set_physics_fps',
32
+ {
33
+ description: 'Set the physics simulation tick rate',
34
+ inputSchema: {
35
+ fps: z.number().int().min(1).max(240).optional().default(60).describe('Physics ticks per second (default 60)'),
36
+ },
37
+ },
38
+ async (args) => callGodot(bridge, 'physics_config/set_fps', args),
39
+ );
40
+ // 4. set_physics_engine
41
+ server.registerTool(
42
+ 'set_physics_engine',
43
+ {
44
+ description: 'Set which physics engine backend to use',
45
+ inputSchema: {
46
+ engine: z.enum(['default', 'godot_physics', 'jolt']).describe('Physics engine backend'),
47
+ },
48
+ },
49
+ async (args) => callGodot(bridge, 'physics_config/set_engine', args),
50
+ );
51
+ // 5. set_collision_layer_name
52
+ server.registerTool(
53
+ 'set_collision_layer_name',
54
+ {
55
+ description: 'Assign a human-readable name to a collision layer (1-32)',
56
+ inputSchema: {
57
+ layer: z.number().int().min(1).max(32).describe('Layer number (1-32)'),
58
+ name: Name.describe("Layer name (e.g. 'Player', 'Enemies', 'Terrain')"),
59
+ },
60
+ },
61
+ async (args) => callGodot(bridge, 'physics_config/set_layer_name', args),
62
+ );
63
+ // 6. get_collision_layers
64
+ server.registerTool(
65
+ 'get_collision_layers',
66
+ {
67
+ description: 'Get all collision layer names (1-32)',
68
+ inputSchema: {},
69
+ },
70
+ async () => callGodot(bridge, 'physics_config/get_layers'),
71
+ );
72
+ // 7. set_default_gravity
73
+ server.registerTool(
74
+ 'set_default_gravity',
75
+ {
76
+ description: 'Set the default gravity magnitude in project settings',
77
+ inputSchema: {
78
+ value: z.number().describe('Gravity value (980.0 for 2D, 9.8 for 3D)'),
79
+ },
80
+ },
81
+ async (args) => callGodot(bridge, 'physics_config/set_default_gravity', args),
82
+ );
83
+ // 8. set_default_linear_damp
84
+ server.registerTool(
85
+ 'set_default_linear_damp',
86
+ {
87
+ description: 'Set the default linear damping for physics bodies',
88
+ inputSchema: {
89
+ value: z.number().min(0).optional().default(0.1).describe('Linear damping value (default 0.1)'),
90
+ },
91
+ },
92
+ async (args) => callGodot(bridge, 'physics_config/set_default_linear_damp', args),
93
+ );
94
+ }
95
+ //# sourceMappingURL=physics_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics_config.js","sourceRoot":"","sources":["../../src/tools/physics_config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Platform export tools - 6 tools for multi-platform export management
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerPlatformExportTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=platform_export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_export.d.ts","sourceRoot":"","sources":["../../src/tools/platform_export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgFxF"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Platform export tools - 6 tools for multi-platform export management
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, Name, FilePath, OptionalProperties } from './shared-types.js';
6
+ export function registerPlatformExportTools(server, bridge) {
7
+ // 1. export_for_platform
8
+ server.registerTool(
9
+ 'export_for_platform',
10
+ {
11
+ description: 'Export the project for a specific platform',
12
+ inputSchema: {
13
+ platform: z.enum(['windows', 'linux', 'macos', 'android', 'ios', 'web']).describe('Target platform'),
14
+ debug: z.boolean().optional().default(false).describe('Export as debug build (default: false = release)'),
15
+ },
16
+ },
17
+ async (args) => callGodot(bridge, 'export_for_platform', args),
18
+ );
19
+ // 2. validate_platform_export
20
+ server.registerTool(
21
+ 'validate_platform_export',
22
+ {
23
+ description: 'Validate the project for export on a specific platform, checking for issues',
24
+ inputSchema: {
25
+ platform: z.string().describe('Platform to validate for'),
26
+ },
27
+ },
28
+ async (args) => callGodot(bridge, 'validate_platform_export', args),
29
+ );
30
+ // 3. get_platform_export_templates
31
+ server.registerTool(
32
+ 'get_platform_export_templates',
33
+ {
34
+ description: 'Get available export templates installed for the current Godot version',
35
+ inputSchema: {},
36
+ },
37
+ async () => callGodot(bridge, 'get_platform_export_templates'),
38
+ );
39
+ // 4. create_platform_export_preset
40
+ server.registerTool(
41
+ 'create_platform_export_preset',
42
+ {
43
+ description: 'Create a new export preset for a specific platform with optional custom settings',
44
+ inputSchema: {
45
+ platform: z.string().describe("Target platform (e.g. 'Windows Desktop', 'Linux', 'Android', 'Web')"),
46
+ name: Name.describe('Preset name'),
47
+ settings: OptionalProperties,
48
+ },
49
+ },
50
+ async (args) => callGodot(bridge, 'create_platform_export_preset', args),
51
+ );
52
+ // 5. run_exported_build
53
+ server.registerTool(
54
+ 'run_exported_build',
55
+ {
56
+ description: 'Run an exported build and capture its output',
57
+ inputSchema: {
58
+ path: FilePath.describe('Path to the exported executable'),
59
+ args: z.array(z.string()).optional().describe('Command-line arguments for the build'),
60
+ },
61
+ },
62
+ async (args) => callGodot(bridge, 'run_exported_build', args),
63
+ );
64
+ // 6. validate_export_for_platform
65
+ server.registerTool(
66
+ 'validate_export_for_platform',
67
+ {
68
+ description: 'Validate the project for export on a specific platform with detailed checks',
69
+ inputSchema: {
70
+ platform: z.string().describe('Platform to validate for'),
71
+ },
72
+ },
73
+ async (args) => callGodot(bridge, 'export/validate_platform', args),
74
+ );
75
+ }
76
+ //# sourceMappingURL=platform_export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_export.js","sourceRoot":"","sources":["../../src/tools/platform_export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,MAAmB;IAChF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBAC5D,QAAQ,CAAC,iBAAiB,CAAC;YAC9B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;SAC1G;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;SAC1D;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,EAAE,IAA+B,CAAC,CAC/F,CAAC;IAEF,mCAAmC;IACnC,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAC/D,CAAC;IAEF,mCAAmC;IACnC,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,WAAW,EACT,kFAAkF;QACpF,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,qEAAqE,CAAC;YAClF,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClC,QAAQ,EAAE,kBAAkB;SAC7B;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,SAAS,CAAC,MAAM,EAAE,+BAA+B,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC1D,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACtF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAA+B,CAAC,CACzF,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;SAC1D;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,EAAE,IAA+B,CAAC,CAC/F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Platform-specific tools - 6 tools for platform configuration and validation
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerPlatformSpecificTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=platform_specific.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform_specific.d.ts","sourceRoot":"","sources":["../../src/tools/platform_specific.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,CAwG1F"}