@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,63 @@
1
+ /**
2
+ * Save/Load tools - 5 tools for game save system testing
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, OptionalProperties } from './shared-types.js';
6
+ export function registerSaveLoadTools(server, bridge) {
7
+ // 1. save_game_state
8
+ server.registerTool(
9
+ 'save_game_state',
10
+ {
11
+ description: 'Save the current game state to a numbered slot with optional metadata',
12
+ inputSchema: {
13
+ slot: z.number().int().min(0).max(99).describe('Save slot number (0-99)'),
14
+ metadata: OptionalProperties.describe('Optional metadata to store with the save (e.g. player name, level, timestamp)'),
15
+ },
16
+ },
17
+ async (args) => callGodot(bridge, 'save_game_state', args),
18
+ );
19
+ // 2. load_game_state
20
+ server.registerTool(
21
+ 'load_game_state',
22
+ {
23
+ description: 'Load a game state from a numbered save slot',
24
+ inputSchema: {
25
+ slot: z.number().int().min(0).max(99).describe('Save slot number to load (0-99)'),
26
+ },
27
+ },
28
+ async (args) => callGodot(bridge, 'load_game_state', args),
29
+ );
30
+ // 3. list_save_files
31
+ server.registerTool(
32
+ 'list_save_files',
33
+ {
34
+ description: 'List all save files with their metadata',
35
+ inputSchema: {},
36
+ },
37
+ async () => callGodot(bridge, 'list_save_files'),
38
+ );
39
+ // 4. delete_save_file
40
+ server.registerTool(
41
+ 'delete_save_file',
42
+ {
43
+ description: 'Delete a save file from a specific slot',
44
+ inputSchema: {
45
+ slot: z.number().int().min(0).max(99).describe('Save slot number to delete (0-99)'),
46
+ },
47
+ },
48
+ async (args) => callGodot(bridge, 'delete_save_file', args),
49
+ );
50
+ // 5. compare_save_states
51
+ server.registerTool(
52
+ 'compare_save_states',
53
+ {
54
+ description: 'Compare two save states and return a diff of their contents',
55
+ inputSchema: {
56
+ slot_a: z.number().int().min(0).max(99).describe('First save slot to compare (0-99)'),
57
+ slot_b: z.number().int().min(0).max(99).describe('Second save slot to compare (0-99)'),
58
+ },
59
+ },
60
+ async (args) => callGodot(bridge, 'compare_save_states', args),
61
+ );
62
+ }
63
+ //# sourceMappingURL=save_load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save_load.js","sourceRoot":"","sources":["../../src/tools/save_load.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAmB;IAC1E,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACzE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CACnC,+EAA+E,CAChF;SACF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAClF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACpF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAA+B,CAAC,CACvF,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACvF;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
+ * Scene tools - 11 tools for scene management
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerSceneTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/tools/scene.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAuI/E"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Scene tools - 11 tools for scene management
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, ScenePath } from './shared-types.js';
6
+ export function registerSceneTools(server, bridge) {
7
+ // 1. get_scene_tree
8
+ server.registerTool(
9
+ 'get_scene_tree',
10
+ {
11
+ description: 'Get the node tree of the specified or currently open scene',
12
+ inputSchema: {
13
+ max_depth: z.number().int().positive().optional().default(15).describe('Maximum tree depth to serialize (default: 15)'),
14
+ },
15
+ },
16
+ async (args) => callGodot(bridge, 'scene/get_tree', args),
17
+ );
18
+ // 2. get_scene_file_content
19
+ server.registerTool(
20
+ 'get_scene_file_content',
21
+ {
22
+ description: 'Read the raw .tscn/.scn file content of a scene',
23
+ inputSchema: {
24
+ path: ScenePath,
25
+ },
26
+ },
27
+ async (args) => callGodot(bridge, 'scene/get_file_content', args),
28
+ );
29
+ // 3. create_scene
30
+ server.registerTool(
31
+ 'create_scene',
32
+ {
33
+ description: 'Create a new empty scene with a specified root node type',
34
+ inputSchema: {
35
+ path: ScenePath.describe("Path to save the scene (e.g. 'res://scenes/new.tscn')"),
36
+ root_node_type: z.string().optional().describe("Root node type (e.g. 'Node2D', 'Control')"),
37
+ },
38
+ },
39
+ async (args) => callGodot(bridge, 'scene/create', args),
40
+ );
41
+ // 4. open_scene
42
+ server.registerTool(
43
+ 'open_scene',
44
+ {
45
+ description: 'Open a scene file in the editor',
46
+ inputSchema: {
47
+ path: ScenePath.describe('Scene file path to open'),
48
+ },
49
+ },
50
+ async (args) => callGodot(bridge, 'scene/open', args),
51
+ );
52
+ // 5. delete_scene
53
+ server.registerTool(
54
+ 'delete_scene',
55
+ {
56
+ description: 'Delete a scene file from the project',
57
+ inputSchema: {
58
+ path: ScenePath.describe('Scene file path to delete'),
59
+ force: z.boolean().optional().describe('Force close and delete if scene is currently open'),
60
+ },
61
+ },
62
+ async (args) => callGodot(bridge, 'scene/delete', args),
63
+ );
64
+ // 6. add_scene_instance
65
+ server.registerTool(
66
+ 'add_scene_instance',
67
+ {
68
+ description: 'Add an instance of a scene as a child of a node in the current scene',
69
+ inputSchema: {
70
+ scene_path: ScenePath.describe('Path to the scene to instantiate'),
71
+ parent_path: z.string().optional().describe('Parent node path, defaults to scene root'),
72
+ },
73
+ },
74
+ async (args) => callGodot(bridge, 'scene/add_instance', args),
75
+ );
76
+ // 7. play_scene
77
+ server.registerTool(
78
+ 'play_scene',
79
+ {
80
+ description: 'Start playing the current or specified scene',
81
+ inputSchema: {
82
+ mode: z.enum(['main', 'current', 'custom']).optional().describe("Play mode: 'main', 'current', or 'custom'"),
83
+ scene_path: z.string().optional().describe("Scene to play when mode is 'custom'"),
84
+ },
85
+ },
86
+ async (args) => callGodot(bridge, 'scene/play', args),
87
+ );
88
+ // 8. stop_scene
89
+ server.registerTool(
90
+ 'stop_scene',
91
+ {
92
+ description: 'Stop the currently playing scene',
93
+ inputSchema: {},
94
+ },
95
+ async () => callGodot(bridge, 'scene/stop'),
96
+ );
97
+ // 9. save_scene
98
+ server.registerTool(
99
+ 'save_scene',
100
+ {
101
+ description: 'Save the current scene or save it to a new path',
102
+ inputSchema: {
103
+ path: z.string().optional().describe('Path of the scene to save (defaults to current)'),
104
+ },
105
+ },
106
+ async (args) => callGodot(bridge, 'scene/save', args),
107
+ );
108
+ // 10. get_loaded_scenes
109
+ server.registerTool(
110
+ 'get_loaded_scenes',
111
+ {
112
+ description: 'Get a list of all currently loaded scenes in the editor',
113
+ inputSchema: {},
114
+ },
115
+ async () => callGodot(bridge, 'scene/get_loaded'),
116
+ );
117
+ // 11. set_main_scene
118
+ server.registerTool(
119
+ 'set_main_scene',
120
+ {
121
+ description: "Set the project's main scene",
122
+ inputSchema: {
123
+ path: ScenePath.describe('Scene file path to set as main scene'),
124
+ },
125
+ },
126
+ async (args) => callGodot(bridge, 'scene/set_main', args),
127
+ );
128
+ }
129
+ //# sourceMappingURL=scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/tools/scene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Scene3D tools - 6 tools for 3D scene manipulation
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerScene3dTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=scene3d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene3d.d.ts","sourceRoot":"","sources":["../../src/tools/scene3d.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,CA4FjF"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Scene3D tools - 6 tools for 3D scene manipulation
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, ParentPath, Properties, OptionalProperties } from './shared-types.js';
6
+ export function registerScene3dTools(server, bridge) {
7
+ // 1. add_mesh_instance
8
+ server.registerTool(
9
+ 'add_mesh_instance',
10
+ {
11
+ description: 'Add a MeshInstance3D with a primitive mesh type',
12
+ inputSchema: {
13
+ parent: ParentPath,
14
+ mesh_type: z.enum(['cube', 'sphere', 'cylinder', 'capsule', 'plane', 'prism', 'torus']).describe('Primitive mesh type'),
15
+ properties: OptionalProperties.describe('Mesh properties (size, material_path, etc.)'),
16
+ },
17
+ },
18
+ async (args) => callGodot(bridge, 'scene3d/add_mesh', args),
19
+ );
20
+ // 2. setup_camera_3d
21
+ server.registerTool(
22
+ 'setup_camera_3d',
23
+ {
24
+ description: 'Add and configure a Camera3D node',
25
+ inputSchema: {
26
+ path: NodePath.describe('Camera node path'),
27
+ properties: Properties.describe('Camera properties (fov, near, far, position, look_at, make_current, etc.)'),
28
+ },
29
+ },
30
+ async (args) => callGodot(bridge, 'scene3d/setup_camera', args),
31
+ );
32
+ // 3. setup_lighting
33
+ server.registerTool(
34
+ 'setup_lighting',
35
+ {
36
+ description: 'Add a light node (DirectionalLight3D, OmniLight3D, SpotLight3D)',
37
+ inputSchema: {
38
+ parent: ParentPath,
39
+ type: z.enum(['omni', 'spot', 'directional']).describe('Light type'),
40
+ properties: OptionalProperties.describe('Light properties (color, energy, position, shadow_enabled, etc.)'),
41
+ },
42
+ },
43
+ async (args) => callGodot(bridge, 'scene3d/setup_lighting', args),
44
+ );
45
+ // 4. setup_environment
46
+ server.registerTool(
47
+ 'setup_environment',
48
+ {
49
+ description: 'Configure the WorldEnvironment for the 3D scene',
50
+ inputSchema: {
51
+ path: NodePath.describe('WorldEnvironment node path'),
52
+ properties: Properties.describe('Environment properties (background_mode, background_color, ambient_light_color, fog_enabled, glow_enabled, etc.)'),
53
+ },
54
+ },
55
+ async (args) => callGodot(bridge, 'scene3d/setup_environment', args),
56
+ );
57
+ // 5. add_gridmap
58
+ server.registerTool(
59
+ 'add_gridmap',
60
+ {
61
+ description: 'Add a GridMap node for 3D tile-based level design',
62
+ inputSchema: {
63
+ parent: ParentPath,
64
+ properties: OptionalProperties.describe('GridMap properties (mesh_library_path, cell_size, etc.)'),
65
+ },
66
+ },
67
+ async (args) => callGodot(bridge, 'scene3d/add_gridmap', args),
68
+ );
69
+ // 6. set_material_3d
70
+ server.registerTool(
71
+ 'set_material_3d',
72
+ {
73
+ description: 'Create and apply a StandardMaterial3D or ShaderMaterial to a mesh',
74
+ inputSchema: {
75
+ path: NodePath.describe('MeshInstance3D node path'),
76
+ properties: Properties.describe('Material properties (albedo_color, metallic, roughness, shader_path, etc.)'),
77
+ },
78
+ },
79
+ async (args) => callGodot(bridge, 'scene3d/set_material', args),
80
+ );
81
+ }
82
+ //# sourceMappingURL=scene3d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene3d.js","sourceRoot":"","sources":["../../src/tools/scene3d.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Scene configuration tools - 6 tools for scene metadata and properties
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerSceneConfigTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=scene_config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene_config.d.ts","sourceRoot":"","sources":["../../src/tools/scene_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,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA+ErF"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Scene configuration tools - 6 tools for scene metadata and properties
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, OptionalScenePath } from './shared-types.js';
6
+ export function registerSceneConfigTools(server, bridge) {
7
+ // 1. get_scene_inheritance
8
+ server.registerTool(
9
+ 'get_scene_inheritance',
10
+ {
11
+ description: 'Get the scene inheritance chain (instantiated scenes, inherited scenes)',
12
+ inputSchema: {
13
+ scene_path: OptionalScenePath.describe('Scene file path (empty for current scene)'),
14
+ },
15
+ },
16
+ async (args) => callGodot(bridge, 'scene_config/get_inheritance', args),
17
+ );
18
+ // 2. set_scene_unique_name
19
+ server.registerTool(
20
+ 'set_scene_unique_name',
21
+ {
22
+ description: 'Toggle the unique name flag on a node (accessible as %NodeName)',
23
+ inputSchema: {
24
+ node_path: NodePath.describe('Node path within the scene'),
25
+ unique: z.boolean().optional().default(true).describe('Enable (true) or disable (false) unique name (default: true)'),
26
+ },
27
+ },
28
+ async (args) => callGodot(bridge, 'scene_config/set_unique_name', args),
29
+ );
30
+ // 3. get_scene_groups
31
+ server.registerTool(
32
+ 'get_scene_groups',
33
+ {
34
+ description: 'Get all groups used in a scene and which nodes belong to each',
35
+ inputSchema: {
36
+ scene_path: OptionalScenePath.describe('Scene file path (empty for current scene)'),
37
+ },
38
+ },
39
+ async (args) => callGodot(bridge, 'scene_config/get_groups', args),
40
+ );
41
+ // 4. set_scene_group
42
+ server.registerTool(
43
+ 'set_scene_group',
44
+ {
45
+ description: 'Add or remove a node from a group',
46
+ inputSchema: {
47
+ node_path: NodePath.describe('Node path within the current scene'),
48
+ group: z.string().describe('Group name'),
49
+ add: z.boolean().optional().default(true).describe('true to add to group, false to remove (default: true)'),
50
+ },
51
+ },
52
+ async (args) => callGodot(bridge, 'scene_config/set_group', args),
53
+ );
54
+ // 5. get_scene_meta
55
+ server.registerTool(
56
+ 'get_scene_meta',
57
+ {
58
+ description: "Get metadata stored on a scene's root node",
59
+ inputSchema: {
60
+ scene_path: OptionalScenePath.describe('Scene file path (empty for current scene)'),
61
+ },
62
+ },
63
+ async (args) => callGodot(bridge, 'scene_config/get_meta', args),
64
+ );
65
+ // 6. set_scene_meta
66
+ server.registerTool(
67
+ 'set_scene_meta',
68
+ {
69
+ description: "Set metadata on the current scene's root node",
70
+ inputSchema: {
71
+ scene_path: z.string().optional().describe('Omit or pass empty string — only the current scene is supported'),
72
+ key: z.string().describe('Metadata key'),
73
+ value: z.unknown().describe('Metadata value (string, number, bool, array, or dict)'),
74
+ },
75
+ },
76
+ async (args) => callGodot(bridge, 'scene_config/set_meta', args),
77
+ );
78
+ }
79
+ //# sourceMappingURL=scene_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene_config.js","sourceRoot":"","sources":["../../src/tools/scene_config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Scene scaffolding tools - 8 tools for scene template creation
3
+ */
4
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import type { GodotBridge } from "../godot-bridge.js";
6
+ export declare function registerSceneScaffoldingTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=scene_scaffolding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene_scaffolding.d.ts","sourceRoot":"","sources":["../../src/tools/scene_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,CA8G1F"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Scene scaffolding tools - 8 tools for scene template creation
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, FilePath, Name, Dimension } from './shared-types.js';
6
+ export function registerSceneScaffoldingTools(server, bridge) {
7
+ // 1. create_main_scene
8
+ server.registerTool(
9
+ 'create_main_scene',
10
+ {
11
+ description: 'Create a main scene for the game with appropriate root node and basic setup',
12
+ inputSchema: {
13
+ project_path: FilePath.describe('Path to the Godot project root'),
14
+ type: z.enum(['2d', '3d', 'ui']).describe('Scene dimension type'),
15
+ name: Name.optional().describe("Scene name (defaults to 'Main')"),
16
+ },
17
+ },
18
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_main_scene', args),
19
+ );
20
+ // 2. create_player_scene
21
+ server.registerTool(
22
+ 'create_player_scene',
23
+ {
24
+ description: 'Create a player character scene with physics body, collision, and controller script',
25
+ inputSchema: {
26
+ project_path: FilePath.describe('Path to the Godot project root'),
27
+ type: Dimension,
28
+ controller: z.enum(['platformer', 'top_down', 'fps', 'custom']).optional().describe('Movement controller style'),
29
+ },
30
+ },
31
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_player_scene', args),
32
+ );
33
+ // 3. create_enemy_scene
34
+ server.registerTool(
35
+ 'create_enemy_scene',
36
+ {
37
+ description: 'Create an enemy scene with physics body, collision, and basic AI behavior',
38
+ inputSchema: {
39
+ project_path: FilePath.describe('Path to the Godot project root'),
40
+ type: Dimension,
41
+ ai_type: z.enum(['patrol', 'chase', 'stationary']).optional().describe('Enemy AI behavior type'),
42
+ },
43
+ },
44
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_enemy_scene', args),
45
+ );
46
+ // 4. create_level_scene
47
+ server.registerTool(
48
+ 'create_level_scene',
49
+ {
50
+ description: 'Create a level/zone scene with optional template layout',
51
+ inputSchema: {
52
+ project_path: FilePath.describe('Path to the Godot project root'),
53
+ type: Dimension,
54
+ template: z.enum(['empty', 'platformer', 'dungeon', 'open_world']).optional().describe('Level layout template'),
55
+ },
56
+ },
57
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_level_scene', args),
58
+ );
59
+ // 5. create_ui_scene
60
+ server.registerTool(
61
+ 'create_ui_scene',
62
+ {
63
+ description: 'Create a UI scene from a predefined template (main menu, HUD, pause, inventory, dialog)',
64
+ inputSchema: {
65
+ project_path: FilePath.describe('Path to the Godot project root'),
66
+ template: z.enum(['main_menu', 'hud', 'pause_menu', 'inventory', 'dialog']).optional().describe('UI template type'),
67
+ },
68
+ },
69
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_ui_scene', args),
70
+ );
71
+ // 6. create_camera_scene
72
+ server.registerTool(
73
+ 'create_camera_scene',
74
+ {
75
+ description: 'Create a reusable camera scene with configurable follow and zoom behavior',
76
+ inputSchema: {
77
+ project_path: FilePath.describe('Path to the Godot project root'),
78
+ type: Dimension.describe('Camera dimension type'),
79
+ follow: z.boolean().optional().describe('Enable smooth follow on a target'),
80
+ zoom: z.boolean().optional().describe('Enable zoom controls'),
81
+ },
82
+ },
83
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_camera_scene', args),
84
+ );
85
+ // 7. create_hud_scene
86
+ server.registerTool(
87
+ 'create_hud_scene',
88
+ {
89
+ description: 'Create a HUD scene with specified UI elements (health bar, score, timer, minimap, inventory)',
90
+ inputSchema: {
91
+ project_path: FilePath.describe('Path to the Godot project root'),
92
+ elements: z.array(z.enum(['health', 'score', 'timer', 'minimap', 'inventory'])).describe('HUD elements to include'),
93
+ },
94
+ },
95
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_hud_scene', args),
96
+ );
97
+ // 8. create_dialog_scene
98
+ server.registerTool(
99
+ 'create_dialog_scene',
100
+ {
101
+ description: 'Create a dialog/conversation scene with text display and choice buttons',
102
+ inputSchema: {
103
+ project_path: FilePath.describe('Path to the Godot project root'),
104
+ style: z.enum(['visual_novel', 'rpg', 'modern']).optional().describe('Dialog visual style'),
105
+ },
106
+ },
107
+ async (args) => callGodot(bridge, 'scene_scaffolding/create_dialog_scene', args),
108
+ );
109
+ }
110
+ //# sourceMappingURL=scene_scaffolding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene_scaffolding.js","sourceRoot":"","sources":["../../src/tools/scene_scaffolding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Script tools - 9 tools for script management
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerScriptTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/tools/script.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgHhF"}