@eclipse-glsp/server-mcp 2.7.0-next.9 → 2.8.0-next.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
@@ -0,0 +1,39 @@
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 { injectable } from 'inversify';
18
+ import { AbstractMcpServerLauncher, FullMcpServerConfiguration, TransportEndpoint } from '../../common/server/abstract-mcp-server-launcher';
19
+
20
+ /**
21
+ * Web target for {@link AbstractMcpServerLauncher}. Web targets (Cloudflare Worker, Deno Deploy,
22
+ * Bun, Service Worker, in-page Worker) have no socket to bind; the adopter plugs the inherited
23
+ * {@link AbstractMcpServerLauncher.getRequestHandler} into their own listener. `bindTransport`
24
+ * is therefore a no-op.
25
+ *
26
+ * **Adopter responsibilities.** Authentication is the adopter's job. The MCP server has no
27
+ * built-in auth — wrap `getRequestHandler()` with whatever middleware your deployment requires
28
+ * (bearer token, mTLS at proxy, Cloudflare Access, OAuth, etc.). Session state lives in memory
29
+ * inside the launcher; multi-isolate / multi-region deployments that need shared session state
30
+ * must subclass and override the session store.
31
+ *
32
+ * @see `examples/workflow-server-bundled-web/smoke.html` for a Web Worker-based example.
33
+ */
34
+ @injectable()
35
+ export class WebMcpServerLauncher extends AbstractMcpServerLauncher {
36
+ protected async bindTransport(_config: FullMcpServerConfiguration): Promise<TransportEndpoint> {
37
+ return {};
38
+ }
39
+ }
@@ -0,0 +1,65 @@
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
+ export * from './modules/abstract-mcp-server-module';
18
+ export * from './modules/mcp-diagram-module';
19
+ export * from './prompts/handlers/describe-diagram-mcp-prompt-handler';
20
+ export * from './prompts/handlers/suggest-improvements-mcp-prompt-handler';
21
+ export * from './resources/handlers/diagram-png-mcp-resource-handler';
22
+ export * from './resources/handlers/diagram-svg-mcp-resource-handler';
23
+ export * from './resources/services/element-types-provider';
24
+ export * from './resources/services/mcp-model-serializer';
25
+ export * from './server/abstract-mcp-server-launcher';
26
+ export * from './server/glsp-mcp-server';
27
+ export * from './server/lru-event-store';
28
+ export * from './server/mcp-diagram-handler-dispatcher';
29
+ export * from './server/mcp-diagram-prompt-handler-registry';
30
+ export * from './server/mcp-diagram-resource-handler-registry';
31
+ export * from './server/mcp-diagram-tool-handler-registry';
32
+ export * from './server/mcp-handler-shared';
33
+ export * from './server/mcp-id-alias-service';
34
+ export * from './server/mcp-input-schemas';
35
+ export * from './server/mcp-label-provider';
36
+ export * from './server/mcp-log-level-registry';
37
+ export * from './server/mcp-logger';
38
+ export * from './server/mcp-mime-types';
39
+ export * from './server/mcp-options';
40
+ export * from './server/mcp-progress-reporter';
41
+ export * from './server/mcp-prompt-handler';
42
+ export * from './server/mcp-request-context';
43
+ export * from './server/mcp-resource-handler';
44
+ export * from './server/mcp-session';
45
+ export * from './server/mcp-tool-handler';
46
+ export * from './tools/handlers/count-elements-mcp-tool-handler';
47
+ export * from './tools/handlers/create-edges-mcp-tool-handler';
48
+ export * from './tools/handlers/create-nodes-mcp-tool-handler';
49
+ export * from './tools/handlers/delete-elements-mcp-tool-handler';
50
+ export * from './tools/handlers/diagram-model-mcp-tool-handler';
51
+ export * from './tools/handlers/element-types-mcp-tool-handler';
52
+ export * from './tools/handlers/get-selection-mcp-tool-handler';
53
+ export * from './tools/handlers/layout-mcp-tool-handler';
54
+ export * from './tools/handlers/modify-edges-mcp-tool-handler';
55
+ export * from './tools/handlers/modify-nodes-mcp-tool-handler';
56
+ export * from './tools/handlers/query-elements-mcp-tool-handler';
57
+ export * from './tools/handlers/redo-mcp-tool-handler';
58
+ export * from './tools/handlers/save-model-mcp-tool-handler';
59
+ export * from './tools/handlers/session-info-mcp-tool-handler';
60
+ export * from './tools/handlers/set-selection-mcp-tool-handler';
61
+ export * from './tools/handlers/set-view-mcp-tool-handler';
62
+ export * from './tools/handlers/undo-mcp-tool-handler';
63
+ export * from './tools/handlers/validate-diagram-mcp-tool-handler';
64
+ export * from './util/markdown-util';
65
+ export * from './util/mcp-util';
@@ -27,24 +27,26 @@ import {
27
27
  } from '@eclipse-glsp/server';
28
28
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
29
29
  import { interfaces } from 'inversify';
30
- import { DescribeDiagramMcpPromptHandler, SuggestImprovementsMcpPromptHandler } from '../prompts';
31
- import { ElementTypesMcpToolHandler, SessionInfoMcpToolHandler } from '../tools';
32
- import { DefaultGLSPMcpServer, GLSPMcpServerFactory } from './glsp-mcp-server';
33
- import { DefaultMcpDiagramHandlerDispatcher, McpDiagramHandlerDispatcher } from './mcp-diagram-handler-dispatcher';
34
- import { DefaultMcpLogLevelRegistry, McpLogLevelRegistry } from './mcp-log-level-registry';
35
- import { LruEventStore } from './lru-event-store';
36
- import { McpHttpTransport } from './mcp-http-transport';
37
- import { McpLogger } from './mcp-logger';
38
- import { McpServerDefaults, McpServerOptions } from './mcp-options';
39
- import { McpProgressReporter } from './mcp-progress-reporter';
40
- import { McpPromptHandler } from './mcp-prompt-handler';
41
- import { McpResourceHandler } from './mcp-resource-handler';
42
- import { McpServerLauncher } from './mcp-server-launcher';
43
- import { McpToolHandler } from './mcp-tool-handler';
30
+ import { DescribeDiagramMcpPromptHandler } from '../prompts/handlers/describe-diagram-mcp-prompt-handler';
31
+ import { SuggestImprovementsMcpPromptHandler } from '../prompts/handlers/suggest-improvements-mcp-prompt-handler';
32
+ import { AbstractMcpServerLauncher } from '../server/abstract-mcp-server-launcher';
33
+ import { DefaultGLSPMcpServer, GLSPMcpServerFactory } from '../server/glsp-mcp-server';
34
+ import { LruEventStore } from '../server/lru-event-store';
35
+ import { DefaultMcpDiagramHandlerDispatcher, McpDiagramHandlerDispatcher } from '../server/mcp-diagram-handler-dispatcher';
36
+ import { DefaultMcpLogLevelRegistry, McpLogLevelRegistry } from '../server/mcp-log-level-registry';
37
+ import { McpLogger } from '../server/mcp-logger';
38
+ import { McpServerDefaults, McpServerOptions } from '../server/mcp-options';
39
+ import { McpProgressReporter } from '../server/mcp-progress-reporter';
40
+ import { McpPromptHandler } from '../server/mcp-prompt-handler';
41
+ import { McpRequestContext } from '../server/mcp-request-context';
42
+ import { McpResourceHandler } from '../server/mcp-resource-handler';
43
+ import { McpToolHandler } from '../server/mcp-tool-handler';
44
+ import { ElementTypesMcpToolHandler } from '../tools/handlers/element-types-mcp-tool-handler';
45
+ import { SessionInfoMcpToolHandler } from '../tools/handlers/session-info-mcp-tool-handler';
44
46
 
45
47
  /**
46
48
  * GLSP-generic default agent persona — adopters typically pass a product-specific persona to
47
- * the {@link DefaultMcpServerModule} constructor (e.g. workflow-server might say "You are the
49
+ * the concrete server module's constructor (e.g. workflow-server might say "You are the
48
50
  * Workflow Modeling Agent...").
49
51
  *
50
52
  * **Spec note.** This is wired to the MCP `instructions` field, which the spec describes as
@@ -53,7 +55,7 @@ import { McpToolHandler } from './mcp-tool-handler';
53
55
  * via `mcpDefaults.agentPersona`. Don't trim on autopilot if a "concise" interpretation drifts
54
56
  * back: the verbose form materially improves LLM tool-use compliance for graphical modelling.
55
57
  */
56
- const DEFAULT_AGENT_PERSONA = `
58
+ export const DEFAULT_AGENT_PERSONA = `
57
59
  You are the GLSP Modeling Agent. Your primary goal is to assist in the creation and modification of graphical models using the
58
60
  GLSP MCP server. You have to adhere to the following principles:
59
61
  - MCP-Interaction: Any modeling related activity has to occur using the MCP server.
@@ -71,6 +73,17 @@ GLSP MCP server. You have to adhere to the following principles:
71
73
  \`action: "center-on-elements"\` — to point the user at the elements you reference.
72
74
  `;
73
75
 
76
+ /**
77
+ * Target-neutral default option values shared by every {@link AbstractMcpServerModule} subclass.
78
+ * Node and Browser concrete modules spread this and add their own target-specific fields
79
+ * (e.g. `host`/`allowedHosts` on Node).
80
+ */
81
+ export const DEFAULT_MCP_OPTIONS: McpServerDefaults = {
82
+ dataMode: 'tools',
83
+ agentPersona: DEFAULT_AGENT_PERSONA,
84
+ eventStoreLimit: LruEventStore.DEFAULT_LIMIT
85
+ };
86
+
74
87
  /**
75
88
  * Multi-binding helper for MCP handler classes. Singleton-scoped sibling of core's
76
89
  * `MultiBinding<T>` — same `binding.add(...)` / `binding.rebind(old, new)` adopter shape, but
@@ -89,9 +102,11 @@ export class McpHandlerMultiBinding<T> extends AbstractMultiBinding<interfaces.N
89
102
  }
90
103
 
91
104
  /**
92
- * Server-scope DI module for the MCP server. Adopters subclass {@link DefaultMcpServerModule}
93
- * and override the `bind*` hooks to swap single-instance services or the `configure*` hooks to
94
- * add/replace handlers in the multi-bindings. Mirrors the `DiagramModule` pattern from core
105
+ * Server-scope DI module for the MCP server. Target-neutral: concrete subclasses (Node, Browser)
106
+ * supply the launcher + request-context bindings via {@link bindMcpServerLauncher} and
107
+ * {@link bindMcpRequestContext}. Adopters subclass the concrete module and override the `bind*`
108
+ * hooks to swap single-instance services or the `configure*` hooks to add/replace handlers in
109
+ * the multi-bindings. Mirrors the `DiagramModule` pattern from core
95
110
  * (`bindGModelSerializer()`, `configureActionHandlers(binding)`, etc.).
96
111
  *
97
112
  * Adopter-provided default option values flow through the constructor — pass a
@@ -101,13 +116,13 @@ export class McpHandlerMultiBinding<T> extends AbstractMultiBinding<interfaces.N
101
116
  * @example
102
117
  * ```ts
103
118
  * // Drop-in: GLSP defaults.
104
- * launcher.configure(serverModule, new DefaultMcpServerModule());
119
+ * launcher.configure(serverModule, new NodeMcpServerModule());
105
120
  *
106
121
  * // Drop-in with a product-specific override.
107
- * launcher.configure(serverModule, new DefaultMcpServerModule({ dataMode: 'resources' }));
122
+ * launcher.configure(serverModule, new NodeMcpServerModule({ dataMode: 'resources' }));
108
123
  *
109
124
  * // Subclass when handler customization is needed.
110
- * class WorkflowMcpServerModule extends DefaultMcpServerModule {
125
+ * class WorkflowMcpServerModule extends NodeMcpServerModule {
111
126
  * constructor() { super({ agentPersona: WORKFLOW_PERSONA }); }
112
127
  * protected override configureToolHandlers(binding) {
113
128
  * super.configureToolHandlers(binding);
@@ -117,9 +132,6 @@ export class McpHandlerMultiBinding<T> extends AbstractMultiBinding<interfaces.N
117
132
  * ```
118
133
  */
119
134
  export abstract class AbstractMcpServerModule extends GLSPModule {
120
- protected bind!: interfaces.Bind;
121
- protected rebind!: interfaces.Rebind;
122
-
123
135
  constructor(protected readonly defaultOptions: McpServerDefaults = {}) {
124
136
  super();
125
137
  }
@@ -128,23 +140,26 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
128
140
  bind: interfaces.Bind,
129
141
  _unbind: interfaces.Unbind,
130
142
  isBound: interfaces.IsBound,
131
- rebind: interfaces.Rebind
143
+ _rebind: interfaces.Rebind
132
144
  ): void {
133
- this.bind = bind;
134
- this.rebind = rebind;
135
145
  const context = { bind, isBound };
136
- applyBindingTarget(context, McpServerLauncher, this.bindMcpServerLauncher()).inSingletonScope();
137
- // The launcher is bound under two additional service identifiers so core's existing
146
+ applyBindingTarget(context, AbstractMcpServerLauncher, this.bindMcpServerLauncher())
147
+ .inSingletonScope()
148
+ .onActivation((_, launcher) => {
149
+ this.onMcpServerLauncherActivated(launcher);
150
+ return launcher;
151
+ });
152
+ // The launcher is aliased under two additional service identifiers so core's existing
138
153
  // multi-bindings pick it up alongside the rest of the server's contributions/listeners.
139
- bind(GLSPServerInitializer).toService(McpServerLauncher);
140
- bind(GLSPServerListener).toService(McpServerLauncher);
141
- applyBindingTarget(context, McpHttpTransport, this.bindMcpHttpTransport()).inSingletonScope();
154
+ bind(GLSPServerInitializer).toService(AbstractMcpServerLauncher);
155
+ bind(GLSPServerListener).toService(AbstractMcpServerLauncher);
142
156
  applyBindingTarget(context, McpDiagramHandlerDispatcher, this.bindMcpDiagramHandlerDispatcher()).inSingletonScope();
143
157
  applyBindingTarget(context, McpServerOptions, this.bindMcpServerOptions()).inSingletonScope();
144
158
  applyBindingTarget(context, McpServerDefaults, this.bindMcpServerDefaults());
145
159
  applyBindingTarget(context, McpLogger, this.bindMcpLogger()).inSingletonScope();
146
160
  applyBindingTarget(context, McpLogLevelRegistry, this.bindMcpLogLevelRegistry()).inSingletonScope();
147
161
  applyBindingTarget(context, McpProgressReporter, this.bindMcpProgressReporter()).inSingletonScope();
162
+ applyBindingTarget(context, McpRequestContext, this.bindMcpRequestContext()).inSingletonScope();
148
163
  applyBindingTarget(context, GLSPMcpServerFactory, this.bindGLSPMcpServerFactory());
149
164
  this.configureMultiBinding(new McpHandlerMultiBinding<McpToolHandler>(McpToolHandler), binding =>
150
165
  this.configureToolHandlers(binding as McpHandlerMultiBinding<McpToolHandler>)
@@ -158,18 +173,23 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
158
173
  }
159
174
 
160
175
  /**
161
- * {@link McpServerLauncher} binding. Bound as a singleton AND aliased to
162
- * `GLSPServerInitializer` + `GLSPServerListener` (the launcher implements both).
163
- * Override to swap in a custom launcher impl.
176
+ * {@link AbstractMcpServerLauncher} binding. Bound as a singleton AND aliased to
177
+ * `GLSPServerInitializer` + `GLSPServerListener` (the launcher implements both). Concrete
178
+ * modules return the target-specific launcher class (Node, Web, ...).
164
179
  */
165
- protected bindMcpServerLauncher(): BindingTarget<McpServerLauncher> {
166
- return McpServerLauncher;
167
- }
180
+ protected abstract bindMcpServerLauncher(): BindingTarget<AbstractMcpServerLauncher>;
168
181
 
169
- /** {@link McpHttpTransport} binding. Override to swap to a different transport implementation. */
170
- protected bindMcpHttpTransport(): BindingTarget<McpHttpTransport> {
171
- return McpHttpTransport;
172
- }
182
+ /**
183
+ * Hook fired once when the {@link AbstractMcpServerLauncher} singleton is first resolved by
184
+ * the DI container — lets adopters obtain the instance without subclassing it. No-op by default.
185
+ */
186
+ protected onMcpServerLauncherActivated(_launcher: AbstractMcpServerLauncher): void {}
187
+
188
+ /**
189
+ * {@link McpRequestContext} binding. Concrete modules return the target-specific async-context
190
+ * implementation (e.g. Node's `AsyncLocalStorage`-backed variant or a browser-friendly one).
191
+ */
192
+ protected abstract bindMcpRequestContext(): BindingTarget<McpRequestContext>;
173
193
 
174
194
  /**
175
195
  * {@link McpDiagramHandlerDispatcher} binding. Owns diagram-scope handler discovery,
@@ -194,16 +214,12 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
194
214
  return { constantValue: this.defaultOptions };
195
215
  }
196
216
 
197
- /**
198
- * {@link McpLogger} binding. Bound on the server container; per-session containers inherit
199
- * it, so handlers at any scope can inject it; routes through the active MCP request via
200
- * {@link mcpRequestContext}.
201
- */
217
+ /** {@link McpLogger} binding — routes through the active MCP request via {@link McpRequestContext}. */
202
218
  protected bindMcpLogger(): BindingTarget<McpLogger> {
203
219
  return McpLogger;
204
220
  }
205
221
 
206
- /** {@link McpProgressReporter} binding. Same scope/lifecycle story as {@link bindMcpLogger}. */
222
+ /** {@link McpProgressReporter} binding. */
207
223
  protected bindMcpProgressReporter(): BindingTarget<McpProgressReporter> {
208
224
  return McpProgressReporter;
209
225
  }
@@ -257,31 +273,3 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
257
273
  binding.add(SuggestImprovementsMcpPromptHandler);
258
274
  }
259
275
  }
260
-
261
- /**
262
- * Default {@link AbstractMcpServerModule} entry point. Ships GLSP-default option values (see
263
- * {@link DEFAULT_OPTIONS}) on top of the abstract module's hook defaults. Adopter-provided
264
- * overrides via the constructor merge on top.
265
- *
266
- * @experimental The MCP integration is under active development. Option names, schema shapes,
267
- * and handler contracts MAY change in minor releases until the feature graduates from
268
- * experimental status.
269
- */
270
- export class DefaultMcpServerModule extends AbstractMcpServerModule {
271
- static readonly DEFAULT_OPTIONS: McpServerDefaults = {
272
- host: '127.0.0.1',
273
- allowedHosts: ['127.0.0.1', 'localhost'],
274
- // `allowedOrigins` deliberately undefined: accept absent Origin (typical for desktop-IDE
275
- // MCP clients) and rely on Host validation to gate DNS-rebinding. Adopters whose
276
- // deployment is browser-fronted set this explicitly to their frontend's origin.
277
- dataMode: 'tools',
278
- agentPersona: DEFAULT_AGENT_PERSONA,
279
- // 10K events per session is generous for typical workloads (a few MB) and large enough
280
- // that disconnects within seconds recover via `Last-Event-ID` resumability.
281
- eventStoreLimit: LruEventStore.DEFAULT_LIMIT
282
- };
283
-
284
- constructor(overrides: McpServerDefaults = {}) {
285
- super({ ...DefaultMcpServerModule.DEFAULT_OPTIONS, ...overrides });
286
- }
287
- }
@@ -16,48 +16,47 @@
16
16
 
17
17
  import { applyBindingTarget, BindingTarget, ClientSessionInitializer, GLSPModule, InstanceMultiBinding } from '@eclipse-glsp/server';
18
18
  import { interfaces } from 'inversify';
19
- import { DiagramPngMcpResourceHandler, DiagramSvgMcpResourceHandler } from '../resources';
19
+ import { DiagramPngMcpResourceHandler } from '../resources/handlers/diagram-png-mcp-resource-handler';
20
+ import { DiagramSvgMcpResourceHandler } from '../resources/handlers/diagram-svg-mcp-resource-handler';
20
21
  import { DefaultElementTypesProvider, ElementTypesProvider } from '../resources/services/element-types-provider';
21
22
  import { MarkdownMcpModelSerializer, McpModelSerializer } from '../resources/services/mcp-model-serializer';
22
- import {
23
- CountElementsMcpToolHandler,
24
- CreateEdgesMcpToolHandler,
25
- CreateNodesMcpToolHandler,
26
- DeleteElementsMcpToolHandler,
27
- DiagramModelMcpToolHandler,
28
- GetSelectionMcpToolHandler,
29
- LayoutMcpToolHandler,
30
- ModifyEdgesMcpToolHandler,
31
- ModifyNodesMcpToolHandler,
32
- QueryElementsMcpToolHandler,
33
- RedoMcpToolHandler,
34
- SaveModelMcpToolHandler,
35
- SetSelectionMcpToolHandler,
36
- SetViewMcpToolHandler,
37
- UndoMcpToolHandler,
38
- ValidateDiagramMcpToolHandler
39
- } from '../tools';
23
+ import { CountElementsMcpToolHandler } from '../tools/handlers/count-elements-mcp-tool-handler';
24
+ import { CreateEdgesMcpToolHandler } from '../tools/handlers/create-edges-mcp-tool-handler';
25
+ import { CreateNodesMcpToolHandler } from '../tools/handlers/create-nodes-mcp-tool-handler';
26
+ import { DeleteElementsMcpToolHandler } from '../tools/handlers/delete-elements-mcp-tool-handler';
27
+ import { DiagramModelMcpToolHandler } from '../tools/handlers/diagram-model-mcp-tool-handler';
28
+ import { GetSelectionMcpToolHandler } from '../tools/handlers/get-selection-mcp-tool-handler';
29
+ import { LayoutMcpToolHandler } from '../tools/handlers/layout-mcp-tool-handler';
30
+ import { ModifyEdgesMcpToolHandler } from '../tools/handlers/modify-edges-mcp-tool-handler';
31
+ import { ModifyNodesMcpToolHandler } from '../tools/handlers/modify-nodes-mcp-tool-handler';
32
+ import { QueryElementsMcpToolHandler } from '../tools/handlers/query-elements-mcp-tool-handler';
33
+ import { RedoMcpToolHandler } from '../tools/handlers/redo-mcp-tool-handler';
34
+ import { SaveModelMcpToolHandler } from '../tools/handlers/save-model-mcp-tool-handler';
35
+ import { SetSelectionMcpToolHandler } from '../tools/handlers/set-selection-mcp-tool-handler';
36
+ import { SetViewMcpToolHandler } from '../tools/handlers/set-view-mcp-tool-handler';
37
+ import { UndoMcpToolHandler } from '../tools/handlers/undo-mcp-tool-handler';
38
+ import { ValidateDiagramMcpToolHandler } from '../tools/handlers/validate-diagram-mcp-tool-handler';
40
39
  import {
41
40
  McpDiagramPromptHandlerFactory,
42
41
  McpDiagramPromptHandlerRegistry,
43
42
  McpDiagramPromptHandlerRegistryInitializer
44
- } from './mcp-diagram-prompt-handler-registry';
43
+ } from '../server/mcp-diagram-prompt-handler-registry';
45
44
  import {
46
45
  McpDiagramResourceHandlerFactory,
47
46
  McpDiagramResourceHandlerRegistry,
48
47
  McpDiagramResourceHandlerRegistryInitializer
49
- } from './mcp-diagram-resource-handler-registry';
48
+ } from '../server/mcp-diagram-resource-handler-registry';
50
49
  import {
51
50
  McpDiagramToolHandlerFactory,
52
51
  McpDiagramToolHandlerRegistry,
53
52
  McpDiagramToolHandlerRegistryInitializer
54
- } from './mcp-diagram-tool-handler-registry';
55
- import { DefaultMcpIdAliasService, McpIdAliasService } from './mcp-id-alias-service';
56
- import { McpDiagramScopedInput } from './mcp-input-schemas';
57
- import { DefaultMcpLabelProvider, McpLabelProvider } from './mcp-label-provider';
58
- import { AbstractMcpDiagramPromptHandler, McpDiagramPromptHandlerConstructor } from './mcp-prompt-handler';
59
- import { AbstractMcpDiagramResourceHandler, McpDiagramResourceHandlerConstructor } from './mcp-resource-handler';
60
- import { BaseMcpDiagramToolHandler, McpDiagramToolHandlerConstructor } from './mcp-tool-handler';
53
+ } from '../server/mcp-diagram-tool-handler-registry';
54
+ import { DefaultMcpIdAliasService, McpIdAliasService } from '../server/mcp-id-alias-service';
55
+ import { McpDiagramScopedInput } from '../server/mcp-input-schemas';
56
+ import { DefaultMcpLabelProvider, McpLabelProvider } from '../server/mcp-label-provider';
57
+ import { AbstractMcpDiagramPromptHandler, McpDiagramPromptHandlerConstructor } from '../server/mcp-prompt-handler';
58
+ import { AbstractMcpDiagramResourceHandler, McpDiagramResourceHandlerConstructor } from '../server/mcp-resource-handler';
59
+ import { BaseMcpDiagramToolHandler, McpDiagramToolHandlerConstructor } from '../server/mcp-tool-handler';
61
60
 
62
61
  /**
63
62
  * Per-GLSP-client-session DI module for the MCP server. Loaded inside `configureDiagramModule`
@@ -17,15 +17,14 @@
17
17
  import { ClientSessionManager } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { AbstractMcpPromptHandler, McpPromptResult, resolveActiveSessionId } from '../../server';
21
- import {
22
- CountElementsMcpToolHandler,
23
- DiagramModelMcpToolHandler,
24
- ElementTypesMcpToolHandler,
25
- QueryElementsMcpToolHandler,
26
- SetSelectionMcpToolHandler,
27
- SetViewMcpToolHandler
28
- } from '../../tools';
20
+ import { McpPromptResult, resolveActiveSessionId } from '../../server/mcp-handler-shared';
21
+ import { AbstractMcpPromptHandler } from '../../server/mcp-prompt-handler';
22
+ import { CountElementsMcpToolHandler } from '../../tools/handlers/count-elements-mcp-tool-handler';
23
+ import { DiagramModelMcpToolHandler } from '../../tools/handlers/diagram-model-mcp-tool-handler';
24
+ import { ElementTypesMcpToolHandler } from '../../tools/handlers/element-types-mcp-tool-handler';
25
+ import { QueryElementsMcpToolHandler } from '../../tools/handlers/query-elements-mcp-tool-handler';
26
+ import { SetSelectionMcpToolHandler } from '../../tools/handlers/set-selection-mcp-tool-handler';
27
+ import { SetViewMcpToolHandler } from '../../tools/handlers/set-view-mcp-tool-handler';
29
28
 
30
29
  export const DescribeDiagramArgsSchema = z.object({
31
30
  sessionId: z
@@ -17,13 +17,12 @@
17
17
  import { ClientSessionManager } from '@eclipse-glsp/server';
18
18
  import { inject, injectable } from 'inversify';
19
19
  import * as z from 'zod/v4';
20
- import { AbstractMcpPromptHandler, McpPromptResult, resolveActiveSessionId } from '../../server';
21
- import {
22
- DiagramModelMcpToolHandler,
23
- QueryElementsMcpToolHandler,
24
- SetSelectionMcpToolHandler,
25
- ValidateDiagramMcpToolHandler
26
- } from '../../tools';
20
+ import { McpPromptResult, resolveActiveSessionId } from '../../server/mcp-handler-shared';
21
+ import { AbstractMcpPromptHandler } from '../../server/mcp-prompt-handler';
22
+ import { DiagramModelMcpToolHandler } from '../../tools/handlers/diagram-model-mcp-tool-handler';
23
+ import { QueryElementsMcpToolHandler } from '../../tools/handlers/query-elements-mcp-tool-handler';
24
+ import { SetSelectionMcpToolHandler } from '../../tools/handlers/set-selection-mcp-tool-handler';
25
+ import { ValidateDiagramMcpToolHandler } from '../../tools/handlers/validate-diagram-mcp-tool-handler';
27
26
 
28
27
  export const SuggestImprovementsArgsSchema = z.object({
29
28
  sessionId: z
@@ -18,15 +18,11 @@ import { ClientActionKinds, isGBoundsAware, RequestExportAction } from '@eclipse
18
18
  import { Role } from '@modelcontextprotocol/sdk/types.js';
19
19
  import { inject, injectable } from 'inversify';
20
20
  import * as z from 'zod/v4';
21
- import {
22
- AbstractMcpDiagramResourceHandler,
23
- McpDiagramScopedInputSchema,
24
- McpMimeType,
25
- McpProgressReporter,
26
- McpResourceContent,
27
- McpResourceUri,
28
- McpToolError
29
- } from '../../server';
21
+ import { McpResourceContent, McpToolError } from '../../server/mcp-handler-shared';
22
+ import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas';
23
+ import { McpMimeType } from '../../server/mcp-mime-types';
24
+ import { McpProgressReporter } from '../../server/mcp-progress-reporter';
25
+ import { AbstractMcpDiagramResourceHandler, McpResourceUri } from '../../server/mcp-resource-handler';
30
26
 
31
27
  export const DiagramPngInputSchema = McpDiagramScopedInputSchema.extend({
32
28
  scale: z
@@ -18,15 +18,11 @@ import { ClientActionKinds, RequestExportAction } from '@eclipse-glsp/server';
18
18
  import { Role } from '@modelcontextprotocol/sdk/types.js';
19
19
  import { inject, injectable } from 'inversify';
20
20
  import * as z from 'zod/v4';
21
- import {
22
- AbstractMcpDiagramResourceHandler,
23
- McpDiagramScopedInputSchema,
24
- McpMimeType,
25
- McpProgressReporter,
26
- McpResourceContent,
27
- McpResourceUri,
28
- McpToolError
29
- } from '../../server';
21
+ import { McpResourceContent, McpToolError } from '../../server/mcp-handler-shared';
22
+ import { McpDiagramScopedInputSchema } from '../../server/mcp-input-schemas';
23
+ import { McpMimeType } from '../../server/mcp-mime-types';
24
+ import { McpProgressReporter } from '../../server/mcp-progress-reporter';
25
+ import { AbstractMcpDiagramResourceHandler, McpResourceUri } from '../../server/mcp-resource-handler';
30
26
 
31
27
  export const DiagramSvgInputSchema = McpDiagramScopedInputSchema.extend({
32
28
  timeoutMs: z
@@ -19,7 +19,7 @@ import { Dimension, GModelSerializer, Logger, Point } from '@eclipse-glsp/server
19
19
  import { inject, injectable, postConstruct } from 'inversify';
20
20
  import { McpStructuredContent } from '../../server/mcp-handler-shared';
21
21
  import { McpIdAliasService } from '../../server/mcp-id-alias-service';
22
- import { objectArrayToMarkdownTable } from '../../util';
22
+ import { objectArrayToMarkdownTable } from '../../util/markdown-util';
23
23
 
24
24
  export const McpModelSerializer = Symbol('McpModelSerializer');
25
25