@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,133 @@
1
+ /**
2
+ * Navigation tools - 10 tools for navigation system
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, OptionalProperties, OptionalDimension } from './shared-types.js';
6
+ export function registerNavigationTools(server, bridge) {
7
+ // 1. setup_navigation_region
8
+ server.registerTool(
9
+ 'setup_navigation_region',
10
+ {
11
+ description: 'Add a NavigationRegion2D or NavigationRegion3D with optional configuration',
12
+ inputSchema: {
13
+ parent_path: z.string().optional().describe('Parent node path (omit for scene root)'),
14
+ dimension: OptionalDimension.default('2d').describe('Navigation dimension (default: 2d)'),
15
+ name: z.string().optional().describe('Node name'),
16
+ path: NodePath.describe('Node path for the navigation region'),
17
+ properties: OptionalProperties.describe('Region properties (navigation_mesh, enabled, etc.)'),
18
+ },
19
+ },
20
+ async (args) => callGodot(bridge, 'navigation/setup_region', args),
21
+ );
22
+ // 2. setup_navigation_agent
23
+ server.registerTool(
24
+ 'setup_navigation_agent',
25
+ {
26
+ description: 'Add a NavigationAgent2D or NavigationAgent3D to a node',
27
+ inputSchema: {
28
+ parent_path: z.string().optional().describe('Parent node path (omit for scene root)'),
29
+ dimension: OptionalDimension.default('2d').describe('Navigation dimension (default: 2d)'),
30
+ name: z.string().optional().describe('Node name'),
31
+ path: NodePath.describe('Node path for the navigation agent'),
32
+ properties: OptionalProperties.describe('Agent properties (radius, speed, path_desired_distance, etc.)'),
33
+ },
34
+ },
35
+ async (args) => callGodot(bridge, 'navigation/setup_agent', args),
36
+ );
37
+ // 3. bake_navigation_mesh
38
+ server.registerTool(
39
+ 'bake_navigation_mesh',
40
+ {
41
+ description: 'Bake the navigation mesh for a NavigationRegion',
42
+ inputSchema: {
43
+ path: NodePath.describe('NavigationRegion node path'),
44
+ properties: OptionalProperties.describe('Bake configuration (cell_size, cell_height, agent_radius, etc.)'),
45
+ },
46
+ },
47
+ async (args) => callGodot(bridge, 'navigation/bake_mesh', args),
48
+ );
49
+ // 4. set_navigation_layers
50
+ server.registerTool(
51
+ 'set_navigation_layers',
52
+ {
53
+ description: 'Set navigation layers and/or mask for pathfinding filtering',
54
+ inputSchema: {
55
+ path: NodePath.describe('Navigation node path'),
56
+ layer: z.number().int().min(1).max(32).optional().describe('Navigation layer (1-32)'),
57
+ },
58
+ },
59
+ async (args) => callGodot(bridge, 'navigation/set_layers', args),
60
+ );
61
+ // 5. get_navigation_info
62
+ server.registerTool(
63
+ 'get_navigation_info',
64
+ {
65
+ description: 'Get navigation map information and navigation mesh data',
66
+ inputSchema: {
67
+ path: NodePath.describe('NavigationRegion node path'),
68
+ },
69
+ },
70
+ async (args) => callGodot(bridge, 'navigation/get_info', args),
71
+ );
72
+ // 6. find_navigation_path
73
+ server.registerTool(
74
+ 'find_navigation_path',
75
+ {
76
+ description: 'Find a navigation path between two points',
77
+ inputSchema: {
78
+ start: z.array(z.number()).describe('Start position [x, y] or [x, y, z]'),
79
+ end: z.array(z.number()).describe('End position [x, y] or [x, y, z]'),
80
+ dimension: OptionalDimension,
81
+ },
82
+ },
83
+ async (args) => callGodot(bridge, 'navigation/find_path', args),
84
+ );
85
+ // 7. setup_navigation_link
86
+ server.registerTool(
87
+ 'setup_navigation_link',
88
+ {
89
+ description: 'Add a NavigationLink2D or NavigationLink3D for connecting navigation regions',
90
+ inputSchema: {
91
+ parent_path: z.string().optional().describe('Parent node path (omit for scene root)'),
92
+ dimension: OptionalDimension.default('2d').describe('Navigation dimension (default: 2d)'),
93
+ name: z.string().optional().describe('Node name'),
94
+ properties: OptionalProperties.describe('Link properties (start_position, end_position, bidirectional, enabled, navigation_layers)'),
95
+ },
96
+ },
97
+ async (args) => callGodot(bridge, 'navigation/setup_link', args),
98
+ );
99
+ // 8. remove_navigation_region
100
+ server.registerTool(
101
+ 'remove_navigation_region',
102
+ {
103
+ description: 'Remove a navigation region node from the scene',
104
+ inputSchema: {
105
+ node_path: NodePath.describe('Path to the navigation region node to remove'),
106
+ },
107
+ },
108
+ async (args) => callGodot(bridge, 'navigation/remove_region', args),
109
+ );
110
+ // 9. remove_navigation_agent
111
+ server.registerTool(
112
+ 'remove_navigation_agent',
113
+ {
114
+ description: 'Remove a navigation agent node from the scene',
115
+ inputSchema: {
116
+ node_path: NodePath.describe('Path to the navigation agent node to remove'),
117
+ },
118
+ },
119
+ async (args) => callGodot(bridge, 'navigation/remove_agent', args),
120
+ );
121
+ // 10. remove_navigation_link
122
+ server.registerTool(
123
+ 'remove_navigation_link',
124
+ {
125
+ description: 'Remove a navigation link node from the scene',
126
+ inputSchema: {
127
+ node_path: NodePath.describe('Path to the navigation link node to remove'),
128
+ },
129
+ },
130
+ async (args) => callGodot(bridge, 'navigation/remove_link', args),
131
+ );
132
+ }
133
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAmB;IAC5E,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EAAE,4EAA4E;QACzF,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACrF,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAC9D,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CACrC,oDAAoD,CACrD;SACF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,EAAE,IAA+B,CAAC,CAC9F,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACrF,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC7D,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CACrC,+DAA+D,CAChE;SACF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAA+B,CAAC,CAC7F,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACrD,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,iEAAiE,CAAC;SAC3G;KACF,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,6DAA6D;QAC1E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC/C,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,yBAAyB,CAAC;SACtF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SACtD;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,2CAA2C;QACxD,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACzE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACrE,SAAS,EAAE,iBAAiB;SAC7B;KACF,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;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACrF,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CACrC,2FAA2F,CAC5F;SACF;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAA+B,CAAC,CAC5F,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE;YACX,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,8CAA8C,CAAC;SAC7E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,0BAA0B,EAAE,IAA+B,CAAC,CAC/F,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACX,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SAC5E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,EAAE,IAA+B,CAAC,CAC9F,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SAC3E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAA+B,CAAC,CAC7F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Networking tools - 8 tools for multiplayer and network management
3
+ */
4
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import type { GodotBridge } from "../godot-bridge.js";
6
+ export declare function registerNetworkingTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=networking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networking.d.ts","sourceRoot":"","sources":["../../src/tools/networking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA8FpF"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Networking tools - 8 tools for multiplayer and network management
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath } from './shared-types.js';
6
+ export function registerNetworkingTools(server, bridge) {
7
+ // 1. get_network_settings
8
+ server.registerTool(
9
+ 'get_network_settings',
10
+ {
11
+ description: 'Get current networking configuration and multiplayer settings',
12
+ inputSchema: {},
13
+ },
14
+ async () => callGodot(bridge, 'networking/get_settings'),
15
+ );
16
+ // 2. create_multiplayer_server
17
+ server.registerTool(
18
+ 'create_multiplayer_server',
19
+ {
20
+ description: 'Create and start a multiplayer server with the specified configuration',
21
+ inputSchema: {
22
+ port: z.number().int().min(1).max(65535).describe('Port number to listen on'),
23
+ max_clients: z.number().int().min(1).max(4095).optional().describe('Maximum number of connected clients (default: 32)'),
24
+ transport: z.enum(['enet', 'websocket', 'webrtc']).optional().describe('Network transport layer (default: enet)'),
25
+ },
26
+ },
27
+ async (args) => callGodot(bridge, 'networking/create_server', args),
28
+ );
29
+ // 3. connect_to_server
30
+ server.registerTool(
31
+ 'connect_to_server',
32
+ {
33
+ description: 'Connect to a multiplayer server as a client',
34
+ inputSchema: {
35
+ address: z.string().describe('Server address (IP or hostname)'),
36
+ port: z.number().int().min(1).max(65535).describe('Server port number'),
37
+ },
38
+ },
39
+ async (args) => callGodot(bridge, 'networking/connect', args),
40
+ );
41
+ // 4. disconnect_from_server
42
+ server.registerTool(
43
+ 'disconnect_from_server',
44
+ {
45
+ description: 'Disconnect from the current multiplayer session',
46
+ inputSchema: {},
47
+ },
48
+ async () => callGodot(bridge, 'networking/disconnect'),
49
+ );
50
+ // 5. get_connected_peers
51
+ server.registerTool(
52
+ 'get_connected_peers',
53
+ {
54
+ description: 'Get a list of all connected peers with their IDs and connection info',
55
+ inputSchema: {},
56
+ },
57
+ async () => callGodot(bridge, 'networking/get_peers'),
58
+ );
59
+ // 6. send_rpc
60
+ server.registerTool(
61
+ 'send_rpc',
62
+ {
63
+ description: 'Send a remote procedure call to a specific peer or all peers',
64
+ inputSchema: {
65
+ peer_id: z.number().int().describe('Target peer ID (0 = all peers)'),
66
+ method: z.string().describe('RPC method name to call'),
67
+ args: z.array(z.unknown()).optional().describe('Arguments to pass to the RPC method'),
68
+ },
69
+ },
70
+ async (args) => callGodot(bridge, 'networking/send_rpc', args),
71
+ );
72
+ // 7. set_network_authority
73
+ server.registerTool(
74
+ 'set_network_authority',
75
+ {
76
+ description: 'Set the network authority (owner) of a node to a specific peer',
77
+ inputSchema: {
78
+ node_path: NodePath.describe('Path to the node in the scene tree'),
79
+ peer_id: z.number().int().describe('Peer ID to assign as network authority'),
80
+ },
81
+ },
82
+ async (args) => callGodot(bridge, 'networking/set_authority', args),
83
+ );
84
+ // 8. get_network_info
85
+ server.registerTool(
86
+ 'get_network_info',
87
+ {
88
+ description: 'Get network performance metrics including latency, bandwidth, and packet loss',
89
+ inputSchema: {},
90
+ },
91
+ async () => callGodot(bridge, 'networking/get_info'),
92
+ );
93
+ }
94
+ //# sourceMappingURL=networking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networking.js","sourceRoot":"","sources":["../../src/tools/networking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Node tools - 17 tools for node manipulation
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerNodeTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/tools/node.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAYtD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA0N9E"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Node tools - 17 tools for node manipulation
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, ParentPath, NodeType, PropertyName, PropertyValue, OptionalProperties } from './shared-types.js';
6
+ export function registerNodeTools(server, bridge) {
7
+ // 1. add_node
8
+ server.registerTool(
9
+ 'add_node',
10
+ {
11
+ description: 'Add a new node to the scene tree',
12
+ inputSchema: {
13
+ parent_path: ParentPath.describe("Parent node path (e.g. 'Player' or '' for root)"),
14
+ type: NodeType,
15
+ name: z.string().describe('Name for the new node'),
16
+ properties: OptionalProperties,
17
+ },
18
+ },
19
+ async (args) => callGodot(bridge, 'node/add', args),
20
+ );
21
+ // 2. delete_node
22
+ server.registerTool(
23
+ 'delete_node',
24
+ {
25
+ description: 'Delete a node from the scene tree',
26
+ inputSchema: {
27
+ path: NodePath.describe("Node path to delete (e.g. 'Player/Sprite2D')"),
28
+ },
29
+ },
30
+ async (args) => callGodot(bridge, 'node/delete', args),
31
+ );
32
+ // 3. duplicate_node
33
+ server.registerTool(
34
+ 'duplicate_node',
35
+ {
36
+ description: 'Duplicate a node in the scene tree',
37
+ inputSchema: {
38
+ path: NodePath.describe('Node path to duplicate'),
39
+ },
40
+ },
41
+ async (args) => callGodot(bridge, 'node/duplicate', args),
42
+ );
43
+ // 4. move_node
44
+ server.registerTool(
45
+ 'move_node',
46
+ {
47
+ description: 'Move a node to a new parent in the scene tree',
48
+ inputSchema: {
49
+ path: NodePath.describe('Node path to move'),
50
+ new_parent: z.string().describe('New parent node path'),
51
+ index: z.number().int().min(0).optional().describe('Child index position'),
52
+ },
53
+ },
54
+ async (args) => callGodot(bridge, 'node/move', args),
55
+ );
56
+ // 5. update_property
57
+ server.registerTool(
58
+ 'update_property',
59
+ {
60
+ description: 'Update a property value on a node',
61
+ inputSchema: {
62
+ path: NodePath,
63
+ property: PropertyName,
64
+ value: PropertyValue,
65
+ },
66
+ },
67
+ async (args) => callGodot(bridge, 'node/update_property', args),
68
+ );
69
+ // 6. get_node_properties
70
+ server.registerTool(
71
+ 'get_node_properties',
72
+ {
73
+ description: 'Get all properties of a node',
74
+ inputSchema: {
75
+ path: NodePath,
76
+ },
77
+ },
78
+ async (args) => callGodot(bridge, 'node/get_properties', args),
79
+ );
80
+ // 7. add_resource
81
+ server.registerTool(
82
+ 'add_resource',
83
+ {
84
+ description: 'Add a resource (material, texture, etc.) to a node property',
85
+ inputSchema: {
86
+ node_path: NodePath,
87
+ resource_type: z.string().describe("Resource type (e.g. 'Material', 'Texture2D')"),
88
+ properties: OptionalProperties,
89
+ },
90
+ },
91
+ async (args) => callGodot(bridge, 'node/add_resource', args),
92
+ );
93
+ // 8. set_anchor_preset
94
+ server.registerTool(
95
+ 'set_anchor_preset',
96
+ {
97
+ description: 'Set anchor preset on a Control node',
98
+ inputSchema: {
99
+ path: NodePath.describe('Control node path'),
100
+ preset: z.string().describe("Anchor preset name (e.g. 'full_rect', 'center', 'top_left')"),
101
+ },
102
+ },
103
+ async (args) => callGodot(bridge, 'node/set_anchor_preset', args),
104
+ );
105
+ // 9. rename_node
106
+ server.registerTool(
107
+ 'rename_node',
108
+ {
109
+ description: 'Rename a node in the scene tree',
110
+ inputSchema: {
111
+ path: NodePath.describe('Current node path'),
112
+ new_name: z.string().describe('New name for the node'),
113
+ },
114
+ },
115
+ async (args) => callGodot(bridge, 'node/rename', args),
116
+ );
117
+ // 10. connect_signal
118
+ server.registerTool(
119
+ 'connect_signal',
120
+ {
121
+ description: "Connect a signal from one node to another node's method",
122
+ inputSchema: {
123
+ source: NodePath.describe('Node path emitting the signal'),
124
+ signal: z.string().describe('Signal name'),
125
+ target: NodePath.describe('Node path receiving the signal'),
126
+ method: z.string().describe('Method to call on the target node'),
127
+ },
128
+ },
129
+ async (args) => callGodot(bridge, 'node/connect_signal', args),
130
+ );
131
+ // 11. disconnect_signal
132
+ server.registerTool(
133
+ 'disconnect_signal',
134
+ {
135
+ description: 'Disconnect a signal connection',
136
+ inputSchema: {
137
+ source: NodePath.describe('Node path that emits the signal'),
138
+ signal: z.string().describe('Signal name'),
139
+ target: NodePath.describe('Node path that receives the signal'),
140
+ method: z.string().describe('Method that was connected'),
141
+ },
142
+ },
143
+ async (args) => callGodot(bridge, 'node/disconnect_signal', args),
144
+ );
145
+ // 12. get_node_groups
146
+ server.registerTool(
147
+ 'get_node_groups',
148
+ {
149
+ description: 'Get all groups a node belongs to',
150
+ inputSchema: {
151
+ path: NodePath,
152
+ },
153
+ },
154
+ async (args) => callGodot(bridge, 'node/get_groups', args),
155
+ );
156
+ // 13. set_node_groups
157
+ server.registerTool(
158
+ 'set_node_groups',
159
+ {
160
+ description: 'Set the groups a node belongs to (replaces existing groups)',
161
+ inputSchema: {
162
+ path: NodePath,
163
+ groups: z.array(z.string()).describe('List of group names'),
164
+ },
165
+ },
166
+ async (args) => callGodot(bridge, 'node/set_groups', args),
167
+ );
168
+ // 14. find_nodes_in_group
169
+ server.registerTool(
170
+ 'find_nodes_in_group',
171
+ {
172
+ description: 'Find all nodes belonging to a specific group',
173
+ inputSchema: {
174
+ group: z.string().describe('Group name to search for'),
175
+ },
176
+ },
177
+ async (args) => callGodot(bridge, 'node/find_in_group', args),
178
+ );
179
+ // 15. get_editor_selection
180
+ server.registerTool(
181
+ 'get_editor_selection',
182
+ {
183
+ description: 'Get the currently selected nodes in the editor',
184
+ inputSchema: {},
185
+ },
186
+ async () => callGodot(bridge, 'node/get_selection'),
187
+ );
188
+ // 16. select_nodes
189
+ server.registerTool(
190
+ 'select_nodes',
191
+ {
192
+ description: 'Select nodes in the editor',
193
+ inputSchema: {
194
+ paths: z.array(z.string()).describe('List of node paths to select'),
195
+ },
196
+ },
197
+ async (args) => callGodot(bridge, 'node/select', args),
198
+ );
199
+ // 17. clear_editor_selection
200
+ server.registerTool(
201
+ 'clear_editor_selection',
202
+ {
203
+ description: 'Clear the current editor selection',
204
+ inputSchema: {},
205
+ },
206
+ async () => callGodot(bridge, 'node/clear_selection'),
207
+ );
208
+ }
209
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/tools/node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Node introspection tools - 8 tools for querying node type metadata
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerNodeConfigTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=node_config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_config.d.ts","sourceRoot":"","sources":["../../src/tools/node_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,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAqGpF"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Node introspection tools - 8 tools for querying node type metadata
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodeType } from './shared-types.js';
6
+ export function registerNodeConfigTools(server, bridge) {
7
+ // 1. get_node_default_properties
8
+ server.registerTool(
9
+ 'get_node_default_properties',
10
+ {
11
+ description: 'Get the default property values for a node type',
12
+ inputSchema: {
13
+ type: NodeType,
14
+ },
15
+ },
16
+ async (args) => callGodot(bridge, 'node_config/get_defaults', args),
17
+ );
18
+ // 2. set_node_preset
19
+ server.registerTool(
20
+ 'set_node_preset',
21
+ {
22
+ description: "Apply a configuration preset to a node (e.g. 'platformer_body', 'top_down_camera')",
23
+ inputSchema: {
24
+ type: NodeType.describe('Node type to configure'),
25
+ preset: z.string().describe('Preset name to apply'),
26
+ },
27
+ },
28
+ async (args) => callGodot(bridge, 'node_config/set_preset', args),
29
+ );
30
+ // 3. get_available_node_types
31
+ server.registerTool(
32
+ 'get_available_node_types',
33
+ {
34
+ description: 'Get all available node types, optionally filtered by category',
35
+ inputSchema: {
36
+ category: z.enum(['2d', '3d', 'ui', 'audio', 'physics', 'navigation']).optional().describe('Filter by category'),
37
+ },
38
+ },
39
+ async (args) => callGodot(bridge, 'node_config/get_types', args),
40
+ );
41
+ // 4. get_node_signals
42
+ server.registerTool(
43
+ 'get_node_signals',
44
+ {
45
+ description: 'Get all signals defined on a node type with their argument signatures',
46
+ inputSchema: {
47
+ type: NodeType,
48
+ },
49
+ },
50
+ async (args) => callGodot(bridge, 'node_config/get_signals', args),
51
+ );
52
+ // 5. get_node_methods
53
+ server.registerTool(
54
+ 'get_node_methods',
55
+ {
56
+ description: 'Get all public methods on a node type with their signatures',
57
+ inputSchema: {
58
+ type: NodeType,
59
+ },
60
+ },
61
+ async (args) => callGodot(bridge, 'node_config/get_methods', args),
62
+ );
63
+ // 6. get_node_enums
64
+ server.registerTool(
65
+ 'get_node_enums',
66
+ {
67
+ description: 'Get all enumerations defined on a node type',
68
+ inputSchema: {
69
+ type: NodeType,
70
+ },
71
+ },
72
+ async (args) => callGodot(bridge, 'node_config/get_enums', args),
73
+ );
74
+ // 7. get_node_constants
75
+ server.registerTool(
76
+ 'get_node_constants',
77
+ {
78
+ description: 'Get all constants defined on a node type',
79
+ inputSchema: {
80
+ type: NodeType,
81
+ },
82
+ },
83
+ async (args) => callGodot(bridge, 'node_config/get_constants', args),
84
+ );
85
+ // 8. get_class_hierarchy
86
+ server.registerTool(
87
+ 'get_class_hierarchy',
88
+ {
89
+ description: 'Get the full inheritance chain for a node type',
90
+ inputSchema: {
91
+ type: NodeType,
92
+ },
93
+ },
94
+ async (args) => callGodot(bridge, 'node_config/get_hierarchy', args),
95
+ );
96
+ }
97
+ //# sourceMappingURL=node_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_config.js","sourceRoot":"","sources":["../../src/tools/node_config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Particles tools - 8 tools for particle system management
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerParticlesTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=particles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particles.d.ts","sourceRoot":"","sources":["../../src/tools/particles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWtD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA+HnF"}