minecraft-bedrock-mcp-server 0.1.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 (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +577 -0
  3. package/dist/bridge/event-route.d.ts +11 -0
  4. package/dist/bridge/event-route.d.ts.map +1 -0
  5. package/dist/bridge/event-route.js +28 -0
  6. package/dist/bridge/event-route.js.map +1 -0
  7. package/dist/bridge/handshake-route.d.ts +11 -0
  8. package/dist/bridge/handshake-route.d.ts.map +1 -0
  9. package/dist/bridge/handshake-route.js +45 -0
  10. package/dist/bridge/handshake-route.js.map +1 -0
  11. package/dist/bridge/poll-route.d.ts +11 -0
  12. package/dist/bridge/poll-route.d.ts.map +1 -0
  13. package/dist/bridge/poll-route.js +28 -0
  14. package/dist/bridge/poll-route.js.map +1 -0
  15. package/dist/bridge/result-route.d.ts +10 -0
  16. package/dist/bridge/result-route.d.ts.map +1 -0
  17. package/dist/bridge/result-route.js +23 -0
  18. package/dist/bridge/result-route.js.map +1 -0
  19. package/dist/config/config-error.d.ts +12 -0
  20. package/dist/config/config-error.d.ts.map +1 -0
  21. package/dist/config/config-error.js +13 -0
  22. package/dist/config/config-error.js.map +1 -0
  23. package/dist/config/environment.d.ts +89 -0
  24. package/dist/config/environment.d.ts.map +1 -0
  25. package/dist/config/environment.js +73 -0
  26. package/dist/config/environment.js.map +1 -0
  27. package/dist/config/tls.d.ts +15 -0
  28. package/dist/config/tls.d.ts.map +1 -0
  29. package/dist/config/tls.js +27 -0
  30. package/dist/config/tls.js.map +1 -0
  31. package/dist/errors/bridge-error.d.ts +41 -0
  32. package/dist/errors/bridge-error.d.ts.map +1 -0
  33. package/dist/errors/bridge-error.js +33 -0
  34. package/dist/errors/bridge-error.js.map +1 -0
  35. package/dist/errors/error-codes.d.ts +13 -0
  36. package/dist/errors/error-codes.d.ts.map +1 -0
  37. package/dist/errors/error-codes.js +41 -0
  38. package/dist/errors/error-codes.js.map +1 -0
  39. package/dist/events/subscription-registry.d.ts +55 -0
  40. package/dist/events/subscription-registry.d.ts.map +1 -0
  41. package/dist/events/subscription-registry.js +64 -0
  42. package/dist/events/subscription-registry.js.map +1 -0
  43. package/dist/http/app.d.ts +26 -0
  44. package/dist/http/app.d.ts.map +1 -0
  45. package/dist/http/app.js +88 -0
  46. package/dist/http/app.js.map +1 -0
  47. package/dist/http/authentication.d.ts +11 -0
  48. package/dist/http/authentication.d.ts.map +1 -0
  49. package/dist/http/authentication.js +36 -0
  50. package/dist/http/authentication.js.map +1 -0
  51. package/dist/http/health-route.d.ts +10 -0
  52. package/dist/http/health-route.d.ts.map +1 -0
  53. package/dist/http/health-route.js +18 -0
  54. package/dist/http/health-route.js.map +1 -0
  55. package/dist/http/metrics-route.d.ts +8 -0
  56. package/dist/http/metrics-route.d.ts.map +1 -0
  57. package/dist/http/metrics-route.js +11 -0
  58. package/dist/http/metrics-route.js.map +1 -0
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +134 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/mcp/mcp-route.d.ts +12 -0
  64. package/dist/mcp/mcp-route.d.ts.map +1 -0
  65. package/dist/mcp/mcp-route.js +49 -0
  66. package/dist/mcp/mcp-route.js.map +1 -0
  67. package/dist/mcp/mcp-server-factory.d.ts +20 -0
  68. package/dist/mcp/mcp-server-factory.d.ts.map +1 -0
  69. package/dist/mcp/mcp-server-factory.js +23 -0
  70. package/dist/mcp/mcp-server-factory.js.map +1 -0
  71. package/dist/mcp/session-manager.d.ts +30 -0
  72. package/dist/mcp/session-manager.d.ts.map +1 -0
  73. package/dist/mcp/session-manager.js +38 -0
  74. package/dist/mcp/session-manager.js.map +1 -0
  75. package/dist/mcp/tool-registry.d.ts +15 -0
  76. package/dist/mcp/tool-registry.d.ts.map +1 -0
  77. package/dist/mcp/tool-registry.js +27 -0
  78. package/dist/mcp/tool-registry.js.map +1 -0
  79. package/dist/observability/logger.d.ts +16 -0
  80. package/dist/observability/logger.d.ts.map +1 -0
  81. package/dist/observability/logger.js +19 -0
  82. package/dist/observability/logger.js.map +1 -0
  83. package/dist/observability/metrics.d.ts +27 -0
  84. package/dist/observability/metrics.d.ts.map +1 -0
  85. package/dist/observability/metrics.js +72 -0
  86. package/dist/observability/metrics.js.map +1 -0
  87. package/dist/protocol/command.d.ts +92 -0
  88. package/dist/protocol/command.d.ts.map +1 -0
  89. package/dist/protocol/command.js +37 -0
  90. package/dist/protocol/command.js.map +1 -0
  91. package/dist/protocol/event.d.ts +82 -0
  92. package/dist/protocol/event.d.ts.map +1 -0
  93. package/dist/protocol/event.js +37 -0
  94. package/dist/protocol/event.js.map +1 -0
  95. package/dist/protocol/handshake.d.ts +150 -0
  96. package/dist/protocol/handshake.d.ts.map +1 -0
  97. package/dist/protocol/handshake.js +65 -0
  98. package/dist/protocol/handshake.js.map +1 -0
  99. package/dist/protocol/index.d.ts +14 -0
  100. package/dist/protocol/index.d.ts.map +1 -0
  101. package/dist/protocol/index.js +14 -0
  102. package/dist/protocol/index.js.map +1 -0
  103. package/dist/protocol/protocol-version.d.ts +18 -0
  104. package/dist/protocol/protocol-version.d.ts.map +1 -0
  105. package/dist/protocol/protocol-version.js +28 -0
  106. package/dist/protocol/protocol-version.js.map +1 -0
  107. package/dist/protocol/result.d.ts +79 -0
  108. package/dist/protocol/result.d.ts.map +1 -0
  109. package/dist/protocol/result.js +35 -0
  110. package/dist/protocol/result.js.map +1 -0
  111. package/dist/queue/command-id.d.ts +15 -0
  112. package/dist/queue/command-id.d.ts.map +1 -0
  113. package/dist/queue/command-id.js +38 -0
  114. package/dist/queue/command-id.js.map +1 -0
  115. package/dist/queue/command-queue.d.ts +90 -0
  116. package/dist/queue/command-queue.d.ts.map +1 -0
  117. package/dist/queue/command-queue.js +151 -0
  118. package/dist/queue/command-queue.js.map +1 -0
  119. package/dist/queue/command-throttle.d.ts +38 -0
  120. package/dist/queue/command-throttle.d.ts.map +1 -0
  121. package/dist/queue/command-throttle.js +26 -0
  122. package/dist/queue/command-throttle.js.map +1 -0
  123. package/dist/queue/instrumented-command-queue.d.ts +9 -0
  124. package/dist/queue/instrumented-command-queue.d.ts.map +1 -0
  125. package/dist/queue/instrumented-command-queue.js +39 -0
  126. package/dist/queue/instrumented-command-queue.js.map +1 -0
  127. package/dist/queue/pending-commands.d.ts +35 -0
  128. package/dist/queue/pending-commands.d.ts.map +1 -0
  129. package/dist/queue/pending-commands.js +41 -0
  130. package/dist/queue/pending-commands.js.map +1 -0
  131. package/dist/server-info.d.ts +5 -0
  132. package/dist/server-info.d.ts.map +1 -0
  133. package/dist/server-info.js +22 -0
  134. package/dist/server-info.js.map +1 -0
  135. package/dist/structures/structure-file-store.d.ts +22 -0
  136. package/dist/structures/structure-file-store.d.ts.map +1 -0
  137. package/dist/structures/structure-file-store.js +89 -0
  138. package/dist/structures/structure-file-store.js.map +1 -0
  139. package/dist/tools/block-tools.d.ts +4 -0
  140. package/dist/tools/block-tools.d.ts.map +1 -0
  141. package/dist/tools/block-tools.js +111 -0
  142. package/dist/tools/block-tools.js.map +1 -0
  143. package/dist/tools/command-tools.d.ts +4 -0
  144. package/dist/tools/command-tools.d.ts.map +1 -0
  145. package/dist/tools/command-tools.js +23 -0
  146. package/dist/tools/command-tools.js.map +1 -0
  147. package/dist/tools/common-schemas.d.ts +65 -0
  148. package/dist/tools/common-schemas.d.ts.map +1 -0
  149. package/dist/tools/common-schemas.js +32 -0
  150. package/dist/tools/common-schemas.js.map +1 -0
  151. package/dist/tools/effect-tools.d.ts +4 -0
  152. package/dist/tools/effect-tools.d.ts.map +1 -0
  153. package/dist/tools/effect-tools.js +32 -0
  154. package/dist/tools/effect-tools.js.map +1 -0
  155. package/dist/tools/entity-tools.d.ts +4 -0
  156. package/dist/tools/entity-tools.d.ts.map +1 -0
  157. package/dist/tools/entity-tools.js +133 -0
  158. package/dist/tools/entity-tools.js.map +1 -0
  159. package/dist/tools/event-tools.d.ts +4 -0
  160. package/dist/tools/event-tools.d.ts.map +1 -0
  161. package/dist/tools/event-tools.js +84 -0
  162. package/dist/tools/event-tools.js.map +1 -0
  163. package/dist/tools/index.d.ts +4 -0
  164. package/dist/tools/index.d.ts.map +1 -0
  165. package/dist/tools/index.js +30 -0
  166. package/dist/tools/index.js.map +1 -0
  167. package/dist/tools/inventory-tools.d.ts +4 -0
  168. package/dist/tools/inventory-tools.d.ts.map +1 -0
  169. package/dist/tools/inventory-tools.js +52 -0
  170. package/dist/tools/inventory-tools.js.map +1 -0
  171. package/dist/tools/player-tools.d.ts +4 -0
  172. package/dist/tools/player-tools.d.ts.map +1 -0
  173. package/dist/tools/player-tools.js +117 -0
  174. package/dist/tools/player-tools.js.map +1 -0
  175. package/dist/tools/property-tools.d.ts +4 -0
  176. package/dist/tools/property-tools.d.ts.map +1 -0
  177. package/dist/tools/property-tools.js +45 -0
  178. package/dist/tools/property-tools.js.map +1 -0
  179. package/dist/tools/scoreboard-tools.d.ts +4 -0
  180. package/dist/tools/scoreboard-tools.d.ts.map +1 -0
  181. package/dist/tools/scoreboard-tools.js +68 -0
  182. package/dist/tools/scoreboard-tools.js.map +1 -0
  183. package/dist/tools/server-tools.d.ts +4 -0
  184. package/dist/tools/server-tools.d.ts.map +1 -0
  185. package/dist/tools/server-tools.js +25 -0
  186. package/dist/tools/server-tools.js.map +1 -0
  187. package/dist/tools/structure-file-tools.d.ts +4 -0
  188. package/dist/tools/structure-file-tools.d.ts.map +1 -0
  189. package/dist/tools/structure-file-tools.js +57 -0
  190. package/dist/tools/structure-file-tools.js.map +1 -0
  191. package/dist/tools/structure-tools.d.ts +4 -0
  192. package/dist/tools/structure-tools.d.ts.map +1 -0
  193. package/dist/tools/structure-tools.js +91 -0
  194. package/dist/tools/structure-tools.js.map +1 -0
  195. package/dist/tools/tool-definition.d.ts +68 -0
  196. package/dist/tools/tool-definition.d.ts.map +1 -0
  197. package/dist/tools/tool-definition.js +40 -0
  198. package/dist/tools/tool-definition.js.map +1 -0
  199. package/dist/tools/tool-result.d.ts +17 -0
  200. package/dist/tools/tool-result.d.ts.map +1 -0
  201. package/dist/tools/tool-result.js +52 -0
  202. package/dist/tools/tool-result.js.map +1 -0
  203. package/dist/tools/world-tools.d.ts +4 -0
  204. package/dist/tools/world-tools.d.ts.map +1 -0
  205. package/dist/tools/world-tools.js +97 -0
  206. package/dist/tools/world-tools.js.map +1 -0
  207. package/package.json +69 -0
@@ -0,0 +1,111 @@
1
+ import { z } from "zod";
2
+ import { BlockFilterSchema, BlockStatesSchema, BlockTypeSchema, DimensionSchema, Vector3Schema, } from "./common-schemas.js";
3
+ import { defineQueuedTool } from "./tool-definition.js";
4
+ const READ_ONLY = { readOnlyHint: true };
5
+ /** Block reads and block writes. */
6
+ export const blockTools = [
7
+ defineQueuedTool({
8
+ name: "mc_block_get",
9
+ title: "Get a block",
10
+ description: "Returns the type, permutation states, and components of the block at a location.",
11
+ inputShape: { dimension: DimensionSchema, location: Vector3Schema },
12
+ annotations: READ_ONLY,
13
+ }),
14
+ defineQueuedTool({
15
+ name: "mc_block_get_volume",
16
+ title: "Get a volume of blocks",
17
+ description: "Iterates the blocks in a bounding box, optionally filtered by type. Results " +
18
+ "are paginated — pass the returned cursor to fetch the next page.",
19
+ inputShape: {
20
+ dimension: DimensionSchema,
21
+ from: Vector3Schema,
22
+ to: Vector3Schema,
23
+ filter: BlockFilterSchema.optional(),
24
+ cursor: z.string().optional().describe("Cursor from a previous page; omit for the first."),
25
+ },
26
+ annotations: READ_ONLY,
27
+ }),
28
+ defineQueuedTool({
29
+ name: "mc_block_get_top",
30
+ title: "Get the topmost block",
31
+ description: "Returns the highest non-air block in a column.",
32
+ inputShape: { dimension: DimensionSchema, x: z.number().int(), z: z.number().int() },
33
+ annotations: READ_ONLY,
34
+ }),
35
+ defineQueuedTool({
36
+ name: "mc_block_contains",
37
+ title: "Check for blocks in a volume",
38
+ description: "Returns whether any block in a bounding box matches a filter.",
39
+ inputShape: {
40
+ dimension: DimensionSchema,
41
+ from: Vector3Schema,
42
+ to: Vector3Schema,
43
+ filter: BlockFilterSchema,
44
+ },
45
+ annotations: READ_ONLY,
46
+ }),
47
+ defineQueuedTool({
48
+ name: "mc_block_set",
49
+ title: "Set a block",
50
+ description: "Places a single block at a location.",
51
+ inputShape: {
52
+ dimension: DimensionSchema,
53
+ location: Vector3Schema,
54
+ block_type: BlockTypeSchema,
55
+ states: BlockStatesSchema.optional(),
56
+ },
57
+ annotations: { idempotentHint: true },
58
+ }),
59
+ defineQueuedTool({
60
+ name: "mc_block_fill",
61
+ title: "Fill a volume with a block",
62
+ description: "Fills a bounding box with a block type, optionally hollow or filtered.",
63
+ inputShape: {
64
+ dimension: DimensionSchema,
65
+ from: Vector3Schema,
66
+ to: Vector3Schema,
67
+ block_type: BlockTypeSchema,
68
+ states: BlockStatesSchema.optional(),
69
+ options: z
70
+ .object({
71
+ mode: z.enum(["replace", "keep", "hollow", "outline"]).optional(),
72
+ filter: BlockFilterSchema.optional(),
73
+ })
74
+ .optional(),
75
+ },
76
+ }),
77
+ defineQueuedTool({
78
+ name: "mc_block_clone",
79
+ title: "Clone a volume of blocks",
80
+ description: "Copies the blocks in a bounding box to another location.",
81
+ inputShape: {
82
+ source_dimension: DimensionSchema,
83
+ source_from: Vector3Schema,
84
+ source_to: Vector3Schema,
85
+ destination_dimension: DimensionSchema,
86
+ destination_location: Vector3Schema,
87
+ options: z
88
+ .object({
89
+ mode: z.enum(["replace", "masked"]).optional(),
90
+ include_entities: z.boolean().optional(),
91
+ })
92
+ .optional(),
93
+ },
94
+ }),
95
+ defineQueuedTool({
96
+ name: "mc_block_replace",
97
+ title: "Replace blocks in a volume",
98
+ description: "Replaces blocks matching a filter within a bounding box.",
99
+ inputShape: {
100
+ dimension: DimensionSchema,
101
+ from: Vector3Schema,
102
+ to: Vector3Schema,
103
+ source_filter: BlockFilterSchema,
104
+ replacement: z.object({
105
+ block_type: BlockTypeSchema,
106
+ states: BlockStatesSchema.optional(),
107
+ }),
108
+ },
109
+ }),
110
+ ];
111
+ //# sourceMappingURL=block-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-tools.js","sourceRoot":"","sources":["../../src/tools/block-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAuB,MAAM,sBAAsB,CAAC;AAE7E,MAAM,SAAS,GAAG,EAAE,YAAY,EAAE,IAAI,EAAW,CAAC;AAElD,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,gBAAgB,CAAC;QACf,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,kFAAkF;QAC/F,UAAU,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE;QACnE,WAAW,EAAE,SAAS;KACvB,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,8EAA8E;YAC9E,kEAAkE;QACpE,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;SAC3F;QACD,WAAW,EAAE,SAAS;KACvB,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;QACpF,WAAW,EAAE,SAAS;KACvB,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,+DAA+D;QAC5E,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,iBAAiB;SAC1B;QACD,WAAW,EAAE,SAAS;KACvB,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,sCAAsC;QACnD,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;YAC1B,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,eAAe;YAC3B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;SACrC;QACD,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KACtC,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,wEAAwE;QACrF,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,aAAa;YACjB,UAAU,EAAE,eAAe;YAC3B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACjE,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;aACrC,CAAC;iBACD,QAAQ,EAAE;SACd;KACF,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,0DAA0D;QACvE,UAAU,EAAE;YACV,gBAAgB,EAAE,eAAe;YACjC,WAAW,EAAE,aAAa;YAC1B,SAAS,EAAE,aAAa;YACxB,qBAAqB,EAAE,eAAe;YACtC,oBAAoB,EAAE,aAAa;YACnC,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC9C,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;aACzC,CAAC;iBACD,QAAQ,EAAE;SACd;KACF,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,0DAA0D;QACvE,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,aAAa;YACjB,aAAa,EAAE,iBAAiB;YAChC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,UAAU,EAAE,eAAe;gBAC3B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;aACrC,CAAC;SACH;KACF,CAAC;CACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ToolDefinition } from "./tool-definition.js";
2
+ /** The raw slash-command escape hatch. */
3
+ export declare const commandTools: readonly ToolDefinition[];
4
+ //# sourceMappingURL=command-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-tools.d.ts","sourceRoot":"","sources":["../../src/tools/command-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7E,0CAA0C;AAC1C,eAAO,MAAM,YAAY,EAAE,SAAS,cAAc,EAkBjD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ import { DimensionSchema } from "./common-schemas.js";
3
+ import { defineQueuedTool } from "./tool-definition.js";
4
+ /** The raw slash-command escape hatch. */
5
+ export const commandTools = [
6
+ defineQueuedTool({
7
+ name: "mc_run_command",
8
+ title: "Run a slash command",
9
+ description: "Executes a Minecraft slash command and returns its output. The escape " +
10
+ "hatch for anything not covered by a higher-level tool.",
11
+ inputShape: {
12
+ command: z.string().min(1).describe("The slash command, without a leading '/'."),
13
+ dimension: DimensionSchema.optional().describe("Dimension to run the command in."),
14
+ executor: z
15
+ .string()
16
+ .min(1)
17
+ .optional()
18
+ .describe("Entity id to run the command as; defaults to the server."),
19
+ },
20
+ annotations: { openWorldHint: true },
21
+ }),
22
+ ];
23
+ //# sourceMappingURL=command-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-tools.js","sourceRoot":"","sources":["../../src/tools/command-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAuB,MAAM,sBAAsB,CAAC;AAE7E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAA8B;IACrD,gBAAgB,CAAC;QACf,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,wEAAwE;YACxE,wDAAwD;QAC1D,UAAU,EAAE;YACV,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YAChF,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAClF,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;SACxE;QACD,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;KACrC,CAAC;CACH,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { z } from "zod";
2
+ /** A world coordinate. */
3
+ export declare const Vector3Schema: z.ZodObject<{
4
+ x: z.ZodNumber;
5
+ y: z.ZodNumber;
6
+ z: z.ZodNumber;
7
+ }, "strip", z.ZodTypeAny, {
8
+ x: number;
9
+ y: number;
10
+ z: number;
11
+ }, {
12
+ x: number;
13
+ y: number;
14
+ z: number;
15
+ }>;
16
+ export type Vector3 = z.infer<typeof Vector3Schema>;
17
+ /** A dimension identifier. */
18
+ export declare const DimensionSchema: z.ZodEnum<["overworld", "nether", "the_end"]>;
19
+ export type Dimension = z.infer<typeof DimensionSchema>;
20
+ /** A chat message: plain text, or a structured rawtext object. */
21
+ export declare const MessageSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
22
+ rawtext: z.ZodArray<z.ZodUnknown, "many">;
23
+ }, "strip", z.ZodTypeAny, {
24
+ rawtext: unknown[];
25
+ }, {
26
+ rawtext: unknown[];
27
+ }>]>;
28
+ export type Message = z.infer<typeof MessageSchema>;
29
+ /** A block type identifier, e.g. `minecraft:stone`. */
30
+ export declare const BlockTypeSchema: z.ZodString;
31
+ /** Block permutation states, keyed by state name. */
32
+ export declare const BlockStatesSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
33
+ /** A filter selecting block types by inclusion or exclusion. */
34
+ export declare const BlockFilterSchema: z.ZodObject<{
35
+ include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
36
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ include?: string[] | undefined;
39
+ exclude?: string[] | undefined;
40
+ }, {
41
+ include?: string[] | undefined;
42
+ exclude?: string[] | undefined;
43
+ }>;
44
+ /** An item type identifier, e.g. `minecraft:diamond_sword`. */
45
+ export declare const ItemTypeSchema: z.ZodString;
46
+ /** Optional properties applied to an item stack. */
47
+ export declare const ItemPropertiesSchema: z.ZodObject<{
48
+ name_tag: z.ZodOptional<z.ZodString>;
49
+ lore: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
50
+ keep_on_death: z.ZodOptional<z.ZodBoolean>;
51
+ lock_mode: z.ZodOptional<z.ZodEnum<["none", "lock_in_slot", "lock_in_inventory"]>>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ name_tag?: string | undefined;
54
+ lore?: string[] | undefined;
55
+ keep_on_death?: boolean | undefined;
56
+ lock_mode?: "none" | "lock_in_slot" | "lock_in_inventory" | undefined;
57
+ }, {
58
+ name_tag?: string | undefined;
59
+ lore?: string[] | undefined;
60
+ keep_on_death?: boolean | undefined;
61
+ lock_mode?: "none" | "lock_in_slot" | "lock_in_inventory" | undefined;
62
+ }>;
63
+ /** The runtime id of an entity. */
64
+ export declare const EntityIdSchema: z.ZodString;
65
+ //# sourceMappingURL=common-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-schemas.d.ts","sourceRoot":"","sources":["../../src/tools/common-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0BAA0B;AAC1B,eAAO,MAAM,aAAa;;;;;;;;;;;;EAIxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,8BAA8B;AAC9B,eAAO,MAAM,eAAe,+CAA6C,CAAC;AAC1E,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,kEAAkE;AAClE,eAAO,MAAM,aAAa;;;;;;IAAqE,CAAC;AAChG,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,uDAAuD;AACvD,eAAO,MAAM,eAAe,aAAoB,CAAC;AAEjD,qDAAqD;AACrD,eAAO,MAAM,iBAAiB,gFAA2D,CAAC;AAE1F,gEAAgE;AAChE,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,+DAA+D;AAC/D,eAAO,MAAM,cAAc,aAAoB,CAAC;AAEhD,oDAAoD;AACpD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH,mCAAmC;AACnC,eAAO,MAAM,cAAc,aAAoB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ /** A world coordinate. */
3
+ export const Vector3Schema = z.object({
4
+ x: z.number(),
5
+ y: z.number(),
6
+ z: z.number(),
7
+ });
8
+ /** A dimension identifier. */
9
+ export const DimensionSchema = z.enum(["overworld", "nether", "the_end"]);
10
+ /** A chat message: plain text, or a structured rawtext object. */
11
+ export const MessageSchema = z.union([z.string(), z.object({ rawtext: z.array(z.unknown()) })]);
12
+ /** A block type identifier, e.g. `minecraft:stone`. */
13
+ export const BlockTypeSchema = z.string().min(1);
14
+ /** Block permutation states, keyed by state name. */
15
+ export const BlockStatesSchema = z.record(z.union([z.string(), z.number(), z.boolean()]));
16
+ /** A filter selecting block types by inclusion or exclusion. */
17
+ export const BlockFilterSchema = z.object({
18
+ include: z.array(BlockTypeSchema).optional().describe("Only blocks of these types match."),
19
+ exclude: z.array(BlockTypeSchema).optional().describe("Blocks of these types never match."),
20
+ });
21
+ /** An item type identifier, e.g. `minecraft:diamond_sword`. */
22
+ export const ItemTypeSchema = z.string().min(1);
23
+ /** Optional properties applied to an item stack. */
24
+ export const ItemPropertiesSchema = z.object({
25
+ name_tag: z.string().optional(),
26
+ lore: z.array(z.string()).optional(),
27
+ keep_on_death: z.boolean().optional(),
28
+ lock_mode: z.enum(["none", "lock_in_slot", "lock_in_inventory"]).optional(),
29
+ });
30
+ /** The runtime id of an entity. */
31
+ export const EntityIdSchema = z.string().min(1);
32
+ //# sourceMappingURL=common-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-schemas.js","sourceRoot":"","sources":["../../src/tools/common-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0BAA0B;AAC1B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CACd,CAAC,CAAC;AAGH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAG1E,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAGhG,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC1F,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CAC5F,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEhD,oDAAoD;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC5E,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ToolDefinition } from "./tool-definition.js";
2
+ /** Environmental effects. */
3
+ export declare const effectTools: readonly ToolDefinition[];
4
+ //# sourceMappingURL=effect-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-tools.d.ts","sourceRoot":"","sources":["../../src/tools/effect-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7E,6BAA6B;AAC7B,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EA0BhD,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ import { DimensionSchema, EntityIdSchema, Vector3Schema } from "./common-schemas.js";
3
+ import { defineQueuedTool } from "./tool-definition.js";
4
+ /** Environmental effects. */
5
+ export const effectTools = [
6
+ defineQueuedTool({
7
+ name: "mc_explosion_create",
8
+ title: "Create an explosion",
9
+ description: "Triggers an explosion at a location.",
10
+ inputShape: {
11
+ dimension: DimensionSchema,
12
+ location: Vector3Schema,
13
+ radius: z.number().positive(),
14
+ options: z
15
+ .object({
16
+ causes_fire: z.boolean().optional(),
17
+ breaks_blocks: z.boolean().optional(),
18
+ allow_underwater: z.boolean().optional(),
19
+ source_entity_id: EntityIdSchema.optional(),
20
+ })
21
+ .optional(),
22
+ },
23
+ annotations: { destructiveHint: true },
24
+ }),
25
+ defineQueuedTool({
26
+ name: "mc_lightning_strike",
27
+ title: "Strike lightning",
28
+ description: "Strikes lightning at a location.",
29
+ inputShape: { dimension: DimensionSchema, location: Vector3Schema },
30
+ }),
31
+ ];
32
+ //# sourceMappingURL=effect-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-tools.js","sourceRoot":"","sources":["../../src/tools/effect-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAuB,MAAM,sBAAsB,CAAC;AAE7E,6BAA6B;AAC7B,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,gBAAgB,CAAC;QACf,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,sCAAsC;QACnD,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;YAC1B,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;gBACnC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;gBACrC,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;gBACxC,gBAAgB,EAAE,cAAc,CAAC,QAAQ,EAAE;aAC5C,CAAC;iBACD,QAAQ,EAAE;SACd;QACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACvC,CAAC;IACF,gBAAgB,CAAC;QACf,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kCAAkC;QAC/C,UAAU,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE;KACpE,CAAC;CACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ToolDefinition } from "./tool-definition.js";
2
+ /** Entity queries and entity mutations. */
3
+ export declare const entityTools: readonly ToolDefinition[];
4
+ //# sourceMappingURL=entity-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-tools.d.ts","sourceRoot":"","sources":["../../src/tools/entity-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoB7E,2CAA2C;AAC3C,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAgHhD,CAAC"}
@@ -0,0 +1,133 @@
1
+ import { z } from "zod";
2
+ import { DimensionSchema, EntityIdSchema, Vector3Schema } from "./common-schemas.js";
3
+ import { defineQueuedTool } from "./tool-definition.js";
4
+ const READ_ONLY = { readOnlyHint: true };
5
+ /** A subset of Script API `EntityQueryOptions`. */
6
+ const EntityQuerySchema = z.object({
7
+ type: z.string().optional().describe("Entity type id, e.g. minecraft:zombie."),
8
+ name: z.string().optional(),
9
+ tags: z.array(z.string()).optional(),
10
+ exclude_tags: z.array(z.string()).optional(),
11
+ families: z.array(z.string()).optional(),
12
+ dimension: DimensionSchema.optional(),
13
+ location: Vector3Schema.optional(),
14
+ min_distance: z.number().nonnegative().optional(),
15
+ max_distance: z.number().nonnegative().optional(),
16
+ closest: z.number().int().positive().optional(),
17
+ farthest: z.number().int().positive().optional(),
18
+ limit: z.number().int().positive().optional(),
19
+ });
20
+ /** Entity queries and entity mutations. */
21
+ export const entityTools = [
22
+ defineQueuedTool({
23
+ name: "mc_entity_get",
24
+ title: "Query entities",
25
+ description: "Returns one entity by id, or every entity matching a query. Provide " +
26
+ "entity_id or query.",
27
+ inputShape: {
28
+ entity_id: EntityIdSchema.optional(),
29
+ query: EntityQuerySchema.optional(),
30
+ },
31
+ annotations: READ_ONLY,
32
+ }),
33
+ defineQueuedTool({
34
+ name: "mc_entity_spawn",
35
+ title: "Spawn an entity",
36
+ description: "Spawns an entity of a type at a location.",
37
+ inputShape: {
38
+ dimension: DimensionSchema,
39
+ type_id: z.string().min(1),
40
+ location: Vector3Schema,
41
+ spawn_event: z.string().optional().describe("Optional spawn event to trigger."),
42
+ },
43
+ }),
44
+ defineQueuedTool({
45
+ name: "mc_entity_remove",
46
+ title: "Remove an entity",
47
+ description: "Removes an entity, either by killing it or despawning it silently.",
48
+ inputShape: {
49
+ entity_id: EntityIdSchema,
50
+ method: z.enum(["kill", "despawn"]).optional(),
51
+ },
52
+ annotations: { destructiveHint: true },
53
+ }),
54
+ defineQueuedTool({
55
+ name: "mc_entity_teleport",
56
+ title: "Teleport an entity",
57
+ description: "Teleports an entity, optionally to another dimension or facing a target.",
58
+ inputShape: {
59
+ entity_id: EntityIdSchema,
60
+ location: Vector3Schema,
61
+ options: z
62
+ .object({
63
+ dimension: DimensionSchema.optional(),
64
+ rotation: z.object({ x: z.number(), y: z.number() }).optional(),
65
+ facing_location: Vector3Schema.optional(),
66
+ })
67
+ .optional(),
68
+ },
69
+ }),
70
+ defineQueuedTool({
71
+ name: "mc_entity_apply_damage",
72
+ title: "Damage an entity",
73
+ description: "Applies damage to an entity.",
74
+ inputShape: {
75
+ entity_id: EntityIdSchema,
76
+ amount: z.number().positive(),
77
+ cause: z.string().optional().describe("Damage cause, e.g. entityAttack or fire."),
78
+ },
79
+ annotations: { destructiveHint: true },
80
+ }),
81
+ defineQueuedTool({
82
+ name: "mc_entity_apply_effect",
83
+ title: "Apply an effect to an entity",
84
+ description: "Applies a status effect to an entity.",
85
+ inputShape: {
86
+ entity_id: EntityIdSchema,
87
+ effect: z.string().min(1),
88
+ duration_ticks: z.number().int().positive(),
89
+ amplifier: z.number().int().min(0).optional(),
90
+ show_particles: z.boolean().optional(),
91
+ },
92
+ }),
93
+ defineQueuedTool({
94
+ name: "mc_entity_remove_effect",
95
+ title: "Remove an effect from an entity",
96
+ description: "Removes a status effect from an entity.",
97
+ inputShape: { entity_id: EntityIdSchema, effect: z.string().min(1) },
98
+ }),
99
+ defineQueuedTool({
100
+ name: "mc_entity_add_tag",
101
+ title: "Add a tag to an entity",
102
+ description: "Adds a tag to an entity.",
103
+ inputShape: { entity_id: EntityIdSchema, tag: z.string().min(1) },
104
+ }),
105
+ defineQueuedTool({
106
+ name: "mc_entity_remove_tag",
107
+ title: "Remove a tag from an entity",
108
+ description: "Removes a tag from an entity.",
109
+ inputShape: { entity_id: EntityIdSchema, tag: z.string().min(1) },
110
+ }),
111
+ defineQueuedTool({
112
+ name: "mc_entity_get_tags",
113
+ title: "Get an entity's tags",
114
+ description: "Returns every tag on an entity.",
115
+ inputShape: { entity_id: EntityIdSchema },
116
+ annotations: READ_ONLY,
117
+ }),
118
+ defineQueuedTool({
119
+ name: "mc_entity_get_components",
120
+ title: "Get an entity's components",
121
+ description: "Returns the components of an entity, such as health and inventory.",
122
+ inputShape: { entity_id: EntityIdSchema },
123
+ annotations: READ_ONLY,
124
+ }),
125
+ defineQueuedTool({
126
+ name: "mc_entity_run_command_as",
127
+ title: "Run a command as an entity",
128
+ description: "Runs a slash command with an entity as the executor.",
129
+ inputShape: { entity_id: EntityIdSchema, command: z.string().min(1) },
130
+ annotations: { openWorldHint: true },
131
+ }),
132
+ ];
133
+ //# sourceMappingURL=entity-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-tools.js","sourceRoot":"","sources":["../../src/tools/entity-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ToolDefinition } from "./tool-definition.js";
2
+ /** Event subscription tools — these manage the local subscription registry. */
3
+ export declare const eventTools: readonly ToolDefinition[];
4
+ //# sourceMappingURL=event-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-tools.d.ts","sourceRoot":"","sources":["../../src/tools/event-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG5E,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,SAAS,cAAc,EA8E/C,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { z } from "zod";
2
+ import { SubscriptionIdSchema } from "../protocol/index.js";
3
+ import { defineLocalTool } from "./tool-definition.js";
4
+ import { toolError, toolSuccess } from "./tool-result.js";
5
+ /** Event subscription tools — these manage the local subscription registry. */
6
+ export const eventTools = [
7
+ defineLocalTool({
8
+ name: "mc_event_subscribe",
9
+ title: "Subscribe to a world event",
10
+ description: "Starts capturing a world event type (chatSend, playerJoin, blockBreak, " +
11
+ "and so on). Returns a subscription id to drain with mc_event_poll.",
12
+ inputShape: {
13
+ event_type: z.string().min(1),
14
+ filter: z.record(z.unknown()).optional(),
15
+ },
16
+ handler: async (input, context) => {
17
+ const subscription = context.subscriptions.create(input.event_type, input.filter ?? null);
18
+ try {
19
+ await context.queue.enqueueAndAwait({
20
+ kind: "mc_event_subscribe",
21
+ payload: {
22
+ subscription_id: subscription.id,
23
+ event_type: input.event_type,
24
+ filter: input.filter ?? null,
25
+ },
26
+ correlationId: context.correlationId,
27
+ timeoutMs: context.commandTimeoutMs,
28
+ });
29
+ }
30
+ catch (error) {
31
+ context.subscriptions.remove(subscription.id);
32
+ throw error;
33
+ }
34
+ return toolSuccess({ subscription_id: subscription.id, event_type: input.event_type });
35
+ },
36
+ }),
37
+ defineLocalTool({
38
+ name: "mc_event_unsubscribe",
39
+ title: "Unsubscribe from a world event",
40
+ description: "Stops capturing events for a subscription and discards its buffer.",
41
+ inputShape: { subscription_id: SubscriptionIdSchema },
42
+ handler: async (input, context) => {
43
+ const wasActive = context.subscriptions.remove(input.subscription_id);
44
+ await context.queue.enqueueAndAwait({
45
+ kind: "mc_event_unsubscribe",
46
+ payload: { subscription_id: input.subscription_id },
47
+ correlationId: context.correlationId,
48
+ timeoutMs: context.commandTimeoutMs,
49
+ });
50
+ return toolSuccess({ subscription_id: input.subscription_id, was_active: wasActive });
51
+ },
52
+ }),
53
+ defineLocalTool({
54
+ name: "mc_event_list_subscriptions",
55
+ title: "List event subscriptions",
56
+ description: "Lists active event subscriptions and how many events each has buffered.",
57
+ inputShape: {},
58
+ annotations: { readOnlyHint: true },
59
+ handler: (_input, context) => toolSuccess({ subscriptions: context.subscriptions.list() }),
60
+ }),
61
+ defineLocalTool({
62
+ name: "mc_event_poll",
63
+ title: "Poll buffered events",
64
+ description: "Drains buffered events for a subscription. Pass the returned cursor to " +
65
+ "the next poll to receive only newer events.",
66
+ inputShape: {
67
+ subscription_id: SubscriptionIdSchema,
68
+ since_cursor: z
69
+ .string()
70
+ .regex(/^\d+$/)
71
+ .optional()
72
+ .describe("Cursor from a previous poll; omit to read from the start."),
73
+ },
74
+ annotations: { readOnlyHint: true },
75
+ handler: (input, context) => {
76
+ if (context.subscriptions.get(input.subscription_id) === undefined) {
77
+ return toolError("NOT_FOUND", `no subscription '${input.subscription_id}'`);
78
+ }
79
+ const page = context.subscriptions.poll(input.subscription_id, input.since_cursor);
80
+ return toolSuccess({ events: page.events, cursor: page.cursor });
81
+ },
82
+ }),
83
+ ];
84
+ //# sourceMappingURL=event-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-tools.js","sourceRoot":"","sources":["../../src/tools/event-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ToolDefinition } from "./tool-definition.js";
2
+ /** Every MCP tool the server exposes, assembled from the per-domain modules. */
3
+ export declare const allTools: readonly ToolDefinition[];
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,gFAAgF;AAChF,eAAO,MAAM,QAAQ,EAAE,SAAS,cAAc,EAc7C,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { blockTools } from "./block-tools.js";
2
+ import { commandTools } from "./command-tools.js";
3
+ import { effectTools } from "./effect-tools.js";
4
+ import { entityTools } from "./entity-tools.js";
5
+ import { eventTools } from "./event-tools.js";
6
+ import { inventoryTools } from "./inventory-tools.js";
7
+ import { playerTools } from "./player-tools.js";
8
+ import { propertyTools } from "./property-tools.js";
9
+ import { scoreboardTools } from "./scoreboard-tools.js";
10
+ import { serverTools } from "./server-tools.js";
11
+ import { structureFileTools } from "./structure-file-tools.js";
12
+ import { structureTools } from "./structure-tools.js";
13
+ import { worldTools } from "./world-tools.js";
14
+ /** Every MCP tool the server exposes, assembled from the per-domain modules. */
15
+ export const allTools = [
16
+ ...worldTools,
17
+ ...blockTools,
18
+ ...structureTools,
19
+ ...structureFileTools,
20
+ ...entityTools,
21
+ ...playerTools,
22
+ ...inventoryTools,
23
+ ...scoreboardTools,
24
+ ...propertyTools,
25
+ ...effectTools,
26
+ ...eventTools,
27
+ ...commandTools,
28
+ ...serverTools,
29
+ ];
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,gFAAgF;AAChF,MAAM,CAAC,MAAM,QAAQ,GAA8B;IACjD,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,cAAc;IACjB,GAAG,kBAAkB;IACrB,GAAG,WAAW;IACd,GAAG,WAAW;IACd,GAAG,cAAc;IACjB,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,WAAW;IACd,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,WAAW;CACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ToolDefinition } from "./tool-definition.js";
2
+ /** Item spawning and container inventory access. */
3
+ export declare const inventoryTools: readonly ToolDefinition[];
4
+ //# sourceMappingURL=inventory-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory-tools.d.ts","sourceRoot":"","sources":["../../src/tools/inventory-tools.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ7E,oDAAoD;AACpD,eAAO,MAAM,cAAc,EAAE,SAAS,cAAc,EAyCnD,CAAC"}