@eclipse-glsp/server-mcp 2.7.0-next.9 → 2.7.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 (461) hide show
  1. package/README.md +17 -3
  2. package/{lib/util/index.d.ts → browser.d.ts} +1 -3
  3. package/browser.js +18 -0
  4. package/common.d.ts +16 -0
  5. package/common.js +18 -0
  6. package/lib/{resources → browser}/index.d.ts +5 -4
  7. package/lib/browser/index.d.ts.map +1 -0
  8. package/lib/{index.js → browser/index.js} +20 -24
  9. package/lib/browser/index.js.map +1 -0
  10. package/lib/browser/modules/browser-mcp-server-module.d.ts +42 -0
  11. package/lib/browser/modules/browser-mcp-server-module.d.ts.map +1 -0
  12. package/lib/browser/modules/browser-mcp-server-module.js +50 -0
  13. package/lib/browser/modules/browser-mcp-server-module.js.map +1 -0
  14. package/lib/browser/reexport.d.ts +17 -0
  15. package/lib/browser/reexport.d.ts.map +1 -0
  16. package/lib/{util/index.js → browser/reexport.js} +17 -18
  17. package/lib/browser/reexport.js.map +1 -0
  18. package/lib/browser/server/browser-mcp-request-context.d.ts +27 -0
  19. package/lib/browser/server/browser-mcp-request-context.d.ts.map +1 -0
  20. package/lib/browser/server/browser-mcp-request-context.js +67 -0
  21. package/lib/browser/server/browser-mcp-request-context.js.map +1 -0
  22. package/lib/browser/server/mcp-worker-bridge.d.ts +81 -0
  23. package/lib/browser/server/mcp-worker-bridge.d.ts.map +1 -0
  24. package/lib/browser/server/mcp-worker-bridge.js +159 -0
  25. package/lib/browser/server/mcp-worker-bridge.js.map +1 -0
  26. package/lib/browser/server/web-mcp-server-launcher.d.ts +34 -0
  27. package/lib/browser/server/web-mcp-server-launcher.d.ts.map +1 -0
  28. package/lib/browser/server/web-mcp-server-launcher.js +50 -0
  29. package/lib/browser/server/web-mcp-server-launcher.js.map +1 -0
  30. package/lib/common/index.d.ts +65 -0
  31. package/lib/common/index.d.ts.map +1 -0
  32. package/lib/common/index.js +81 -0
  33. package/lib/common/index.js.map +1 -0
  34. package/lib/{server/mcp-server-module.d.ts → common/modules/abstract-mcp-server-module.d.ts} +55 -46
  35. package/lib/common/modules/abstract-mcp-server-module.d.ts.map +1 -0
  36. package/lib/{server/mcp-server-module.js → common/modules/abstract-mcp-server-module.js} +58 -79
  37. package/lib/common/modules/abstract-mcp-server-module.js.map +1 -0
  38. package/lib/{server → common/modules}/mcp-diagram-module.d.ts +5 -5
  39. package/lib/common/modules/mcp-diagram-module.d.ts.map +1 -0
  40. package/lib/{server → common/modules}/mcp-diagram-module.js +44 -28
  41. package/lib/common/modules/mcp-diagram-module.js.map +1 -0
  42. package/lib/{prompts → common/prompts}/handlers/describe-diagram-mcp-prompt-handler.d.ts +2 -1
  43. package/lib/common/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts.map +1 -0
  44. package/lib/{prompts → common/prompts}/handlers/describe-diagram-mcp-prompt-handler.js +21 -15
  45. package/lib/common/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +1 -0
  46. package/lib/{prompts → common/prompts}/handlers/suggest-improvements-mcp-prompt-handler.d.ts +2 -1
  47. package/lib/common/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts.map +1 -0
  48. package/lib/{prompts → common/prompts}/handlers/suggest-improvements-mcp-prompt-handler.js +16 -12
  49. package/lib/common/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +1 -0
  50. package/lib/{resources → common/resources}/handlers/diagram-png-mcp-resource-handler.d.ts +4 -1
  51. package/lib/common/resources/handlers/diagram-png-mcp-resource-handler.d.ts.map +1 -0
  52. package/lib/{resources → common/resources}/handlers/diagram-png-mcp-resource-handler.js +10 -7
  53. package/lib/common/resources/handlers/diagram-png-mcp-resource-handler.js.map +1 -0
  54. package/lib/{resources → common/resources}/handlers/diagram-svg-mcp-resource-handler.d.ts +4 -1
  55. package/lib/common/resources/handlers/diagram-svg-mcp-resource-handler.d.ts.map +1 -0
  56. package/lib/{resources → common/resources}/handlers/diagram-svg-mcp-resource-handler.js +9 -6
  57. package/lib/common/resources/handlers/diagram-svg-mcp-resource-handler.js.map +1 -0
  58. package/lib/common/resources/services/element-types-provider.d.ts.map +1 -0
  59. package/lib/common/resources/services/element-types-provider.js.map +1 -0
  60. package/lib/common/resources/services/mcp-model-serializer.d.ts.map +1 -0
  61. package/lib/{resources → common/resources}/services/mcp-model-serializer.js +2 -2
  62. package/lib/common/resources/services/mcp-model-serializer.js.map +1 -0
  63. package/lib/common/server/abstract-mcp-server-launcher.d.ts +168 -0
  64. package/lib/common/server/abstract-mcp-server-launcher.d.ts.map +1 -0
  65. package/lib/{server/mcp-server-launcher.js → common/server/abstract-mcp-server-launcher.js} +235 -121
  66. package/lib/common/server/abstract-mcp-server-launcher.js.map +1 -0
  67. package/lib/{server → common/server}/glsp-mcp-server.d.ts +1 -1
  68. package/lib/common/server/glsp-mcp-server.d.ts.map +1 -0
  69. package/lib/{server → common/server}/glsp-mcp-server.js +6 -1
  70. package/lib/common/server/glsp-mcp-server.js.map +1 -0
  71. package/lib/{server → common/server}/lru-event-store.d.ts +1 -1
  72. package/lib/common/server/lru-event-store.d.ts.map +1 -0
  73. package/lib/common/server/lru-event-store.js.map +1 -0
  74. package/lib/{server → common/server}/mcp-diagram-handler-dispatcher.d.ts +3 -1
  75. package/lib/common/server/mcp-diagram-handler-dispatcher.d.ts.map +1 -0
  76. package/lib/{server → common/server}/mcp-diagram-handler-dispatcher.js +12 -6
  77. package/lib/common/server/mcp-diagram-handler-dispatcher.js.map +1 -0
  78. package/lib/common/server/mcp-diagram-prompt-handler-registry.d.ts.map +1 -0
  79. package/lib/common/server/mcp-diagram-prompt-handler-registry.js.map +1 -0
  80. package/lib/common/server/mcp-diagram-resource-handler-registry.d.ts.map +1 -0
  81. package/lib/{server → common/server}/mcp-diagram-resource-handler-registry.js +4 -1
  82. package/lib/common/server/mcp-diagram-resource-handler-registry.js.map +1 -0
  83. package/lib/common/server/mcp-diagram-tool-handler-registry.d.ts.map +1 -0
  84. package/lib/{server → common/server}/mcp-diagram-tool-handler-registry.js +3 -1
  85. package/lib/common/server/mcp-diagram-tool-handler-registry.js.map +1 -0
  86. package/lib/common/server/mcp-handler-shared.d.ts.map +1 -0
  87. package/lib/common/server/mcp-handler-shared.js.map +1 -0
  88. package/lib/common/server/mcp-id-alias-service.d.ts.map +1 -0
  89. package/lib/common/server/mcp-id-alias-service.js.map +1 -0
  90. package/lib/{server → common/server}/mcp-input-schemas.d.ts +8 -0
  91. package/lib/common/server/mcp-input-schemas.d.ts.map +1 -0
  92. package/lib/{server → common/server}/mcp-input-schemas.js +13 -1
  93. package/lib/common/server/mcp-input-schemas.js.map +1 -0
  94. package/lib/common/server/mcp-label-provider.d.ts.map +1 -0
  95. package/lib/common/server/mcp-label-provider.js.map +1 -0
  96. package/lib/{server → common/server}/mcp-log-level-registry.d.ts +1 -1
  97. package/lib/common/server/mcp-log-level-registry.d.ts.map +1 -0
  98. package/lib/common/server/mcp-log-level-registry.js.map +1 -0
  99. package/lib/{server → common/server}/mcp-logger.d.ts +4 -2
  100. package/lib/common/server/mcp-logger.d.ts.map +1 -0
  101. package/lib/{server → common/server}/mcp-logger.js +11 -3
  102. package/lib/common/server/mcp-logger.js.map +1 -0
  103. package/lib/common/server/mcp-mime-types.d.ts.map +1 -0
  104. package/lib/common/server/mcp-mime-types.js.map +1 -0
  105. package/lib/{server → common/server}/mcp-options.d.ts +1 -1
  106. package/lib/common/server/mcp-options.d.ts.map +1 -0
  107. package/lib/{server → common/server}/mcp-options.js +1 -1
  108. package/lib/common/server/mcp-options.js.map +1 -0
  109. package/lib/{server → common/server}/mcp-progress-reporter.d.ts +4 -2
  110. package/lib/common/server/mcp-progress-reporter.d.ts.map +1 -0
  111. package/lib/{server → common/server}/mcp-progress-reporter.js +14 -3
  112. package/lib/common/server/mcp-progress-reporter.js.map +1 -0
  113. package/lib/{server → common/server}/mcp-prompt-handler.d.ts +3 -1
  114. package/lib/common/server/mcp-prompt-handler.d.ts.map +1 -0
  115. package/lib/{server → common/server}/mcp-prompt-handler.js +10 -2
  116. package/lib/common/server/mcp-prompt-handler.js.map +1 -0
  117. package/lib/common/server/mcp-request-context.d.ts +35 -0
  118. package/lib/common/server/mcp-request-context.d.ts.map +1 -0
  119. package/lib/common/server/mcp-request-context.js +30 -0
  120. package/lib/common/server/mcp-request-context.js.map +1 -0
  121. package/lib/{server → common/server}/mcp-resource-handler.d.ts +3 -1
  122. package/lib/common/server/mcp-resource-handler.d.ts.map +1 -0
  123. package/lib/{server → common/server}/mcp-resource-handler.js +13 -5
  124. package/lib/common/server/mcp-resource-handler.js.map +1 -0
  125. package/lib/common/server/mcp-session.d.ts.map +1 -0
  126. package/lib/common/server/mcp-session.js.map +1 -0
  127. package/lib/{server → common/server}/mcp-tool-handler.d.ts +3 -1
  128. package/lib/common/server/mcp-tool-handler.d.ts.map +1 -0
  129. package/lib/{server → common/server}/mcp-tool-handler.js +7 -1
  130. package/lib/{server → common/server}/mcp-tool-handler.js.map +1 -1
  131. package/lib/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.d.ts +2 -1
  132. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +1 -0
  133. package/lib/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.js +4 -3
  134. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.js.map +1 -0
  135. package/lib/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.d.ts +4 -1
  136. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +1 -0
  137. package/lib/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.js +9 -7
  138. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.js.map +1 -0
  139. package/lib/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.d.ts +4 -1
  140. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +1 -0
  141. package/lib/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.js +10 -8
  142. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.js.map +1 -0
  143. package/lib/{tools → common/tools}/handlers/delete-elements-mcp-tool-handler.d.ts +4 -1
  144. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +1 -0
  145. package/lib/{tools → common/tools}/handlers/delete-elements-mcp-tool-handler.js +9 -6
  146. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.js.map +1 -0
  147. package/lib/{tools → common/tools}/handlers/diagram-model-mcp-tool-handler.d.ts +2 -1
  148. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +1 -0
  149. package/lib/{tools → common/tools}/handlers/diagram-model-mcp-tool-handler.js +4 -3
  150. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.js.map +1 -0
  151. package/lib/{tools → common/tools}/handlers/element-types-mcp-tool-handler.d.ts +2 -1
  152. package/lib/common/tools/handlers/element-types-mcp-tool-handler.d.ts.map +1 -0
  153. package/lib/{tools → common/tools}/handlers/element-types-mcp-tool-handler.js +6 -5
  154. package/lib/common/tools/handlers/element-types-mcp-tool-handler.js.map +1 -0
  155. package/lib/{tools → common/tools}/handlers/get-selection-mcp-tool-handler.d.ts +2 -1
  156. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +1 -0
  157. package/lib/{tools → common/tools}/handlers/get-selection-mcp-tool-handler.js +6 -4
  158. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.js.map +1 -0
  159. package/lib/{tools → common/tools}/handlers/layout-mcp-tool-handler.d.ts +4 -1
  160. package/lib/common/tools/handlers/layout-mcp-tool-handler.d.ts.map +1 -0
  161. package/lib/{tools → common/tools}/handlers/layout-mcp-tool-handler.js +7 -5
  162. package/lib/common/tools/handlers/layout-mcp-tool-handler.js.map +1 -0
  163. package/lib/{tools → common/tools}/handlers/modify-edges-mcp-tool-handler.d.ts +2 -1
  164. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +1 -0
  165. package/lib/{tools → common/tools}/handlers/modify-edges-mcp-tool-handler.js +12 -10
  166. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.js.map +1 -0
  167. package/lib/{tools → common/tools}/handlers/modify-nodes-mcp-tool-handler.d.ts +2 -1
  168. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +1 -0
  169. package/lib/{tools → common/tools}/handlers/modify-nodes-mcp-tool-handler.js +13 -11
  170. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.js.map +1 -0
  171. package/lib/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.d.ts +2 -1
  172. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +1 -0
  173. package/lib/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.js +7 -5
  174. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.js.map +1 -0
  175. package/lib/{tools → common/tools}/handlers/redo-mcp-tool-handler.d.ts +2 -1
  176. package/lib/common/tools/handlers/redo-mcp-tool-handler.d.ts.map +1 -0
  177. package/lib/{tools → common/tools}/handlers/redo-mcp-tool-handler.js +6 -4
  178. package/lib/common/tools/handlers/redo-mcp-tool-handler.js.map +1 -0
  179. package/lib/{tools → common/tools}/handlers/save-model-mcp-tool-handler.d.ts +3 -1
  180. package/lib/common/tools/handlers/save-model-mcp-tool-handler.d.ts.map +1 -0
  181. package/lib/{tools → common/tools}/handlers/save-model-mcp-tool-handler.js +7 -5
  182. package/lib/common/tools/handlers/save-model-mcp-tool-handler.js.map +1 -0
  183. package/lib/{tools → common/tools}/handlers/session-info-mcp-tool-handler.d.ts +2 -1
  184. package/lib/common/tools/handlers/session-info-mcp-tool-handler.d.ts.map +1 -0
  185. package/lib/{tools → common/tools}/handlers/session-info-mcp-tool-handler.js +4 -3
  186. package/lib/common/tools/handlers/session-info-mcp-tool-handler.js.map +1 -0
  187. package/lib/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.d.ts +2 -1
  188. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +1 -0
  189. package/lib/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.js +6 -5
  190. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.js.map +1 -0
  191. package/lib/{tools → common/tools}/handlers/set-view-mcp-tool-handler.d.ts +2 -1
  192. package/lib/common/tools/handlers/set-view-mcp-tool-handler.d.ts.map +1 -0
  193. package/lib/{tools → common/tools}/handlers/set-view-mcp-tool-handler.js +10 -8
  194. package/lib/common/tools/handlers/set-view-mcp-tool-handler.js.map +1 -0
  195. package/lib/{tools → common/tools}/handlers/undo-mcp-tool-handler.d.ts +2 -1
  196. package/lib/common/tools/handlers/undo-mcp-tool-handler.d.ts.map +1 -0
  197. package/lib/{tools → common/tools}/handlers/undo-mcp-tool-handler.js +6 -4
  198. package/lib/common/tools/handlers/undo-mcp-tool-handler.js.map +1 -0
  199. package/lib/{tools → common/tools}/handlers/validate-diagram-mcp-tool-handler.d.ts +2 -1
  200. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +1 -0
  201. package/lib/{tools → common/tools}/handlers/validate-diagram-mcp-tool-handler.js +0 -0
  202. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.js.map +1 -0
  203. package/lib/common/util/markdown-util.d.ts.map +1 -0
  204. package/lib/common/util/markdown-util.js.map +1 -0
  205. package/lib/common/util/mcp-util.d.ts.map +1 -0
  206. package/lib/common/util/mcp-util.js.map +1 -0
  207. package/lib/{prompts → node}/index.d.ts +4 -2
  208. package/lib/node/index.d.ts.map +1 -0
  209. package/lib/{resources → node}/index.js +4 -4
  210. package/lib/node/index.js.map +1 -0
  211. package/lib/node/modules/node-mcp-server-module.d.ts +37 -0
  212. package/lib/node/modules/node-mcp-server-module.d.ts.map +1 -0
  213. package/lib/node/modules/node-mcp-server-module.js +52 -0
  214. package/lib/node/modules/node-mcp-server-module.js.map +1 -0
  215. package/lib/node/reexport.d.ts +17 -0
  216. package/lib/node/reexport.d.ts.map +1 -0
  217. package/lib/{prompts/index.js → node/reexport.js} +17 -18
  218. package/lib/node/reexport.js.map +1 -0
  219. package/lib/node/server/node-mcp-request-context.d.ts +24 -0
  220. package/lib/node/server/node-mcp-request-context.d.ts.map +1 -0
  221. package/lib/node/server/node-mcp-request-context.js +43 -0
  222. package/lib/node/server/node-mcp-request-context.js.map +1 -0
  223. package/lib/node/server/node-mcp-server-launcher.d.ts +55 -0
  224. package/lib/node/server/node-mcp-server-launcher.d.ts.map +1 -0
  225. package/lib/node/server/node-mcp-server-launcher.js +123 -0
  226. package/lib/node/server/node-mcp-server-launcher.js.map +1 -0
  227. package/node.d.ts +16 -0
  228. package/{src/util/index.ts → node.js} +2 -2
  229. package/package.json +19 -13
  230. package/src/{resources → browser}/index.ts +5 -4
  231. package/src/browser/modules/browser-mcp-server-module.ts +54 -0
  232. package/src/browser/reexport.ts +16 -0
  233. package/src/browser/server/browser-mcp-request-context.ts +59 -0
  234. package/src/browser/server/mcp-worker-bridge.ts +200 -0
  235. package/src/browser/server/web-mcp-server-launcher.ts +39 -0
  236. package/src/common/index.ts +65 -0
  237. package/src/{server/mcp-server-module.ts → common/modules/abstract-mcp-server-module.ts} +65 -77
  238. package/src/{server → common/modules}/mcp-diagram-module.ts +27 -28
  239. package/src/{prompts → common/prompts}/handlers/describe-diagram-mcp-prompt-handler.ts +8 -9
  240. package/src/{prompts → common/prompts}/handlers/suggest-improvements-mcp-prompt-handler.ts +6 -7
  241. package/src/{resources → common/resources}/handlers/diagram-png-mcp-resource-handler.ts +5 -9
  242. package/src/{resources → common/resources}/handlers/diagram-svg-mcp-resource-handler.ts +5 -9
  243. package/src/{resources → common/resources}/services/mcp-model-serializer.ts +1 -1
  244. package/src/common/server/abstract-mcp-server-launcher.spec.ts +458 -0
  245. package/src/common/server/abstract-mcp-server-launcher.ts +524 -0
  246. package/src/{server → common/server}/glsp-mcp-server.ts +7 -2
  247. package/src/{server → common/server}/lru-event-store.ts +1 -1
  248. package/src/{server → common/server}/mcp-diagram-handler-dispatcher.ts +13 -9
  249. package/src/{server → common/server}/mcp-diagram-resource-handler-registry.ts +4 -1
  250. package/src/{server → common/server}/mcp-diagram-tool-handler-registry.ts +3 -1
  251. package/src/{server → common/server}/mcp-input-schemas.ts +13 -0
  252. package/src/{server → common/server}/mcp-log-level-registry.ts +1 -1
  253. package/src/{server → common/server}/mcp-logger.spec.ts +26 -18
  254. package/src/{server → common/server}/mcp-logger.ts +9 -5
  255. package/src/{server → common/server}/mcp-options.ts +1 -1
  256. package/src/{server → common/server}/mcp-progress-reporter.spec.ts +19 -9
  257. package/src/{server → common/server}/mcp-progress-reporter.ts +9 -5
  258. package/src/{server → common/server}/mcp-prompt-handler.ts +8 -4
  259. package/src/{server → common/server}/mcp-request-context.ts +20 -16
  260. package/src/{server → common/server}/mcp-resource-handler.ts +11 -7
  261. package/src/{server → common/server}/mcp-tool-handler.spec.ts +4 -4
  262. package/src/{server → common/server}/mcp-tool-handler.ts +8 -4
  263. package/src/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.spec.ts +3 -1
  264. package/src/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.ts +3 -1
  265. package/src/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.spec.ts +3 -1
  266. package/src/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.ts +7 -5
  267. package/src/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.spec.ts +3 -1
  268. package/src/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.ts +7 -5
  269. package/src/{tools → common/tools}/handlers/delete-elements-mcp-tool-handler.ts +7 -9
  270. package/src/{tools → common/tools}/handlers/diagram-model-mcp-tool-handler.ts +3 -1
  271. package/src/{tools → common/tools}/handlers/element-types-mcp-tool-handler.ts +2 -1
  272. package/src/{tools → common/tools}/handlers/get-selection-mcp-tool-handler.ts +3 -1
  273. package/src/{tools → common/tools}/handlers/layout-mcp-tool-handler.ts +6 -3
  274. package/src/{tools → common/tools}/handlers/modify-edges-mcp-tool-handler.ts +6 -6
  275. package/src/{tools → common/tools}/handlers/modify-nodes-mcp-tool-handler.ts +6 -6
  276. package/src/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.spec.ts +3 -1
  277. package/src/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.ts +3 -7
  278. package/src/{tools → common/tools}/handlers/redo-mcp-tool-handler.ts +3 -1
  279. package/src/{tools → common/tools}/handlers/save-model-mcp-tool-handler.ts +4 -1
  280. package/src/{tools → common/tools}/handlers/session-info-mcp-tool-handler.spec.ts +1 -1
  281. package/src/{tools → common/tools}/handlers/session-info-mcp-tool-handler.ts +2 -1
  282. package/src/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.spec.ts +3 -1
  283. package/src/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.ts +3 -1
  284. package/src/{tools → common/tools}/handlers/set-view-mcp-tool-handler.ts +3 -9
  285. package/src/{tools → common/tools}/handlers/undo-mcp-tool-handler.ts +3 -1
  286. package/src/{tools → common/tools}/handlers/validate-diagram-mcp-tool-handler.ts +0 -0
  287. package/src/{prompts → node}/index.ts +4 -2
  288. package/src/node/modules/node-mcp-server-module.ts +56 -0
  289. package/src/node/reexport.ts +16 -0
  290. package/src/node/server/mcp-http-transport-e2e.spec.ts +297 -0
  291. package/src/node/server/node-mcp-request-context.ts +33 -0
  292. package/src/{server/mcp-server-launcher.spec.ts → node/server/node-mcp-server-launcher.spec.ts} +19 -8
  293. package/src/node/server/node-mcp-server-launcher.ts +130 -0
  294. package/lib/index.d.ts +0 -23
  295. package/lib/index.d.ts.map +0 -1
  296. package/lib/index.js.map +0 -1
  297. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts.map +0 -1
  298. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +0 -1
  299. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts.map +0 -1
  300. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +0 -1
  301. package/lib/prompts/index.d.ts.map +0 -1
  302. package/lib/prompts/index.js.map +0 -1
  303. package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts.map +0 -1
  304. package/lib/resources/handlers/diagram-png-mcp-resource-handler.js.map +0 -1
  305. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts.map +0 -1
  306. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js.map +0 -1
  307. package/lib/resources/index.d.ts.map +0 -1
  308. package/lib/resources/index.js.map +0 -1
  309. package/lib/resources/services/element-types-provider.d.ts.map +0 -1
  310. package/lib/resources/services/element-types-provider.js.map +0 -1
  311. package/lib/resources/services/mcp-model-serializer.d.ts.map +0 -1
  312. package/lib/resources/services/mcp-model-serializer.js.map +0 -1
  313. package/lib/server/glsp-mcp-server.d.ts.map +0 -1
  314. package/lib/server/glsp-mcp-server.js.map +0 -1
  315. package/lib/server/index.d.ts +0 -37
  316. package/lib/server/index.d.ts.map +0 -1
  317. package/lib/server/index.js +0 -57
  318. package/lib/server/index.js.map +0 -1
  319. package/lib/server/lru-event-store.d.ts.map +0 -1
  320. package/lib/server/lru-event-store.js.map +0 -1
  321. package/lib/server/mcp-diagram-handler-dispatcher.d.ts.map +0 -1
  322. package/lib/server/mcp-diagram-handler-dispatcher.js.map +0 -1
  323. package/lib/server/mcp-diagram-module.d.ts.map +0 -1
  324. package/lib/server/mcp-diagram-module.js.map +0 -1
  325. package/lib/server/mcp-diagram-prompt-handler-registry.d.ts.map +0 -1
  326. package/lib/server/mcp-diagram-prompt-handler-registry.js.map +0 -1
  327. package/lib/server/mcp-diagram-resource-handler-registry.d.ts.map +0 -1
  328. package/lib/server/mcp-diagram-resource-handler-registry.js.map +0 -1
  329. package/lib/server/mcp-diagram-tool-handler-registry.d.ts.map +0 -1
  330. package/lib/server/mcp-diagram-tool-handler-registry.js.map +0 -1
  331. package/lib/server/mcp-handler-shared.d.ts.map +0 -1
  332. package/lib/server/mcp-handler-shared.js.map +0 -1
  333. package/lib/server/mcp-http-transport.d.ts +0 -93
  334. package/lib/server/mcp-http-transport.d.ts.map +0 -1
  335. package/lib/server/mcp-http-transport.js +0 -350
  336. package/lib/server/mcp-http-transport.js.map +0 -1
  337. package/lib/server/mcp-id-alias-service.d.ts.map +0 -1
  338. package/lib/server/mcp-id-alias-service.js.map +0 -1
  339. package/lib/server/mcp-input-schemas.d.ts.map +0 -1
  340. package/lib/server/mcp-input-schemas.js.map +0 -1
  341. package/lib/server/mcp-label-provider.d.ts.map +0 -1
  342. package/lib/server/mcp-label-provider.js.map +0 -1
  343. package/lib/server/mcp-log-level-registry.d.ts.map +0 -1
  344. package/lib/server/mcp-log-level-registry.js.map +0 -1
  345. package/lib/server/mcp-logger.d.ts.map +0 -1
  346. package/lib/server/mcp-logger.js.map +0 -1
  347. package/lib/server/mcp-mime-types.d.ts.map +0 -1
  348. package/lib/server/mcp-mime-types.js.map +0 -1
  349. package/lib/server/mcp-options.d.ts.map +0 -1
  350. package/lib/server/mcp-options.js.map +0 -1
  351. package/lib/server/mcp-progress-reporter.d.ts.map +0 -1
  352. package/lib/server/mcp-progress-reporter.js.map +0 -1
  353. package/lib/server/mcp-prompt-handler.d.ts.map +0 -1
  354. package/lib/server/mcp-prompt-handler.js.map +0 -1
  355. package/lib/server/mcp-request-context.d.ts +0 -37
  356. package/lib/server/mcp-request-context.d.ts.map +0 -1
  357. package/lib/server/mcp-request-context.js +0 -37
  358. package/lib/server/mcp-request-context.js.map +0 -1
  359. package/lib/server/mcp-resource-handler.d.ts.map +0 -1
  360. package/lib/server/mcp-resource-handler.js.map +0 -1
  361. package/lib/server/mcp-server-launcher.d.ts +0 -143
  362. package/lib/server/mcp-server-launcher.d.ts.map +0 -1
  363. package/lib/server/mcp-server-launcher.js.map +0 -1
  364. package/lib/server/mcp-server-module.d.ts.map +0 -1
  365. package/lib/server/mcp-server-module.js.map +0 -1
  366. package/lib/server/mcp-session.d.ts.map +0 -1
  367. package/lib/server/mcp-session.js.map +0 -1
  368. package/lib/server/mcp-tool-handler.d.ts.map +0 -1
  369. package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +0 -1
  370. package/lib/tools/handlers/count-elements-mcp-tool-handler.js.map +0 -1
  371. package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +0 -1
  372. package/lib/tools/handlers/create-edges-mcp-tool-handler.js.map +0 -1
  373. package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +0 -1
  374. package/lib/tools/handlers/create-nodes-mcp-tool-handler.js.map +0 -1
  375. package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +0 -1
  376. package/lib/tools/handlers/delete-elements-mcp-tool-handler.js.map +0 -1
  377. package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +0 -1
  378. package/lib/tools/handlers/diagram-model-mcp-tool-handler.js.map +0 -1
  379. package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts.map +0 -1
  380. package/lib/tools/handlers/element-types-mcp-tool-handler.js.map +0 -1
  381. package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +0 -1
  382. package/lib/tools/handlers/get-selection-mcp-tool-handler.js.map +0 -1
  383. package/lib/tools/handlers/layout-mcp-tool-handler.d.ts.map +0 -1
  384. package/lib/tools/handlers/layout-mcp-tool-handler.js.map +0 -1
  385. package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +0 -1
  386. package/lib/tools/handlers/modify-edges-mcp-tool-handler.js.map +0 -1
  387. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +0 -1
  388. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js.map +0 -1
  389. package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +0 -1
  390. package/lib/tools/handlers/query-elements-mcp-tool-handler.js.map +0 -1
  391. package/lib/tools/handlers/redo-mcp-tool-handler.d.ts.map +0 -1
  392. package/lib/tools/handlers/redo-mcp-tool-handler.js.map +0 -1
  393. package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts.map +0 -1
  394. package/lib/tools/handlers/save-model-mcp-tool-handler.js.map +0 -1
  395. package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts.map +0 -1
  396. package/lib/tools/handlers/session-info-mcp-tool-handler.js.map +0 -1
  397. package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +0 -1
  398. package/lib/tools/handlers/set-selection-mcp-tool-handler.js.map +0 -1
  399. package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts.map +0 -1
  400. package/lib/tools/handlers/set-view-mcp-tool-handler.js.map +0 -1
  401. package/lib/tools/handlers/undo-mcp-tool-handler.d.ts.map +0 -1
  402. package/lib/tools/handlers/undo-mcp-tool-handler.js.map +0 -1
  403. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +0 -1
  404. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js.map +0 -1
  405. package/lib/tools/index.d.ts +0 -34
  406. package/lib/tools/index.d.ts.map +0 -1
  407. package/lib/tools/index.js +0 -50
  408. package/lib/tools/index.js.map +0 -1
  409. package/lib/util/index.d.ts.map +0 -1
  410. package/lib/util/index.js.map +0 -1
  411. package/lib/util/markdown-util.d.ts.map +0 -1
  412. package/lib/util/markdown-util.js.map +0 -1
  413. package/lib/util/mcp-util.d.ts.map +0 -1
  414. package/lib/util/mcp-util.js.map +0 -1
  415. package/src/index.ts +0 -24
  416. package/src/server/index.ts +0 -42
  417. package/src/server/mcp-http-transport-e2e.spec.ts +0 -151
  418. package/src/server/mcp-http-transport.spec.ts +0 -385
  419. package/src/server/mcp-http-transport.ts +0 -368
  420. package/src/server/mcp-server-launcher.ts +0 -369
  421. package/src/tools/index.ts +0 -34
  422. /package/lib/{resources → common/resources}/services/element-types-provider.d.ts +0 -0
  423. /package/lib/{resources → common/resources}/services/element-types-provider.js +0 -0
  424. /package/lib/{resources → common/resources}/services/mcp-model-serializer.d.ts +0 -0
  425. /package/lib/{server → common/server}/lru-event-store.js +0 -0
  426. /package/lib/{server → common/server}/mcp-diagram-prompt-handler-registry.d.ts +0 -0
  427. /package/lib/{server → common/server}/mcp-diagram-prompt-handler-registry.js +0 -0
  428. /package/lib/{server → common/server}/mcp-diagram-resource-handler-registry.d.ts +0 -0
  429. /package/lib/{server → common/server}/mcp-diagram-tool-handler-registry.d.ts +0 -0
  430. /package/lib/{server → common/server}/mcp-handler-shared.d.ts +0 -0
  431. /package/lib/{server → common/server}/mcp-handler-shared.js +0 -0
  432. /package/lib/{server → common/server}/mcp-id-alias-service.d.ts +0 -0
  433. /package/lib/{server → common/server}/mcp-id-alias-service.js +0 -0
  434. /package/lib/{server → common/server}/mcp-label-provider.d.ts +0 -0
  435. /package/lib/{server → common/server}/mcp-label-provider.js +0 -0
  436. /package/lib/{server → common/server}/mcp-log-level-registry.js +0 -0
  437. /package/lib/{server → common/server}/mcp-mime-types.d.ts +0 -0
  438. /package/lib/{server → common/server}/mcp-mime-types.js +0 -0
  439. /package/lib/{server → common/server}/mcp-session.d.ts +0 -0
  440. /package/lib/{server → common/server}/mcp-session.js +0 -0
  441. /package/lib/{util → common/util}/markdown-util.d.ts +0 -0
  442. /package/lib/{util → common/util}/markdown-util.js +0 -0
  443. /package/lib/{util → common/util}/mcp-util.d.ts +0 -0
  444. /package/lib/{util → common/util}/mcp-util.js +0 -0
  445. /package/src/{resources → common/resources}/services/element-types-provider.ts +0 -0
  446. /package/src/{server → common/server}/glsp-mcp-server.spec.ts +0 -0
  447. /package/src/{server → common/server}/lru-event-store.spec.ts +0 -0
  448. /package/src/{server → common/server}/mcp-diagram-handler-dispatcher.spec.ts +0 -0
  449. /package/src/{server → common/server}/mcp-diagram-prompt-handler-registry.ts +0 -0
  450. /package/src/{server → common/server}/mcp-handler-shared.spec.ts +0 -0
  451. /package/src/{server → common/server}/mcp-handler-shared.ts +0 -0
  452. /package/src/{server → common/server}/mcp-id-alias-service.spec.ts +0 -0
  453. /package/src/{server → common/server}/mcp-id-alias-service.ts +0 -0
  454. /package/src/{server → common/server}/mcp-label-provider.ts +0 -0
  455. /package/src/{server → common/server}/mcp-log-level-registry.spec.ts +0 -0
  456. /package/src/{server → common/server}/mcp-mime-types.ts +0 -0
  457. /package/src/{server → common/server}/mcp-session.ts +0 -0
  458. /package/src/{tools → common/tools}/tool-annotations.spec.ts +0 -0
  459. /package/src/{util → common/util}/markdown-util.ts +0 -0
  460. /package/src/{util → common/util}/mcp-util.ts +0 -0
  461. /package/src/{server → node/server}/raw-http.spec.ts +0 -0
@@ -17,15 +17,16 @@
17
17
  import { ChangeRoutingPointsOperation, CreateEdgeOperation, DiagramConfiguration, EdgeCreationChecker } from '@eclipse-glsp/server';
18
18
  import { inject, injectable, optional } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
+ import { McpToolResult } from '../../server/mcp-handler-shared';
20
21
  import {
21
22
  ElementIdentity,
22
23
  ElementIdentitySchema,
23
24
  McpDiagramScopedInputSchema,
24
- McpToolResult,
25
- OperationMcpDiagramToolHandler,
25
+ dispatchedCommands,
26
26
  position
27
- } from '../../server';
28
- import { formatNoticeList } from '../../util';
27
+ } from '../../server/mcp-input-schemas';
28
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
29
+ import { formatNoticeList } from '../../util/mcp-util';
29
30
 
30
31
  /** Single edge-creation entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
31
32
  export const CreateEdgeSpecSchema = z.strictObject({
@@ -58,6 +59,7 @@ export const CreateEdgesValidationResultSchema = z.object({
58
59
 
59
60
  export const CreateEdgesOutputSchema = z.object({
60
61
  createdEdges: z.array(ElementIdentitySchema).describe('Identity of each edge successfully created. Empty in `dryRun` mode.'),
62
+ dispatchedCommands,
61
63
  errors: z.array(z.string()).describe('Per-input failure messages; absent or empty when every input succeeded.'),
62
64
  validationResults: z
63
65
  .array(CreateEdgesValidationResultSchema)
@@ -164,7 +166,7 @@ export class CreateEdgesMcpToolHandler extends OperationMcpDiagramToolHandler<Cr
164
166
  // Per-input errors are surfaced in `errors`; the call itself still succeeds — rolling back partial creates would require operation-level transactions.
165
167
  return this.success(
166
168
  `Successfully created ${createdEdges.length} edge(s) (in ${dispatchedOperations} commands):\n${successListStr}${formatNoticeList('errors', errors)}`,
167
- { createdEdges, errors }
169
+ { createdEdges, dispatchedCommands: dispatchedOperations, errors }
168
170
  );
169
171
  }
170
172
 
@@ -28,7 +28,9 @@ import {
28
28
  } from '@eclipse-glsp/server';
29
29
  import { expect } from 'chai';
30
30
  import { Container, ContainerModule } from 'inversify';
31
- import { McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server';
31
+ import { McpToolResult } from '../../server/mcp-handler-shared';
32
+ import { McpIdAliasService } from '../../server/mcp-id-alias-service';
33
+ import { McpLabelProvider } from '../../server/mcp-label-provider';
32
34
  import { CreateNodesInput, CreateNodesMcpToolHandler } from './create-nodes-mcp-tool-handler';
33
35
 
34
36
  interface CreatedElementsStructured {
@@ -17,15 +17,16 @@
17
17
  import { ApplyLabelEditOperation, CreateNodeOperation } from '@eclipse-glsp/server';
18
18
  import { injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
+ import { McpToolResult } from '../../server/mcp-handler-shared';
20
21
  import {
21
22
  ElementIdentity,
22
23
  ElementIdentitySchema,
23
24
  McpDiagramScopedInputSchema,
24
- McpToolResult,
25
- OperationMcpDiagramToolHandler,
25
+ dispatchedCommands,
26
26
  position
27
- } from '../../server';
28
- import { formatNoticeList } from '../../util';
27
+ } from '../../server/mcp-input-schemas';
28
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
29
+ import { formatNoticeList } from '../../util/mcp-util';
29
30
 
30
31
  /** Single node-creation entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
31
32
  export const CreateNodeSpecSchema = z.strictObject({
@@ -48,6 +49,7 @@ export const CreateNodesOutputSchema = z.object({
48
49
  createdNodes: z
49
50
  .array(ElementIdentitySchema)
50
51
  .describe('Nodes successfully created, in input order. `label` is only present when the type actually accepted text.'),
52
+ dispatchedCommands,
51
53
  errors: z.array(z.string()).describe('Per-input hard-failure messages — the creation could not complete.'),
52
54
  warnings: z
53
55
  .array(z.string())
@@ -125,7 +127,7 @@ export class CreateNodesMcpToolHandler extends OperationMcpDiagramToolHandler<Cr
125
127
  `Successfully created ${createdNodes.length} node(s) (in ${dispatchedOperations} commands):\n${successListStr}` +
126
128
  formatNoticeList('errors', errors) +
127
129
  formatNoticeList('warnings', warnings),
128
- { createdNodes, errors, warnings }
130
+ { createdNodes, dispatchedCommands: dispatchedOperations, errors, warnings }
129
131
  );
130
132
  }
131
133
  }
@@ -17,13 +17,9 @@
17
17
  import { DeleteElementOperation } from '@eclipse-glsp/server';
18
18
  import { injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import {
21
- ElementIdentitySchema,
22
- McpDiagramScopedInputSchema,
23
- McpToolResult,
24
- OperationMcpDiagramToolHandler,
25
- elementIds
26
- } from '../../server';
20
+ import { McpToolResult } from '../../server/mcp-handler-shared';
21
+ import { ElementIdentitySchema, McpDiagramScopedInputSchema, dispatchedCommands, elementIds } from '../../server/mcp-input-schemas';
22
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
27
23
 
28
24
  export const DeleteElementsInputSchema = McpDiagramScopedInputSchema.extend({ elementIds });
29
25
  export type DeleteElementsInput = z.infer<typeof DeleteElementsInputSchema>;
@@ -39,7 +35,8 @@ export const DeleteElementsOutputSchema = z.object({
39
35
  .int()
40
36
  .describe(
41
37
  'Total number of elements removed from the model. Higher than `deletedElements.length` when dependents (e.g. edges) are auto-deleted.'
42
- )
38
+ ),
39
+ dispatchedCommands
43
40
  });
44
41
 
45
42
  @injectable()
@@ -67,7 +64,8 @@ export class DeleteElementsMcpToolHandler extends OperationMcpDiagramToolHandler
67
64
  const deletedCount = beforeCount - this.modelState.index.allIds().length;
68
65
  return this.success(`Successfully deleted ${deletedCount} element(s) (including dependents)`, {
69
66
  deletedElements,
70
- deletedCount
67
+ deletedCount,
68
+ dispatchedCommands: 1
71
69
  });
72
70
  }
73
71
  }
@@ -18,7 +18,9 @@ import { GModelElement } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
20
  import { McpModelSerializer } from '../../resources/services/mcp-model-serializer';
21
- import { McpDiagramScopedInputSchema, AbstractMcpDiagramToolHandler, McpToolResult } from '../../server';
21
+ import { McpToolResult } from '../../server/mcp-handler-shared';
22
+ import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas';
23
+ import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
22
24
 
23
25
  export const DiagramModelInputSchema = McpDiagramScopedInputSchema;
24
26
  export type DiagramModelInput = z.infer<typeof DiagramModelInputSchema>;
@@ -23,7 +23,8 @@ import {
23
23
  } from '@eclipse-glsp/server';
24
24
  import { Container, ContainerModule, inject, injectable } from 'inversify';
25
25
  import * as z from 'zod/v4';
26
- import { AbstractMcpToolHandler, McpToolError, McpToolResult } from '../../server';
26
+ import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared';
27
+ import { AbstractMcpToolHandler } from '../../server/mcp-tool-handler';
27
28
  import { ElementTypes, ElementTypesProvider } from '../../resources/services/element-types-provider';
28
29
 
29
30
  export const ElementTypesInputSchema = z.object({
@@ -17,7 +17,9 @@
17
17
  import { ActionDispatcher, GetSelectionAction } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { McpDiagramScopedInputSchema, AbstractMcpDiagramToolHandler, McpToolResult, requestActionOrFail } from '../../server';
20
+ import { McpToolResult, requestActionOrFail } from '../../server/mcp-handler-shared';
21
+ import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas';
22
+ import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
21
23
 
22
24
  export const GetSelectionInputSchema = McpDiagramScopedInputSchema;
23
25
  export type GetSelectionInput = z.infer<typeof GetSelectionInputSchema>;
@@ -17,13 +17,16 @@
17
17
  import { LayoutEngine, LayoutOperation } from '@eclipse-glsp/server';
18
18
  import { inject, injectable, optional } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { McpDiagramScopedInputSchema, McpToolResult, OperationMcpDiagramToolHandler } from '../../server';
20
+ import { McpToolResult } from '../../server/mcp-handler-shared';
21
+ import { McpDiagramScopedInputSchema, dispatchedCommands } from '../../server/mcp-input-schemas';
22
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
21
23
 
22
24
  export const LayoutInputSchema = McpDiagramScopedInputSchema;
23
25
  export type LayoutInput = z.infer<typeof LayoutInputSchema>;
24
26
 
25
27
  export const LayoutOutputSchema = z.object({
26
- applied: z.boolean().describe('Always true on success — surfaced for parity with other operations.')
28
+ applied: z.boolean().describe('Always true on success — surfaced for parity with other operations.'),
29
+ dispatchedCommands
27
30
  });
28
31
 
29
32
  /** Not registered by default: requires an adopter-supplied `LayoutEngine` to bind, which only some GLSP servers ship. */
@@ -51,6 +54,6 @@ export class LayoutMcpToolHandler extends OperationMcpDiagramToolHandler<LayoutI
51
54
 
52
55
  protected async createResult(_params: LayoutInput): Promise<McpToolResult> {
53
56
  await this.actionDispatcher.dispatch(LayoutOperation.create());
54
- return this.success('Automatic layout applied', { applied: true });
57
+ return this.success('Automatic layout applied', { applied: true, dispatchedCommands: 1 });
55
58
  }
56
59
  }
@@ -17,16 +17,16 @@
17
17
  import { ChangeRoutingPointsOperation, GEdge, ReconnectEdgeOperation } from '@eclipse-glsp/server';
18
18
  import { injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
+ import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared';
20
21
  import {
21
22
  ElementIdentitySchema,
22
23
  McpDiagramScopedInputSchema,
23
- McpToolError,
24
- McpToolResult,
25
- OperationMcpDiagramToolHandler,
24
+ dispatchedCommands,
26
25
  elementId as elementIdSchema,
27
26
  position
28
- } from '../../server';
29
- import { formatNoticeList } from '../../util';
27
+ } from '../../server/mcp-input-schemas';
28
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
29
+ import { formatNoticeList } from '../../util/mcp-util';
30
30
 
31
31
  /** Single edge-modification entry. Strict so an LLM-typoed field surfaces as a validation error instead of being silently dropped. */
32
32
  export const ModifyEdgeSpecSchema = z.strictObject({
@@ -52,7 +52,7 @@ export type ModifyEdgesInput = z.infer<typeof ModifyEdgesInputSchema>;
52
52
 
53
53
  export const ModifyEdgesOutputSchema = z.object({
54
54
  modifiedEdges: z.array(ElementIdentitySchema).describe('Identity of each edge whose change request was dispatched.'),
55
- dispatchedCommands: z.number().int().describe('Number of underlying GLSP operations dispatched.'),
55
+ dispatchedCommands,
56
56
  errors: z.array(z.string()).describe('Per-input failure messages; absent or empty when every input succeeded.')
57
57
  });
58
58
 
@@ -17,16 +17,16 @@
17
17
  import { ApplyLabelEditOperation, ChangeBoundsOperation, GEdge, GShapeElement } from '@eclipse-glsp/server';
18
18
  import { injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
+ import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared';
20
21
  import {
21
22
  ElementIdentitySchema,
22
23
  McpDiagramScopedInputSchema,
23
- McpToolError,
24
- McpToolResult,
25
- OperationMcpDiagramToolHandler,
24
+ dispatchedCommands,
26
25
  elementId,
27
26
  position
28
- } from '../../server';
29
- import { formatNoticeList } from '../../util';
27
+ } from '../../server/mcp-input-schemas';
28
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
29
+ import { formatNoticeList } from '../../util/mcp-util';
30
30
 
31
31
  /** Strict — any unknown field on the size object surfaces as a validation error. */
32
32
  export const NodeSizeSchema = z.strictObject({
@@ -54,7 +54,7 @@ export const ModifyNodesOutputSchema = z.object({
54
54
  modifiedNodes: z
55
55
  .array(ElementIdentitySchema)
56
56
  .describe('Identity of each node whose change request was dispatched (post-modification labels).'),
57
- dispatchedCommands: z.number().int().describe('Number of underlying GLSP operations dispatched (a single change may yield several).'),
57
+ dispatchedCommands,
58
58
  warnings: z
59
59
  .array(z.string())
60
60
  .describe(
@@ -18,7 +18,9 @@ import { ClientId, GLabel, GModelElement, Logger, ModelState, NullLogger } from
18
18
  import { expect } from 'chai';
19
19
  import { Container, ContainerModule } from 'inversify';
20
20
  import { McpModelSerializer } from '../../resources/services/mcp-model-serializer';
21
- import { DefaultMcpLabelProvider, McpElementsNotFoundError, McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server';
21
+ import { McpElementsNotFoundError, McpToolResult } from '../../server/mcp-handler-shared';
22
+ import { McpIdAliasService } from '../../server/mcp-id-alias-service';
23
+ import { DefaultMcpLabelProvider, McpLabelProvider } from '../../server/mcp-label-provider';
22
24
  import { QueryElementsInput, QueryElementsMcpToolHandler } from './query-elements-mcp-tool-handler';
23
25
 
24
26
  function makeLabel(text: string): GLabel {
@@ -18,13 +18,9 @@ import { GModelElement } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
20
  import { McpModelSerializer } from '../../resources/services/mcp-model-serializer';
21
- import {
22
- McpDiagramScopedInputSchema,
23
- AbstractMcpDiagramToolHandler,
24
- McpElementsNotFoundError,
25
- McpToolResult,
26
- elementIds as elementIdsSchema
27
- } from '../../server';
21
+ import { McpElementsNotFoundError, McpToolResult } from '../../server/mcp-handler-shared';
22
+ import { McpDiagramScopedInputSchema, elementIds as elementIdsSchema } from '../../server/mcp-input-schemas';
23
+ import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
28
24
 
29
25
  export const QueryElementsInputSchema = McpDiagramScopedInputSchema.extend({
30
26
  elementIds: elementIdsSchema
@@ -17,7 +17,9 @@
17
17
  import { CommandStack, RedoAction } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { McpDiagramScopedInputSchema, McpToolError, McpToolResult, OperationMcpDiagramToolHandler } from '../../server';
20
+ import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared';
21
+ import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas';
22
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
21
23
 
22
24
  export const RedoInputSchema = McpDiagramScopedInputSchema.extend({
23
25
  commandsToRedo: z.number().min(1).default(1).describe('Number of commands to redo. Defaults to 1 (most recent undone command).')
@@ -17,7 +17,10 @@
17
17
  import { ActionDispatcher, CommandStack, SaveModelAction } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { McpDiagramScopedInputSchema, AbstractMcpDiagramToolHandler, McpLogger, McpToolResult } from '../../server';
20
+ import { McpToolResult } from '../../server/mcp-handler-shared';
21
+ import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas';
22
+ import { McpLogger } from '../../server/mcp-logger';
23
+ import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
21
24
 
22
25
  export const SaveModelInputSchema = McpDiagramScopedInputSchema.extend({
23
26
  fileUri: z.string().optional().describe('Optional destination file URI. If not provided, saves to the original source model location.')
@@ -17,7 +17,7 @@
17
17
  import { ClientSession, ClientSessionManager, CommandStack, Logger, ModelState, NullLogger } from '@eclipse-glsp/server';
18
18
  import { expect } from 'chai';
19
19
  import { Container, ContainerModule } from 'inversify';
20
- import { McpToolResult } from '../../server';
20
+ import { McpToolResult } from '../../server/mcp-handler-shared';
21
21
  import { SessionInfoMcpToolHandler } from './session-info-mcp-tool-handler';
22
22
 
23
23
  function asText(result: McpToolResult): string {
@@ -17,7 +17,8 @@
17
17
  import { ClientSessionManager, CommandStack, ModelState } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { AbstractMcpToolHandler, McpToolError, McpToolResult } from '../../server';
20
+ import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared';
21
+ import { AbstractMcpToolHandler } from '../../server/mcp-tool-handler';
21
22
 
22
23
  export const SessionInfoInputSchema = z.object({
23
24
  sessionId: z
@@ -27,7 +27,9 @@ import {
27
27
  } from '@eclipse-glsp/server';
28
28
  import { expect } from 'chai';
29
29
  import { Container, ContainerModule } from 'inversify';
30
- import { DefaultMcpLabelProvider, McpElementsNotFoundError, McpIdAliasService, McpLabelProvider, McpToolResult } from '../../server';
30
+ import { McpElementsNotFoundError, McpToolResult } from '../../server/mcp-handler-shared';
31
+ import { McpIdAliasService } from '../../server/mcp-id-alias-service';
32
+ import { DefaultMcpLabelProvider, McpLabelProvider } from '../../server/mcp-label-provider';
31
33
  import { SetSelectionInput, SetSelectionMcpToolHandler } from './set-selection-mcp-tool-handler';
32
34
 
33
35
  function makeElement(id: string, type: string): GModelElement {
@@ -17,7 +17,9 @@
17
17
  import { ActionDispatcher, SelectAction, SelectAllAction } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { AbstractMcpDiagramToolHandler, McpDiagramScopedInputSchema, McpToolResult, elementIds } from '../../server';
20
+ import { McpToolResult } from '../../server/mcp-handler-shared';
21
+ import { McpDiagramScopedInputSchema, elementIds } from '../../server/mcp-input-schemas';
22
+ import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
21
23
 
22
24
  export const SetSelectionInputSchema = McpDiagramScopedInputSchema.extend({
23
25
  selectedElementIds: elementIds
@@ -26,15 +26,9 @@ import {
26
26
  } from '@eclipse-glsp/server';
27
27
  import { inject, injectable } from 'inversify';
28
28
  import * as z from 'zod/v4';
29
- import {
30
- McpDiagramScopedInputSchema,
31
- AbstractMcpDiagramToolHandler,
32
- McpToolError,
33
- McpToolResult,
34
- elementIds,
35
- position,
36
- requestActionOrFail
37
- } from '../../server';
29
+ import { McpToolError, McpToolResult, requestActionOrFail } from '../../server/mcp-handler-shared';
30
+ import { McpDiagramScopedInputSchema, elementIds, position } from '../../server/mcp-input-schemas';
31
+ import { AbstractMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
38
32
 
39
33
  export const VIEWPORT_ACTIONS = ['fit-to-screen', 'center-on-elements', 'reset-viewport', 'set-viewport'] as const;
40
34
  export type ViewportAction = (typeof VIEWPORT_ACTIONS)[number];
@@ -17,7 +17,9 @@
17
17
  import { CommandStack, UndoAction } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { McpDiagramScopedInputSchema, McpToolError, McpToolResult, OperationMcpDiagramToolHandler } from '../../server';
20
+ import { McpToolError, McpToolResult } from '../../server/mcp-handler-shared';
21
+ import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas';
22
+ import { OperationMcpDiagramToolHandler } from '../../server/mcp-tool-handler';
21
23
 
22
24
  export const UndoInputSchema = McpDiagramScopedInputSchema.extend({
23
25
  commandsToUndo: z.number().min(1).default(1).describe('Number of commands to undo. Defaults to 1 (most recent command).')
@@ -14,5 +14,7 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- export * from './handlers/describe-diagram-mcp-prompt-handler';
18
- export * from './handlers/suggest-improvements-mcp-prompt-handler';
17
+ export * from './modules/node-mcp-server-module';
18
+ export * from './reexport';
19
+ export * from './server/node-mcp-request-context';
20
+ export * from './server/node-mcp-server-launcher';
@@ -0,0 +1,56 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ import { BindingTarget } from '@eclipse-glsp/server';
18
+ import { AbstractMcpServerModule, DEFAULT_MCP_OPTIONS } from '../../common/modules/abstract-mcp-server-module';
19
+ import { AbstractMcpServerLauncher } from '../../common/server/abstract-mcp-server-launcher';
20
+ import { McpServerDefaults } from '../../common/server/mcp-options';
21
+ import { McpRequestContext } from '../../common/server/mcp-request-context';
22
+ import { NodeMcpServerLauncher } from '../server/node-mcp-server-launcher';
23
+ import { NodeMcpRequestContext } from '../server/node-mcp-request-context';
24
+
25
+ /**
26
+ * Default {@link AbstractMcpServerModule} entry point for Node hosts. Ships GLSP-default option
27
+ * values (see {@link DEFAULT_OPTIONS}) on top of the abstract module's hook defaults, and binds
28
+ * the Node-flavored {@link NodeMcpServerLauncher} + {@link NodeMcpRequestContext}. Adopter-provided
29
+ * overrides via the constructor merge on top.
30
+ *
31
+ * @experimental The MCP integration is under active development. Option names, schema shapes,
32
+ * and handler contracts MAY change in minor releases until the feature graduates from
33
+ * experimental status.
34
+ */
35
+ export class NodeMcpServerModule extends AbstractMcpServerModule {
36
+ static readonly DEFAULT_OPTIONS: McpServerDefaults = {
37
+ ...DEFAULT_MCP_OPTIONS,
38
+ host: '127.0.0.1',
39
+ allowedHosts: ['127.0.0.1', 'localhost']
40
+ // `allowedOrigins` deliberately undefined: accept absent Origin (typical for desktop-IDE
41
+ // MCP clients) and rely on Host validation to gate DNS-rebinding. Adopters whose
42
+ // deployment is browser-fronted set this explicitly to their frontend's origin.
43
+ };
44
+
45
+ constructor(overrides: McpServerDefaults = {}) {
46
+ super({ ...NodeMcpServerModule.DEFAULT_OPTIONS, ...overrides });
47
+ }
48
+
49
+ protected override bindMcpServerLauncher(): BindingTarget<AbstractMcpServerLauncher> {
50
+ return NodeMcpServerLauncher;
51
+ }
52
+
53
+ protected override bindMcpRequestContext(): BindingTarget<McpRequestContext> {
54
+ return NodeMcpRequestContext;
55
+ }
56
+ }
@@ -0,0 +1,16 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ export * from '../common';