@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,170 @@
1
+ /**
2
+ * Shared Zod schemas and utility types for all tool modules.
3
+ *
4
+ * Every repeated schema literal lives here exactly once.
5
+ * Tool modules import what they need and compose larger schemas
6
+ * from these building blocks.
7
+ */
8
+ import { z } from 'zod';
9
+ // ────────────────────────────────────────────────────────────
10
+ // Primitive field schemas
11
+ // ────────────────────────────────────────────────────────────
12
+ /** Node path in the scene tree (e.g. "Player/Sprite2D") */
13
+ export const NodePath = z.string().describe("Node path in the scene tree (e.g. 'Player/Sprite2D')");
14
+ /** Scene file path (e.g. "res://scenes/main.tscn") */
15
+ export const ScenePath = z.string().describe("Scene file path (e.g. 'res://scenes/main.tscn')");
16
+ /** Optional scene file path — defaults to current scene */
17
+ export const OptionalScenePath = z.string().optional().describe('Scene file path (defaults to current scene)');
18
+ /** Script file path (e.g. "res://scripts/player.gd") */
19
+ export const ScriptPath = z.string().describe("Script file path (e.g. 'res://scripts/player.gd')");
20
+ /** Resource file path (.tres, .res) */
21
+ export const ResourcePath = z.string().describe("Resource file path (e.g. 'res://assets/theme.tres')");
22
+ /** Generic file path */
23
+ export const FilePath = z.string().describe("File path (e.g. 'res://path/to/file')");
24
+ /** Optional file path */
25
+ export const OptionalFilePath = z.string().optional().describe('File path (omit for default)');
26
+ /** Property or field name */
27
+ export const PropertyName = z.string().describe("Property name (e.g. 'position', 'visible')");
28
+ /** Any property value */
29
+ export const PropertyValue = z.unknown().describe('Property value');
30
+ /** Generic name identifier */
31
+ export const Name = z.string().describe('Name identifier');
32
+ /** GDScript code string */
33
+ export const GDScriptCode = z.string().describe('GDScript code to execute');
34
+ /** Search query string */
35
+ export const SearchQuery = z.string().describe('Search query');
36
+ /** Node type name (e.g. "Sprite2D", "CharacterBody3D") */
37
+ export const NodeType = z.string().describe("Node type name (e.g. 'Sprite2D', 'CharacterBody3D')");
38
+ /** Parent node path */
39
+ export const ParentPath = z.string().describe('Parent node path');
40
+ // ────────────────────────────────────────────────────────────
41
+ // Numeric schemas
42
+ // ────────────────────────────────────────────────────────────
43
+ /** Positive number (> 0) */
44
+ export const PositiveNumber = z.number().positive();
45
+ /** Non-negative integer (>= 0) */
46
+ export const NonNegativeInt = z.number().int().min(0);
47
+ /** Positive integer (> 0) */
48
+ export const PositiveInt = z.number().int().positive();
49
+ /** Optional positive number */
50
+ export const OptionalPositiveNumber = z.number().positive().optional();
51
+ /** Optional timeout in seconds */
52
+ export const Timeout = z.number().optional().describe('Timeout in seconds');
53
+ // ────────────────────────────────────────────────────────────
54
+ // Boolean schemas
55
+ // ────────────────────────────────────────────────────────────
56
+ /** Optional boolean flag */
57
+ export const OptionalBoolean = z.boolean().optional();
58
+ /** Boolean "pressed" state (default: true) */
59
+ export const Pressed = z.boolean().optional().default(true).describe('Whether pressed (default: true)');
60
+ // ────────────────────────────────────────────────────────────
61
+ // Position / coordinate schemas
62
+ // ────────────────────────────────────────────────────────────
63
+ /** 2D position as [x, y] */
64
+ export const Position2D = z.tuple([z.number(), z.number()]).describe('Position as [x, y]');
65
+ /** 3D position as [x, y, z] */
66
+ export const Position3D = z.tuple([z.number(), z.number(), z.number()]).describe('Position as [x, y, z]');
67
+ /** 2D integer coordinates [x, y] (e.g. tilemap cells) */
68
+ export const Coord2D = z.tuple([z.number().int(), z.number().int()]).describe('Integer coordinates [x, y]');
69
+ /** 2D size as [width, height] */
70
+ export const Size2D = z.tuple([z.number().int(), z.number().int()]).describe('Size as [width, height]');
71
+ // ────────────────────────────────────────────────────────────
72
+ // Record / properties schemas
73
+ // ────────────────────────────────────────────────────────────
74
+ /** Required properties dictionary */
75
+ export const Properties = z.record(z.unknown()).describe('Property key-value pairs');
76
+ /** Optional properties dictionary */
77
+ export const OptionalProperties = z.record(z.unknown()).optional().describe('Optional property key-value pairs');
78
+ // ────────────────────────────────────────────────────────────
79
+ // Common enum schemas
80
+ // ────────────────────────────────────────────────────────────
81
+ /** 2D or 3D dimension */
82
+ export const Dimension = z.enum(['2d', '3d']).describe('Dimension type');
83
+ /** Quality preset level */
84
+ export const Quality = z.enum(['low', 'medium', 'high', 'ultra']).describe('Quality preset level');
85
+ /** Image format */
86
+ export const ImageFormat = z.enum(['png', 'jpg']).optional().default('png').describe('Image format (default: png)');
87
+ /** Optional dimension */
88
+ export const OptionalDimension = z.enum(['2d', '3d']).optional().describe('Dimension type (auto-detected if omitted)');
89
+ // ────────────────────────────────────────────────────────────
90
+ // Generic schema builders
91
+ // ────────────────────────────────────────────────────────────
92
+ /**
93
+ * Schema for a single-path read/get tool.
94
+ * Use for tools that take only a path and return info.
95
+ */
96
+ export function pathOnlySchema(pathDescription) {
97
+ return {
98
+ path: z.string().describe(pathDescription),
99
+ };
100
+ }
101
+ /**
102
+ * Schema for a path + optional properties tool.
103
+ * Use for tools that configure something at a path.
104
+ */
105
+ export function pathWithPropertiesSchema(pathDescription, propertiesDescription = 'Property key-value pairs to set') {
106
+ return {
107
+ path: z.string().describe(pathDescription),
108
+ properties: z.record(z.unknown()).optional().describe(propertiesDescription),
109
+ };
110
+ }
111
+ /**
112
+ * Schema for a path + required properties tool.
113
+ */
114
+ export function pathWithRequiredPropertiesSchema(pathDescription, propertiesDescription) {
115
+ return {
116
+ path: z.string().describe(pathDescription),
117
+ properties: z.record(z.unknown()).describe(propertiesDescription),
118
+ };
119
+ }
120
+ /**
121
+ * Schema for a set-property tool (path + property name + value).
122
+ */
123
+ export function setPropertySchema(pathDescription) {
124
+ return {
125
+ path: z.string().describe(pathDescription),
126
+ property: z.string().describe('Property name to set'),
127
+ value: z.unknown().describe('New value for the property'),
128
+ };
129
+ }
130
+ /**
131
+ * Schema for a get-property tool (path + optional property name).
132
+ */
133
+ export function getPropertySchema(pathDescription) {
134
+ return {
135
+ path: z.string().describe(pathDescription),
136
+ };
137
+ }
138
+ /**
139
+ * Schema for a parent + name + optional properties creation tool.
140
+ */
141
+ export function createChildSchema(parentDescription = 'Parent node path', nameDescription = 'Name for the new node') {
142
+ return {
143
+ parent: z.string().describe(parentDescription),
144
+ name: z.string().describe(nameDescription),
145
+ properties: z.record(z.unknown()).optional().describe('Initial property values'),
146
+ };
147
+ }
148
+ /**
149
+ * Schema for a search/filter tool with optional scene scope.
150
+ */
151
+ export function scopedSearchSchema(queryDescription) {
152
+ return {
153
+ query: z.string().describe(queryDescription),
154
+ scene_path: z.string().optional().describe('Scene path to scope search (defaults to current scene)'),
155
+ };
156
+ }
157
+ /** Create a tool result from any serializable data */
158
+ export function toolResult(data) {
159
+ const text = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
160
+ return { content: [{ type: 'text', text }] };
161
+ }
162
+ /** Create an error tool result */
163
+ export function errorResult(message) {
164
+ return { content: [{ type: 'text', text: message }], isError: true };
165
+ }
166
+ // ────────────────────────────────────────────────────────────
167
+ // Re-export z for convenience (modules can import { z } from here)
168
+ // ────────────────────────────────────────────────────────────
169
+ export { z };
170
+ //# sourceMappingURL=shared-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-types.js","sourceRoot":"","sources":["../../src/tools/shared-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Testing tools - 5 tools for game testing
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerTestingTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgFjF"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Testing tools - 5 tools for game testing
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, PropertyName, PropertyValue } from './shared-types.js';
6
+ export function registerTestingTools(server, bridge) {
7
+ // 1. run_test_scenario
8
+ server.registerTool(
9
+ 'run_test_scenario',
10
+ {
11
+ description: 'Run a multi-step test scenario against the running game',
12
+ inputSchema: {
13
+ name: z.string().optional().default('Unnamed Scenario').describe('Scenario name (default: "Unnamed Scenario")'),
14
+ steps: z
15
+ .array(
16
+ z
17
+ .object({
18
+ type: z.enum(['add_node', 'delete_node', 'set_property', 'assert_node_state', 'connect_signal', 'wait']).describe('Step type'),
19
+ params: z.record(z.unknown()).optional().describe('Parameters for this step'),
20
+ })
21
+ .catchall(z.unknown()),
22
+ )
23
+ .describe('Ordered test steps'),
24
+ },
25
+ },
26
+ async (args) => callGodot(bridge, 'testing/run_scenario', args),
27
+ );
28
+ // 2. assert_node_state
29
+ server.registerTool(
30
+ 'assert_node_state',
31
+ {
32
+ description: 'Assert that a node property matches an expected value',
33
+ inputSchema: {
34
+ path: NodePath.describe('Node path in the running game'),
35
+ property: PropertyName.describe('Property name to check'),
36
+ expected: PropertyValue.describe('Expected value'),
37
+ operator: z.string().optional().default('==').describe("Comparison operator: ==, !=, >, <, >=, <=, contains (default: '==')"),
38
+ },
39
+ },
40
+ async (args) => callGodot(bridge, 'testing/assert_state', args),
41
+ );
42
+ // 3. assert_screen_text
43
+ server.registerTool(
44
+ 'assert_screen_text',
45
+ {
46
+ description: 'Assert that specific text appears on screen (OCR or UI element check)',
47
+ inputSchema: {
48
+ text: z.string().describe('Text that should appear on screen'),
49
+ should_exist: z.boolean().optional().default(true).describe('Whether text should be present (true) or absent (false) (default: true)'),
50
+ },
51
+ },
52
+ async (args) => callGodot(bridge, 'testing/assert_screen_text', args),
53
+ );
54
+ // 4. run_stress_test
55
+ server.registerTool(
56
+ 'run_stress_test',
57
+ {
58
+ description: 'Run a stress test on the game (spawn entities, measure performance)',
59
+ inputSchema: {
60
+ type: z.string().optional().default('Node2D').describe('Node type to spawn (default: Node2D)'),
61
+ count: z.number().int().optional().default(100).describe('Number of entities to spawn (default: 100)'),
62
+ parent_path: z.string().optional().describe('Parent node path for spawned entities'),
63
+ properties: z.record(z.unknown()).optional().describe('Properties to set on each spawned entity'),
64
+ },
65
+ },
66
+ async (args) => callGodot(bridge, 'testing/stress_test', args),
67
+ );
68
+ // 5. get_test_report
69
+ server.registerTool(
70
+ 'get_test_report',
71
+ {
72
+ description: 'Get aggregated results of all test runs in this session',
73
+ inputSchema: {},
74
+ },
75
+ async () => callGodot(bridge, 'testing/get_report'),
76
+ );
77
+ }
78
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Theme tools - 7 tools for theme management
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerThemeTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/tools/theme.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,CAgG/E"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Theme tools - 7 tools for theme management
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, ResourcePath, Properties } from './shared-types.js';
6
+ export function registerThemeTools(server, bridge) {
7
+ // 1. create_theme
8
+ server.registerTool(
9
+ 'create_theme',
10
+ {
11
+ description: 'Create a new Theme resource',
12
+ inputSchema: {
13
+ path: ResourcePath.describe("File path to save the theme (e.g. 'res://themes/dark.tres')"),
14
+ },
15
+ },
16
+ async (args) => callGodot(bridge, 'theme/create', args),
17
+ );
18
+ // 2. delete_theme
19
+ server.registerTool(
20
+ 'delete_theme',
21
+ {
22
+ description: 'Delete a theme resource file from the project',
23
+ inputSchema: {
24
+ path: z.string().describe('Theme file path to delete (e.g. res://themes/my_theme.tres)'),
25
+ },
26
+ },
27
+ async (args) => callGodot(bridge, 'theme/delete', args),
28
+ );
29
+ // 3. set_theme_color
30
+ server.registerTool(
31
+ 'set_theme_color',
32
+ {
33
+ description: 'Set a color in a theme for a specific control type',
34
+ inputSchema: {
35
+ path: ResourcePath.describe('Theme resource path'),
36
+ theme_type: z.string().describe("Control type (e.g. 'Button', 'Label', 'Panel')"),
37
+ name: z.string().describe("Color name (e.g. 'font_color', 'font_hover_color')"),
38
+ color: z.string().describe("Color value as hex (e.g. '#FF0000') or named color"),
39
+ },
40
+ },
41
+ async (args) => callGodot(bridge, 'theme/set_color', args),
42
+ );
43
+ // 4. set_theme_constant
44
+ server.registerTool(
45
+ 'set_theme_constant',
46
+ {
47
+ description: 'Set a constant value in a theme',
48
+ inputSchema: {
49
+ path: ResourcePath.describe('Theme resource path'),
50
+ theme_type: z.string().describe('Control type'),
51
+ name: z.string().describe("Constant name (e.g. 'hseparation', 'vseparation')"),
52
+ value: z.number().int().describe('Constant integer value'),
53
+ },
54
+ },
55
+ async (args) => callGodot(bridge, 'theme/set_constant', args),
56
+ );
57
+ // 5. set_theme_font_size
58
+ server.registerTool(
59
+ 'set_theme_font_size',
60
+ {
61
+ description: 'Set a font size in a theme',
62
+ inputSchema: {
63
+ path: ResourcePath.describe('Theme resource path'),
64
+ theme_type: z.string().describe('Control type'),
65
+ name: z.string().describe("Size name (e.g. 'font_size')"),
66
+ size: z.number().int().positive().describe('Font size in pixels'),
67
+ },
68
+ },
69
+ async (args) => callGodot(bridge, 'theme/set_font_size', args),
70
+ );
71
+ // 6. set_theme_stylebox
72
+ server.registerTool(
73
+ 'set_theme_stylebox',
74
+ {
75
+ description: 'Set a StyleBox in a theme',
76
+ inputSchema: {
77
+ path: ResourcePath.describe('Theme resource path'),
78
+ theme_type: z.string().describe('Control type'),
79
+ name: z.string().describe("StyleBox name (e.g. 'normal', 'hover', 'pressed')"),
80
+ properties: Properties.describe('StyleBox properties (e.g. bg_color, border_width)'),
81
+ },
82
+ },
83
+ async (args) => callGodot(bridge, 'theme/set_stylebox', args),
84
+ );
85
+ // 7. get_theme_info
86
+ server.registerTool(
87
+ 'get_theme_info',
88
+ {
89
+ description: 'Get information about a theme including all its overrides',
90
+ inputSchema: {
91
+ path: ResourcePath.describe('Theme resource path'),
92
+ },
93
+ },
94
+ async (args) => callGodot(bridge, 'theme/get_info', args),
95
+ );
96
+ }
97
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/tools/theme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TileMap tools - 6 tools for tilemap manipulation
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerTilemapTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=tilemap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tilemap.d.ts","sourceRoot":"","sources":["../../src/tools/tilemap.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,CAuFjF"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * TileMap tools - 6 tools for tilemap manipulation
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, NodePath, Coord2D } from './shared-types.js';
6
+ export function registerTilemapTools(server, bridge) {
7
+ // 1. tilemap_set_cell
8
+ server.registerTool(
9
+ 'tilemap_set_cell',
10
+ {
11
+ description: 'Set a single cell in a TileMap',
12
+ inputSchema: {
13
+ path: NodePath.describe('TileMap node path'),
14
+ coords: Coord2D,
15
+ source_id: z.number().int().optional().describe('TileSet source ID'),
16
+ atlas_coords: Coord2D.optional().describe('Atlas coordinates [x, y]'),
17
+ alternative_tile: z.number().int().optional().describe('Alternative tile ID'),
18
+ },
19
+ },
20
+ async (args) => callGodot(bridge, 'tilemap/set_cell', args),
21
+ );
22
+ // 2. tilemap_fill_rect
23
+ server.registerTool(
24
+ 'tilemap_fill_rect',
25
+ {
26
+ description: 'Fill a rectangular area of a TileMap with a tile',
27
+ inputSchema: {
28
+ path: NodePath.describe('TileMap node path'),
29
+ rect: z
30
+ .object({
31
+ x: z.number().int(),
32
+ y: z.number().int(),
33
+ w: z.number().int().positive(),
34
+ h: z.number().int().positive(),
35
+ })
36
+ .describe('Rectangle to fill'),
37
+ source_id: z.number().int().optional().describe('TileSet source ID'),
38
+ atlas_coords: Coord2D.optional().describe('Atlas coordinates [x, y]'),
39
+ },
40
+ },
41
+ async (args) => callGodot(bridge, 'tilemap/fill_rect', args),
42
+ );
43
+ // 3. tilemap_get_cell
44
+ server.registerTool(
45
+ 'tilemap_get_cell',
46
+ {
47
+ description: 'Get the tile data at a specific cell',
48
+ inputSchema: {
49
+ path: NodePath.describe('TileMap node path'),
50
+ coords: Coord2D,
51
+ },
52
+ },
53
+ async (args) => callGodot(bridge, 'tilemap/get_cell', args),
54
+ );
55
+ // 4. tilemap_clear
56
+ server.registerTool(
57
+ 'tilemap_clear',
58
+ {
59
+ description: 'Clear cells in a TileMap area or the entire map',
60
+ inputSchema: {
61
+ path: NodePath.describe('TileMap node path'),
62
+ },
63
+ },
64
+ async (args) => callGodot(bridge, 'tilemap/clear', args),
65
+ );
66
+ // 5. tilemap_get_info
67
+ server.registerTool(
68
+ 'tilemap_get_info',
69
+ {
70
+ description: 'Get TileMap configuration and TileSet information',
71
+ inputSchema: {
72
+ path: NodePath.describe('TileMap node path'),
73
+ },
74
+ },
75
+ async (args) => callGodot(bridge, 'tilemap/get_info', args),
76
+ );
77
+ // 6. tilemap_get_used_cells
78
+ server.registerTool(
79
+ 'tilemap_get_used_cells',
80
+ {
81
+ description: 'Get all used cell coordinates in a TileMap',
82
+ inputSchema: {
83
+ path: NodePath.describe('TileMap node path'),
84
+ },
85
+ },
86
+ async (args) => callGodot(bridge, 'tilemap/get_used_cells', args),
87
+ );
88
+ }
89
+ //# sourceMappingURL=tilemap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tilemap.js","sourceRoot":"","sources":["../../src/tools/tilemap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Version control advanced tools - 8 tools for advanced git operations
3
+ */
4
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import type { GodotBridge } from "../godot-bridge.js";
6
+ export declare function registerVersionControlAdvancedTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=version_control_advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version_control_advanced.d.ts","sourceRoot":"","sources":["../../src/tools/version_control_advanced.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,mCAAmC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAoGhG"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Version control advanced tools - 8 tools for advanced git operations
3
+ */
4
+ import { callGodot } from '../server.js';
5
+ import { z, Name, FilePath } from './shared-types.js';
6
+ export function registerVersionControlAdvancedTools(server, bridge) {
7
+ // 1. create_branch
8
+ server.registerTool(
9
+ 'create_branch',
10
+ {
11
+ description: 'Create a new git branch from the specified base branch',
12
+ inputSchema: {
13
+ name: Name.describe('New branch name'),
14
+ from: z.string().optional().describe('Base branch or commit to create from (default: current HEAD)'),
15
+ },
16
+ },
17
+ async (args) => callGodot(bridge, 'vcs_advanced/create_branch', args),
18
+ );
19
+ // 2. switch_branch
20
+ server.registerTool(
21
+ 'switch_branch',
22
+ {
23
+ description: 'Switch to a different git branch',
24
+ inputSchema: {
25
+ name: Name.describe('Branch name to switch to'),
26
+ },
27
+ },
28
+ async (args) => callGodot(bridge, 'vcs_advanced/switch_branch', args),
29
+ );
30
+ // 3. merge_branch
31
+ server.registerTool(
32
+ 'merge_branch',
33
+ {
34
+ description: 'Merge a branch into the current branch using the specified strategy',
35
+ inputSchema: {
36
+ branch: Name.describe('Branch name to merge'),
37
+ strategy: z.enum(['merge', 'squash', 'rebase']).optional().describe('Merge strategy (default: merge)'),
38
+ },
39
+ },
40
+ async (args) => callGodot(bridge, 'vcs_advanced/merge_branch', args),
41
+ );
42
+ // 4. delete_branch
43
+ server.registerTool(
44
+ 'delete_branch',
45
+ {
46
+ description: 'Delete a git branch (local only)',
47
+ inputSchema: {
48
+ name: Name.describe('Branch name to delete'),
49
+ },
50
+ },
51
+ async (args) => callGodot(bridge, 'vcs_advanced/delete_branch', args),
52
+ );
53
+ // 5. create_tag
54
+ server.registerTool(
55
+ 'create_tag',
56
+ {
57
+ description: 'Create a git tag at the current HEAD or specified commit',
58
+ inputSchema: {
59
+ name: Name.describe("Tag name (e.g. 'v1.0.0')"),
60
+ message: z.string().optional().describe('Tag annotation message'),
61
+ },
62
+ },
63
+ async (args) => callGodot(bridge, 'vcs_advanced/create_tag', args),
64
+ );
65
+ // 6. get_branch_diff
66
+ server.registerTool(
67
+ 'get_branch_diff',
68
+ {
69
+ description: 'Get the diff between the current branch and another branch',
70
+ inputSchema: {
71
+ branch: Name.describe('Branch to compare against'),
72
+ },
73
+ },
74
+ async (args) => callGodot(bridge, 'vcs_advanced/get_branch_diff', args),
75
+ );
76
+ // 7. resolve_conflicts
77
+ server.registerTool(
78
+ 'resolve_conflicts',
79
+ {
80
+ description: 'Resolve merge conflicts using the specified strategy',
81
+ inputSchema: {
82
+ files: z.array(z.string()).describe('List of files with conflicts to resolve'),
83
+ strategy: z.enum(['ours', 'theirs', 'manual']).optional().describe('Resolution strategy (default: manual)'),
84
+ },
85
+ },
86
+ async (args) => callGodot(bridge, 'vcs_advanced/resolve_conflicts', args),
87
+ );
88
+ // 8. get_blame
89
+ server.registerTool(
90
+ 'get_blame',
91
+ {
92
+ description: 'Get git blame information for a file (who changed each line and when)',
93
+ inputSchema: {
94
+ file_path: FilePath.describe('Path to the file to blame'),
95
+ },
96
+ },
97
+ async (args) => callGodot(bridge, 'vcs_advanced/get_blame', args),
98
+ );
99
+ }
100
+ //# sourceMappingURL=version_control_advanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version_control_advanced.js","sourceRoot":"","sources":["../../src/tools/version_control_advanced.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Visual testing tools - 6 tools for visual regression testing
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import type { GodotBridge } from '../godot-bridge.js';
6
+ export declare function registerVisualTestingTools(server: McpServer, bridge: GodotBridge): void;
7
+ //# sourceMappingURL=visual_testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual_testing.d.ts","sourceRoot":"","sources":["../../src/tools/visual_testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA6GvF"}