@eclipse-glsp/server-mcp 2.7.0-next.10 → 2.7.0-next.11

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 (443) hide show
  1. package/README.md +17 -3
  2. package/browser.d.ts +16 -0
  3. package/browser.js +18 -0
  4. package/common.d.ts +16 -0
  5. package/common.js +18 -0
  6. package/lib/browser/index.d.ts +21 -0
  7. package/lib/browser/index.d.ts.map +1 -0
  8. package/lib/browser/index.js +37 -0
  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/browser/reexport.js +33 -0
  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/{index.d.ts → common/index.d.ts} +3 -4
  31. package/lib/common/index.d.ts.map +1 -0
  32. package/lib/{index.js → common/index.js} +17 -18
  33. package/lib/common/index.js.map +1 -0
  34. package/lib/{modules/mcp-server-module.d.ts → common/modules/abstract-mcp-server-module.d.ts} +46 -37
  35. package/lib/common/modules/abstract-mcp-server-module.d.ts.map +1 -0
  36. package/lib/{modules/mcp-server-module.js → common/modules/abstract-mcp-server-module.js} +43 -66
  37. package/lib/common/modules/abstract-mcp-server-module.js.map +1 -0
  38. package/lib/common/modules/mcp-diagram-module.d.ts.map +1 -0
  39. package/lib/common/modules/mcp-diagram-module.js.map +1 -0
  40. package/lib/common/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts.map +1 -0
  41. package/lib/common/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +1 -0
  42. package/lib/common/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts.map +1 -0
  43. package/lib/common/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +1 -0
  44. package/lib/common/resources/handlers/diagram-png-mcp-resource-handler.d.ts.map +1 -0
  45. package/lib/common/resources/handlers/diagram-png-mcp-resource-handler.js.map +1 -0
  46. package/lib/common/resources/handlers/diagram-svg-mcp-resource-handler.d.ts.map +1 -0
  47. package/lib/common/resources/handlers/diagram-svg-mcp-resource-handler.js.map +1 -0
  48. package/lib/common/resources/services/element-types-provider.d.ts.map +1 -0
  49. package/lib/common/resources/services/element-types-provider.js.map +1 -0
  50. package/lib/common/resources/services/mcp-model-serializer.d.ts.map +1 -0
  51. package/lib/common/resources/services/mcp-model-serializer.js.map +1 -0
  52. package/lib/common/server/abstract-mcp-server-launcher.d.ts +168 -0
  53. package/lib/common/server/abstract-mcp-server-launcher.d.ts.map +1 -0
  54. package/lib/{server/mcp-server-launcher.js → common/server/abstract-mcp-server-launcher.js} +235 -121
  55. package/lib/common/server/abstract-mcp-server-launcher.js.map +1 -0
  56. package/lib/{server → common/server}/glsp-mcp-server.d.ts +1 -1
  57. package/lib/common/server/glsp-mcp-server.d.ts.map +1 -0
  58. package/lib/{server → common/server}/glsp-mcp-server.js +6 -1
  59. package/lib/common/server/glsp-mcp-server.js.map +1 -0
  60. package/lib/{server → common/server}/lru-event-store.d.ts +1 -1
  61. package/lib/common/server/lru-event-store.d.ts.map +1 -0
  62. package/lib/common/server/lru-event-store.js.map +1 -0
  63. package/lib/{server → common/server}/mcp-diagram-handler-dispatcher.d.ts +3 -1
  64. package/lib/common/server/mcp-diagram-handler-dispatcher.d.ts.map +1 -0
  65. package/lib/{server → common/server}/mcp-diagram-handler-dispatcher.js +12 -6
  66. package/lib/common/server/mcp-diagram-handler-dispatcher.js.map +1 -0
  67. package/lib/common/server/mcp-diagram-prompt-handler-registry.d.ts.map +1 -0
  68. package/lib/common/server/mcp-diagram-prompt-handler-registry.js.map +1 -0
  69. package/lib/common/server/mcp-diagram-resource-handler-registry.d.ts.map +1 -0
  70. package/lib/{server → common/server}/mcp-diagram-resource-handler-registry.js +4 -1
  71. package/lib/common/server/mcp-diagram-resource-handler-registry.js.map +1 -0
  72. package/lib/common/server/mcp-diagram-tool-handler-registry.d.ts.map +1 -0
  73. package/lib/{server → common/server}/mcp-diagram-tool-handler-registry.js +3 -1
  74. package/lib/common/server/mcp-diagram-tool-handler-registry.js.map +1 -0
  75. package/lib/common/server/mcp-handler-shared.d.ts.map +1 -0
  76. package/lib/common/server/mcp-handler-shared.js.map +1 -0
  77. package/lib/common/server/mcp-id-alias-service.d.ts.map +1 -0
  78. package/lib/common/server/mcp-id-alias-service.js.map +1 -0
  79. package/lib/{server → common/server}/mcp-input-schemas.d.ts +8 -0
  80. package/lib/common/server/mcp-input-schemas.d.ts.map +1 -0
  81. package/lib/{server → common/server}/mcp-input-schemas.js +13 -1
  82. package/lib/common/server/mcp-input-schemas.js.map +1 -0
  83. package/lib/common/server/mcp-label-provider.d.ts.map +1 -0
  84. package/lib/common/server/mcp-label-provider.js.map +1 -0
  85. package/lib/{server → common/server}/mcp-log-level-registry.d.ts +1 -1
  86. package/lib/common/server/mcp-log-level-registry.d.ts.map +1 -0
  87. package/lib/common/server/mcp-log-level-registry.js.map +1 -0
  88. package/lib/{server → common/server}/mcp-logger.d.ts +4 -2
  89. package/lib/common/server/mcp-logger.d.ts.map +1 -0
  90. package/lib/{server → common/server}/mcp-logger.js +11 -3
  91. package/lib/common/server/mcp-logger.js.map +1 -0
  92. package/lib/common/server/mcp-mime-types.d.ts.map +1 -0
  93. package/lib/common/server/mcp-mime-types.js.map +1 -0
  94. package/lib/{server → common/server}/mcp-options.d.ts +1 -1
  95. package/lib/common/server/mcp-options.d.ts.map +1 -0
  96. package/lib/{server → common/server}/mcp-options.js +1 -1
  97. package/lib/common/server/mcp-options.js.map +1 -0
  98. package/lib/{server → common/server}/mcp-progress-reporter.d.ts +4 -2
  99. package/lib/common/server/mcp-progress-reporter.d.ts.map +1 -0
  100. package/lib/{server → common/server}/mcp-progress-reporter.js +14 -3
  101. package/lib/common/server/mcp-progress-reporter.js.map +1 -0
  102. package/lib/{server → common/server}/mcp-prompt-handler.d.ts +3 -1
  103. package/lib/common/server/mcp-prompt-handler.d.ts.map +1 -0
  104. package/lib/{server → common/server}/mcp-prompt-handler.js +10 -2
  105. package/lib/common/server/mcp-prompt-handler.js.map +1 -0
  106. package/lib/common/server/mcp-request-context.d.ts +35 -0
  107. package/lib/common/server/mcp-request-context.d.ts.map +1 -0
  108. package/lib/common/server/mcp-request-context.js +30 -0
  109. package/lib/common/server/mcp-request-context.js.map +1 -0
  110. package/lib/{server → common/server}/mcp-resource-handler.d.ts +3 -1
  111. package/lib/common/server/mcp-resource-handler.d.ts.map +1 -0
  112. package/lib/{server → common/server}/mcp-resource-handler.js +13 -5
  113. package/lib/common/server/mcp-resource-handler.js.map +1 -0
  114. package/lib/common/server/mcp-session.d.ts.map +1 -0
  115. package/lib/common/server/mcp-session.js.map +1 -0
  116. package/lib/{server → common/server}/mcp-tool-handler.d.ts +3 -1
  117. package/lib/common/server/mcp-tool-handler.d.ts.map +1 -0
  118. package/lib/{server → common/server}/mcp-tool-handler.js +7 -1
  119. package/lib/{server → common/server}/mcp-tool-handler.js.map +1 -1
  120. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +1 -0
  121. package/lib/common/tools/handlers/count-elements-mcp-tool-handler.js.map +1 -0
  122. package/lib/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.d.ts +2 -0
  123. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +1 -0
  124. package/lib/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.js +2 -1
  125. package/lib/common/tools/handlers/create-edges-mcp-tool-handler.js.map +1 -0
  126. package/lib/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.d.ts +2 -0
  127. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +1 -0
  128. package/lib/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.js +2 -1
  129. package/lib/common/tools/handlers/create-nodes-mcp-tool-handler.js.map +1 -0
  130. package/lib/{tools → common/tools}/handlers/delete-elements-mcp-tool-handler.d.ts +2 -0
  131. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +1 -0
  132. package/lib/{tools → common/tools}/handlers/delete-elements-mcp-tool-handler.js +4 -2
  133. package/lib/common/tools/handlers/delete-elements-mcp-tool-handler.js.map +1 -0
  134. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +1 -0
  135. package/lib/common/tools/handlers/diagram-model-mcp-tool-handler.js.map +1 -0
  136. package/lib/common/tools/handlers/element-types-mcp-tool-handler.d.ts.map +1 -0
  137. package/lib/common/tools/handlers/element-types-mcp-tool-handler.js.map +1 -0
  138. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +1 -0
  139. package/lib/common/tools/handlers/get-selection-mcp-tool-handler.js.map +1 -0
  140. package/lib/{tools → common/tools}/handlers/layout-mcp-tool-handler.d.ts +2 -0
  141. package/lib/common/tools/handlers/layout-mcp-tool-handler.d.ts.map +1 -0
  142. package/lib/{tools → common/tools}/handlers/layout-mcp-tool-handler.js +3 -2
  143. package/lib/common/tools/handlers/layout-mcp-tool-handler.js.map +1 -0
  144. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +1 -0
  145. package/lib/{tools → common/tools}/handlers/modify-edges-mcp-tool-handler.js +1 -1
  146. package/lib/common/tools/handlers/modify-edges-mcp-tool-handler.js.map +1 -0
  147. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +1 -0
  148. package/lib/{tools → common/tools}/handlers/modify-nodes-mcp-tool-handler.js +1 -1
  149. package/lib/common/tools/handlers/modify-nodes-mcp-tool-handler.js.map +1 -0
  150. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +1 -0
  151. package/lib/common/tools/handlers/query-elements-mcp-tool-handler.js.map +1 -0
  152. package/lib/common/tools/handlers/redo-mcp-tool-handler.d.ts.map +1 -0
  153. package/lib/common/tools/handlers/redo-mcp-tool-handler.js.map +1 -0
  154. package/lib/common/tools/handlers/save-model-mcp-tool-handler.d.ts.map +1 -0
  155. package/lib/common/tools/handlers/save-model-mcp-tool-handler.js.map +1 -0
  156. package/lib/common/tools/handlers/session-info-mcp-tool-handler.d.ts.map +1 -0
  157. package/lib/common/tools/handlers/session-info-mcp-tool-handler.js.map +1 -0
  158. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +1 -0
  159. package/lib/common/tools/handlers/set-selection-mcp-tool-handler.js.map +1 -0
  160. package/lib/common/tools/handlers/set-view-mcp-tool-handler.d.ts.map +1 -0
  161. package/lib/common/tools/handlers/set-view-mcp-tool-handler.js.map +1 -0
  162. package/lib/common/tools/handlers/undo-mcp-tool-handler.d.ts.map +1 -0
  163. package/lib/common/tools/handlers/undo-mcp-tool-handler.js.map +1 -0
  164. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +1 -0
  165. package/lib/common/tools/handlers/validate-diagram-mcp-tool-handler.js.map +1 -0
  166. package/lib/common/util/markdown-util.d.ts.map +1 -0
  167. package/lib/common/util/markdown-util.js.map +1 -0
  168. package/lib/common/util/mcp-util.d.ts.map +1 -0
  169. package/lib/common/util/mcp-util.js.map +1 -0
  170. package/lib/node/index.d.ts +20 -0
  171. package/lib/node/index.d.ts.map +1 -0
  172. package/lib/node/index.js +36 -0
  173. package/lib/node/index.js.map +1 -0
  174. package/lib/node/modules/node-mcp-server-module.d.ts +37 -0
  175. package/lib/node/modules/node-mcp-server-module.d.ts.map +1 -0
  176. package/lib/node/modules/node-mcp-server-module.js +52 -0
  177. package/lib/node/modules/node-mcp-server-module.js.map +1 -0
  178. package/lib/node/reexport.d.ts +17 -0
  179. package/lib/node/reexport.d.ts.map +1 -0
  180. package/lib/node/reexport.js +33 -0
  181. package/lib/node/reexport.js.map +1 -0
  182. package/lib/node/server/node-mcp-request-context.d.ts +24 -0
  183. package/lib/node/server/node-mcp-request-context.d.ts.map +1 -0
  184. package/lib/node/server/node-mcp-request-context.js +43 -0
  185. package/lib/node/server/node-mcp-request-context.js.map +1 -0
  186. package/lib/node/server/node-mcp-server-launcher.d.ts +55 -0
  187. package/lib/node/server/node-mcp-server-launcher.d.ts.map +1 -0
  188. package/lib/node/server/node-mcp-server-launcher.js +123 -0
  189. package/lib/node/server/node-mcp-server-launcher.js.map +1 -0
  190. package/node.d.ts +16 -0
  191. package/node.js +18 -0
  192. package/package.json +19 -13
  193. package/src/browser/index.ts +21 -0
  194. package/src/browser/modules/browser-mcp-server-module.ts +54 -0
  195. package/src/browser/reexport.ts +16 -0
  196. package/src/browser/server/browser-mcp-request-context.ts +59 -0
  197. package/src/browser/server/mcp-worker-bridge.ts +200 -0
  198. package/src/browser/server/web-mcp-server-launcher.ts +39 -0
  199. package/src/{index.ts → common/index.ts} +4 -4
  200. package/src/{modules/mcp-server-module.ts → common/modules/abstract-mcp-server-module.ts} +54 -68
  201. package/src/common/server/abstract-mcp-server-launcher.spec.ts +458 -0
  202. package/src/common/server/abstract-mcp-server-launcher.ts +524 -0
  203. package/src/{server → common/server}/glsp-mcp-server.ts +7 -2
  204. package/src/{server → common/server}/lru-event-store.ts +1 -1
  205. package/src/{server → common/server}/mcp-diagram-handler-dispatcher.ts +13 -9
  206. package/src/{server → common/server}/mcp-diagram-resource-handler-registry.ts +4 -1
  207. package/src/{server → common/server}/mcp-diagram-tool-handler-registry.ts +3 -1
  208. package/src/{server → common/server}/mcp-input-schemas.ts +13 -0
  209. package/src/{server → common/server}/mcp-log-level-registry.ts +1 -1
  210. package/src/{server → common/server}/mcp-logger.spec.ts +26 -18
  211. package/src/{server → common/server}/mcp-logger.ts +9 -5
  212. package/src/{server → common/server}/mcp-options.ts +1 -1
  213. package/src/{server → common/server}/mcp-progress-reporter.spec.ts +19 -9
  214. package/src/{server → common/server}/mcp-progress-reporter.ts +9 -5
  215. package/src/{server → common/server}/mcp-prompt-handler.ts +8 -4
  216. package/src/{server → common/server}/mcp-request-context.ts +20 -16
  217. package/src/{server → common/server}/mcp-resource-handler.ts +11 -7
  218. package/src/{server → common/server}/mcp-tool-handler.spec.ts +4 -4
  219. package/src/{server → common/server}/mcp-tool-handler.ts +8 -4
  220. package/src/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.ts +9 -2
  221. package/src/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.ts +9 -2
  222. package/src/{tools → common/tools}/handlers/delete-elements-mcp-tool-handler.ts +5 -3
  223. package/src/{tools → common/tools}/handlers/layout-mcp-tool-handler.ts +4 -3
  224. package/src/{tools → common/tools}/handlers/modify-edges-mcp-tool-handler.ts +8 -2
  225. package/src/{tools → common/tools}/handlers/modify-nodes-mcp-tool-handler.ts +8 -2
  226. package/src/node/index.ts +20 -0
  227. package/src/node/modules/node-mcp-server-module.ts +56 -0
  228. package/src/node/reexport.ts +16 -0
  229. package/src/node/server/mcp-http-transport-e2e.spec.ts +297 -0
  230. package/src/node/server/node-mcp-request-context.ts +33 -0
  231. package/src/{server/mcp-server-launcher.spec.ts → node/server/node-mcp-server-launcher.spec.ts} +19 -8
  232. package/src/node/server/node-mcp-server-launcher.ts +130 -0
  233. package/lib/index.d.ts.map +0 -1
  234. package/lib/index.js.map +0 -1
  235. package/lib/modules/mcp-diagram-module.d.ts.map +0 -1
  236. package/lib/modules/mcp-diagram-module.js.map +0 -1
  237. package/lib/modules/mcp-server-module.d.ts.map +0 -1
  238. package/lib/modules/mcp-server-module.js.map +0 -1
  239. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts.map +0 -1
  240. package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +0 -1
  241. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts.map +0 -1
  242. package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +0 -1
  243. package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts.map +0 -1
  244. package/lib/resources/handlers/diagram-png-mcp-resource-handler.js.map +0 -1
  245. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts.map +0 -1
  246. package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js.map +0 -1
  247. package/lib/resources/services/element-types-provider.d.ts.map +0 -1
  248. package/lib/resources/services/element-types-provider.js.map +0 -1
  249. package/lib/resources/services/mcp-model-serializer.d.ts.map +0 -1
  250. package/lib/resources/services/mcp-model-serializer.js.map +0 -1
  251. package/lib/server/glsp-mcp-server.d.ts.map +0 -1
  252. package/lib/server/glsp-mcp-server.js.map +0 -1
  253. package/lib/server/lru-event-store.d.ts.map +0 -1
  254. package/lib/server/lru-event-store.js.map +0 -1
  255. package/lib/server/mcp-diagram-handler-dispatcher.d.ts.map +0 -1
  256. package/lib/server/mcp-diagram-handler-dispatcher.js.map +0 -1
  257. package/lib/server/mcp-diagram-prompt-handler-registry.d.ts.map +0 -1
  258. package/lib/server/mcp-diagram-prompt-handler-registry.js.map +0 -1
  259. package/lib/server/mcp-diagram-resource-handler-registry.d.ts.map +0 -1
  260. package/lib/server/mcp-diagram-resource-handler-registry.js.map +0 -1
  261. package/lib/server/mcp-diagram-tool-handler-registry.d.ts.map +0 -1
  262. package/lib/server/mcp-diagram-tool-handler-registry.js.map +0 -1
  263. package/lib/server/mcp-handler-shared.d.ts.map +0 -1
  264. package/lib/server/mcp-handler-shared.js.map +0 -1
  265. package/lib/server/mcp-http-transport.d.ts +0 -93
  266. package/lib/server/mcp-http-transport.d.ts.map +0 -1
  267. package/lib/server/mcp-http-transport.js +0 -350
  268. package/lib/server/mcp-http-transport.js.map +0 -1
  269. package/lib/server/mcp-id-alias-service.d.ts.map +0 -1
  270. package/lib/server/mcp-id-alias-service.js.map +0 -1
  271. package/lib/server/mcp-input-schemas.d.ts.map +0 -1
  272. package/lib/server/mcp-input-schemas.js.map +0 -1
  273. package/lib/server/mcp-label-provider.d.ts.map +0 -1
  274. package/lib/server/mcp-label-provider.js.map +0 -1
  275. package/lib/server/mcp-log-level-registry.d.ts.map +0 -1
  276. package/lib/server/mcp-log-level-registry.js.map +0 -1
  277. package/lib/server/mcp-logger.d.ts.map +0 -1
  278. package/lib/server/mcp-logger.js.map +0 -1
  279. package/lib/server/mcp-mime-types.d.ts.map +0 -1
  280. package/lib/server/mcp-mime-types.js.map +0 -1
  281. package/lib/server/mcp-options.d.ts.map +0 -1
  282. package/lib/server/mcp-options.js.map +0 -1
  283. package/lib/server/mcp-progress-reporter.d.ts.map +0 -1
  284. package/lib/server/mcp-progress-reporter.js.map +0 -1
  285. package/lib/server/mcp-prompt-handler.d.ts.map +0 -1
  286. package/lib/server/mcp-prompt-handler.js.map +0 -1
  287. package/lib/server/mcp-request-context.d.ts +0 -37
  288. package/lib/server/mcp-request-context.d.ts.map +0 -1
  289. package/lib/server/mcp-request-context.js +0 -37
  290. package/lib/server/mcp-request-context.js.map +0 -1
  291. package/lib/server/mcp-resource-handler.d.ts.map +0 -1
  292. package/lib/server/mcp-resource-handler.js.map +0 -1
  293. package/lib/server/mcp-server-launcher.d.ts +0 -143
  294. package/lib/server/mcp-server-launcher.d.ts.map +0 -1
  295. package/lib/server/mcp-server-launcher.js.map +0 -1
  296. package/lib/server/mcp-session.d.ts.map +0 -1
  297. package/lib/server/mcp-session.js.map +0 -1
  298. package/lib/server/mcp-tool-handler.d.ts.map +0 -1
  299. package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +0 -1
  300. package/lib/tools/handlers/count-elements-mcp-tool-handler.js.map +0 -1
  301. package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +0 -1
  302. package/lib/tools/handlers/create-edges-mcp-tool-handler.js.map +0 -1
  303. package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +0 -1
  304. package/lib/tools/handlers/create-nodes-mcp-tool-handler.js.map +0 -1
  305. package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +0 -1
  306. package/lib/tools/handlers/delete-elements-mcp-tool-handler.js.map +0 -1
  307. package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +0 -1
  308. package/lib/tools/handlers/diagram-model-mcp-tool-handler.js.map +0 -1
  309. package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts.map +0 -1
  310. package/lib/tools/handlers/element-types-mcp-tool-handler.js.map +0 -1
  311. package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +0 -1
  312. package/lib/tools/handlers/get-selection-mcp-tool-handler.js.map +0 -1
  313. package/lib/tools/handlers/layout-mcp-tool-handler.d.ts.map +0 -1
  314. package/lib/tools/handlers/layout-mcp-tool-handler.js.map +0 -1
  315. package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +0 -1
  316. package/lib/tools/handlers/modify-edges-mcp-tool-handler.js.map +0 -1
  317. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +0 -1
  318. package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js.map +0 -1
  319. package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +0 -1
  320. package/lib/tools/handlers/query-elements-mcp-tool-handler.js.map +0 -1
  321. package/lib/tools/handlers/redo-mcp-tool-handler.d.ts.map +0 -1
  322. package/lib/tools/handlers/redo-mcp-tool-handler.js.map +0 -1
  323. package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts.map +0 -1
  324. package/lib/tools/handlers/save-model-mcp-tool-handler.js.map +0 -1
  325. package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts.map +0 -1
  326. package/lib/tools/handlers/session-info-mcp-tool-handler.js.map +0 -1
  327. package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +0 -1
  328. package/lib/tools/handlers/set-selection-mcp-tool-handler.js.map +0 -1
  329. package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts.map +0 -1
  330. package/lib/tools/handlers/set-view-mcp-tool-handler.js.map +0 -1
  331. package/lib/tools/handlers/undo-mcp-tool-handler.d.ts.map +0 -1
  332. package/lib/tools/handlers/undo-mcp-tool-handler.js.map +0 -1
  333. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +0 -1
  334. package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js.map +0 -1
  335. package/lib/util/markdown-util.d.ts.map +0 -1
  336. package/lib/util/markdown-util.js.map +0 -1
  337. package/lib/util/mcp-util.d.ts.map +0 -1
  338. package/lib/util/mcp-util.js.map +0 -1
  339. package/src/server/mcp-http-transport-e2e.spec.ts +0 -151
  340. package/src/server/mcp-http-transport.spec.ts +0 -385
  341. package/src/server/mcp-http-transport.ts +0 -368
  342. package/src/server/mcp-server-launcher.ts +0 -369
  343. /package/lib/{modules → common/modules}/mcp-diagram-module.d.ts +0 -0
  344. /package/lib/{modules → common/modules}/mcp-diagram-module.js +0 -0
  345. /package/lib/{prompts → common/prompts}/handlers/describe-diagram-mcp-prompt-handler.d.ts +0 -0
  346. /package/lib/{prompts → common/prompts}/handlers/describe-diagram-mcp-prompt-handler.js +0 -0
  347. /package/lib/{prompts → common/prompts}/handlers/suggest-improvements-mcp-prompt-handler.d.ts +0 -0
  348. /package/lib/{prompts → common/prompts}/handlers/suggest-improvements-mcp-prompt-handler.js +0 -0
  349. /package/lib/{resources → common/resources}/handlers/diagram-png-mcp-resource-handler.d.ts +0 -0
  350. /package/lib/{resources → common/resources}/handlers/diagram-png-mcp-resource-handler.js +0 -0
  351. /package/lib/{resources → common/resources}/handlers/diagram-svg-mcp-resource-handler.d.ts +0 -0
  352. /package/lib/{resources → common/resources}/handlers/diagram-svg-mcp-resource-handler.js +0 -0
  353. /package/lib/{resources → common/resources}/services/element-types-provider.d.ts +0 -0
  354. /package/lib/{resources → common/resources}/services/element-types-provider.js +0 -0
  355. /package/lib/{resources → common/resources}/services/mcp-model-serializer.d.ts +0 -0
  356. /package/lib/{resources → common/resources}/services/mcp-model-serializer.js +0 -0
  357. /package/lib/{server → common/server}/lru-event-store.js +0 -0
  358. /package/lib/{server → common/server}/mcp-diagram-prompt-handler-registry.d.ts +0 -0
  359. /package/lib/{server → common/server}/mcp-diagram-prompt-handler-registry.js +0 -0
  360. /package/lib/{server → common/server}/mcp-diagram-resource-handler-registry.d.ts +0 -0
  361. /package/lib/{server → common/server}/mcp-diagram-tool-handler-registry.d.ts +0 -0
  362. /package/lib/{server → common/server}/mcp-handler-shared.d.ts +0 -0
  363. /package/lib/{server → common/server}/mcp-handler-shared.js +0 -0
  364. /package/lib/{server → common/server}/mcp-id-alias-service.d.ts +0 -0
  365. /package/lib/{server → common/server}/mcp-id-alias-service.js +0 -0
  366. /package/lib/{server → common/server}/mcp-label-provider.d.ts +0 -0
  367. /package/lib/{server → common/server}/mcp-label-provider.js +0 -0
  368. /package/lib/{server → common/server}/mcp-log-level-registry.js +0 -0
  369. /package/lib/{server → common/server}/mcp-mime-types.d.ts +0 -0
  370. /package/lib/{server → common/server}/mcp-mime-types.js +0 -0
  371. /package/lib/{server → common/server}/mcp-session.d.ts +0 -0
  372. /package/lib/{server → common/server}/mcp-session.js +0 -0
  373. /package/lib/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.d.ts +0 -0
  374. /package/lib/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.js +0 -0
  375. /package/lib/{tools → common/tools}/handlers/diagram-model-mcp-tool-handler.d.ts +0 -0
  376. /package/lib/{tools → common/tools}/handlers/diagram-model-mcp-tool-handler.js +0 -0
  377. /package/lib/{tools → common/tools}/handlers/element-types-mcp-tool-handler.d.ts +0 -0
  378. /package/lib/{tools → common/tools}/handlers/element-types-mcp-tool-handler.js +0 -0
  379. /package/lib/{tools → common/tools}/handlers/get-selection-mcp-tool-handler.d.ts +0 -0
  380. /package/lib/{tools → common/tools}/handlers/get-selection-mcp-tool-handler.js +0 -0
  381. /package/lib/{tools → common/tools}/handlers/modify-edges-mcp-tool-handler.d.ts +0 -0
  382. /package/lib/{tools → common/tools}/handlers/modify-nodes-mcp-tool-handler.d.ts +0 -0
  383. /package/lib/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.d.ts +0 -0
  384. /package/lib/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.js +0 -0
  385. /package/lib/{tools → common/tools}/handlers/redo-mcp-tool-handler.d.ts +0 -0
  386. /package/lib/{tools → common/tools}/handlers/redo-mcp-tool-handler.js +0 -0
  387. /package/lib/{tools → common/tools}/handlers/save-model-mcp-tool-handler.d.ts +0 -0
  388. /package/lib/{tools → common/tools}/handlers/save-model-mcp-tool-handler.js +0 -0
  389. /package/lib/{tools → common/tools}/handlers/session-info-mcp-tool-handler.d.ts +0 -0
  390. /package/lib/{tools → common/tools}/handlers/session-info-mcp-tool-handler.js +0 -0
  391. /package/lib/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.d.ts +0 -0
  392. /package/lib/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.js +0 -0
  393. /package/lib/{tools → common/tools}/handlers/set-view-mcp-tool-handler.d.ts +0 -0
  394. /package/lib/{tools → common/tools}/handlers/set-view-mcp-tool-handler.js +0 -0
  395. /package/lib/{tools → common/tools}/handlers/undo-mcp-tool-handler.d.ts +0 -0
  396. /package/lib/{tools → common/tools}/handlers/undo-mcp-tool-handler.js +0 -0
  397. /package/lib/{tools → common/tools}/handlers/validate-diagram-mcp-tool-handler.d.ts +0 -0
  398. /package/lib/{tools → common/tools}/handlers/validate-diagram-mcp-tool-handler.js +0 -0
  399. /package/lib/{util → common/util}/markdown-util.d.ts +0 -0
  400. /package/lib/{util → common/util}/markdown-util.js +0 -0
  401. /package/lib/{util → common/util}/mcp-util.d.ts +0 -0
  402. /package/lib/{util → common/util}/mcp-util.js +0 -0
  403. /package/src/{modules → common/modules}/mcp-diagram-module.ts +0 -0
  404. /package/src/{prompts → common/prompts}/handlers/describe-diagram-mcp-prompt-handler.ts +0 -0
  405. /package/src/{prompts → common/prompts}/handlers/suggest-improvements-mcp-prompt-handler.ts +0 -0
  406. /package/src/{resources → common/resources}/handlers/diagram-png-mcp-resource-handler.ts +0 -0
  407. /package/src/{resources → common/resources}/handlers/diagram-svg-mcp-resource-handler.ts +0 -0
  408. /package/src/{resources → common/resources}/services/element-types-provider.ts +0 -0
  409. /package/src/{resources → common/resources}/services/mcp-model-serializer.ts +0 -0
  410. /package/src/{server → common/server}/glsp-mcp-server.spec.ts +0 -0
  411. /package/src/{server → common/server}/lru-event-store.spec.ts +0 -0
  412. /package/src/{server → common/server}/mcp-diagram-handler-dispatcher.spec.ts +0 -0
  413. /package/src/{server → common/server}/mcp-diagram-prompt-handler-registry.ts +0 -0
  414. /package/src/{server → common/server}/mcp-handler-shared.spec.ts +0 -0
  415. /package/src/{server → common/server}/mcp-handler-shared.ts +0 -0
  416. /package/src/{server → common/server}/mcp-id-alias-service.spec.ts +0 -0
  417. /package/src/{server → common/server}/mcp-id-alias-service.ts +0 -0
  418. /package/src/{server → common/server}/mcp-label-provider.ts +0 -0
  419. /package/src/{server → common/server}/mcp-log-level-registry.spec.ts +0 -0
  420. /package/src/{server → common/server}/mcp-mime-types.ts +0 -0
  421. /package/src/{server → common/server}/mcp-session.ts +0 -0
  422. /package/src/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.spec.ts +0 -0
  423. /package/src/{tools → common/tools}/handlers/count-elements-mcp-tool-handler.ts +0 -0
  424. /package/src/{tools → common/tools}/handlers/create-edges-mcp-tool-handler.spec.ts +0 -0
  425. /package/src/{tools → common/tools}/handlers/create-nodes-mcp-tool-handler.spec.ts +0 -0
  426. /package/src/{tools → common/tools}/handlers/diagram-model-mcp-tool-handler.ts +0 -0
  427. /package/src/{tools → common/tools}/handlers/element-types-mcp-tool-handler.ts +0 -0
  428. /package/src/{tools → common/tools}/handlers/get-selection-mcp-tool-handler.ts +0 -0
  429. /package/src/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.spec.ts +0 -0
  430. /package/src/{tools → common/tools}/handlers/query-elements-mcp-tool-handler.ts +0 -0
  431. /package/src/{tools → common/tools}/handlers/redo-mcp-tool-handler.ts +0 -0
  432. /package/src/{tools → common/tools}/handlers/save-model-mcp-tool-handler.ts +0 -0
  433. /package/src/{tools → common/tools}/handlers/session-info-mcp-tool-handler.spec.ts +0 -0
  434. /package/src/{tools → common/tools}/handlers/session-info-mcp-tool-handler.ts +0 -0
  435. /package/src/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.spec.ts +0 -0
  436. /package/src/{tools → common/tools}/handlers/set-selection-mcp-tool-handler.ts +0 -0
  437. /package/src/{tools → common/tools}/handlers/set-view-mcp-tool-handler.ts +0 -0
  438. /package/src/{tools → common/tools}/handlers/undo-mcp-tool-handler.ts +0 -0
  439. /package/src/{tools → common/tools}/handlers/validate-diagram-mcp-tool-handler.ts +0 -0
  440. /package/src/{tools → common/tools}/tool-annotations.spec.ts +0 -0
  441. /package/src/{util → common/util}/markdown-util.ts +0 -0
  442. /package/src/{util → common/util}/mcp-util.ts +0 -0
  443. /package/src/{server → node/server}/raw-http.spec.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2025-2026 EclipseSource and others.
2
+ * Copyright (c) 2026 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,14 +13,16 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+
17
+ export * from './modules/abstract-mcp-server-module';
16
18
  export * from './modules/mcp-diagram-module';
17
- export * from './modules/mcp-server-module';
18
19
  export * from './prompts/handlers/describe-diagram-mcp-prompt-handler';
19
20
  export * from './prompts/handlers/suggest-improvements-mcp-prompt-handler';
20
21
  export * from './resources/handlers/diagram-png-mcp-resource-handler';
21
22
  export * from './resources/handlers/diagram-svg-mcp-resource-handler';
22
23
  export * from './resources/services/element-types-provider';
23
24
  export * from './resources/services/mcp-model-serializer';
25
+ export * from './server/abstract-mcp-server-launcher';
24
26
  export * from './server/glsp-mcp-server';
25
27
  export * from './server/lru-event-store';
26
28
  export * from './server/mcp-diagram-handler-dispatcher';
@@ -28,7 +30,6 @@ export * from './server/mcp-diagram-prompt-handler-registry';
28
30
  export * from './server/mcp-diagram-resource-handler-registry';
29
31
  export * from './server/mcp-diagram-tool-handler-registry';
30
32
  export * from './server/mcp-handler-shared';
31
- export * from './server/mcp-http-transport';
32
33
  export * from './server/mcp-id-alias-service';
33
34
  export * from './server/mcp-input-schemas';
34
35
  export * from './server/mcp-label-provider';
@@ -40,7 +41,6 @@ export * from './server/mcp-progress-reporter';
40
41
  export * from './server/mcp-prompt-handler';
41
42
  export * from './server/mcp-request-context';
42
43
  export * from './server/mcp-resource-handler';
43
- export * from './server/mcp-server-launcher';
44
44
  export * from './server/mcp-session';
45
45
  export * from './server/mcp-tool-handler';
46
46
  export * from './tools/handlers/count-elements-mcp-tool-handler';
@@ -29,24 +29,24 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
29
29
  import { interfaces } from 'inversify';
30
30
  import { DescribeDiagramMcpPromptHandler } from '../prompts/handlers/describe-diagram-mcp-prompt-handler';
31
31
  import { SuggestImprovementsMcpPromptHandler } from '../prompts/handlers/suggest-improvements-mcp-prompt-handler';
32
- import { ElementTypesMcpToolHandler } from '../tools/handlers/element-types-mcp-tool-handler';
33
- import { SessionInfoMcpToolHandler } from '../tools/handlers/session-info-mcp-tool-handler';
32
+ import { AbstractMcpServerLauncher } from '../server/abstract-mcp-server-launcher';
34
33
  import { DefaultGLSPMcpServer, GLSPMcpServerFactory } from '../server/glsp-mcp-server';
34
+ import { LruEventStore } from '../server/lru-event-store';
35
35
  import { DefaultMcpDiagramHandlerDispatcher, McpDiagramHandlerDispatcher } from '../server/mcp-diagram-handler-dispatcher';
36
36
  import { DefaultMcpLogLevelRegistry, McpLogLevelRegistry } from '../server/mcp-log-level-registry';
37
- import { LruEventStore } from '../server/lru-event-store';
38
- import { McpHttpTransport } from '../server/mcp-http-transport';
39
37
  import { McpLogger } from '../server/mcp-logger';
40
38
  import { McpServerDefaults, McpServerOptions } from '../server/mcp-options';
41
39
  import { McpProgressReporter } from '../server/mcp-progress-reporter';
42
40
  import { McpPromptHandler } from '../server/mcp-prompt-handler';
41
+ import { McpRequestContext } from '../server/mcp-request-context';
43
42
  import { McpResourceHandler } from '../server/mcp-resource-handler';
44
- import { McpServerLauncher } from '../server/mcp-server-launcher';
45
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';
46
46
 
47
47
  /**
48
48
  * GLSP-generic default agent persona — adopters typically pass a product-specific persona to
49
- * 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
50
50
  * Workflow Modeling Agent...").
51
51
  *
52
52
  * **Spec note.** This is wired to the MCP `instructions` field, which the spec describes as
@@ -55,7 +55,7 @@ import { McpToolHandler } from '../server/mcp-tool-handler';
55
55
  * via `mcpDefaults.agentPersona`. Don't trim on autopilot if a "concise" interpretation drifts
56
56
  * back: the verbose form materially improves LLM tool-use compliance for graphical modelling.
57
57
  */
58
- const DEFAULT_AGENT_PERSONA = `
58
+ export const DEFAULT_AGENT_PERSONA = `
59
59
  You are the GLSP Modeling Agent. Your primary goal is to assist in the creation and modification of graphical models using the
60
60
  GLSP MCP server. You have to adhere to the following principles:
61
61
  - MCP-Interaction: Any modeling related activity has to occur using the MCP server.
@@ -73,6 +73,17 @@ GLSP MCP server. You have to adhere to the following principles:
73
73
  \`action: "center-on-elements"\` — to point the user at the elements you reference.
74
74
  `;
75
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
+
76
87
  /**
77
88
  * Multi-binding helper for MCP handler classes. Singleton-scoped sibling of core's
78
89
  * `MultiBinding<T>` — same `binding.add(...)` / `binding.rebind(old, new)` adopter shape, but
@@ -91,9 +102,11 @@ export class McpHandlerMultiBinding<T> extends AbstractMultiBinding<interfaces.N
91
102
  }
92
103
 
93
104
  /**
94
- * Server-scope DI module for the MCP server. Adopters subclass {@link DefaultMcpServerModule}
95
- * and override the `bind*` hooks to swap single-instance services or the `configure*` hooks to
96
- * 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
97
110
  * (`bindGModelSerializer()`, `configureActionHandlers(binding)`, etc.).
98
111
  *
99
112
  * Adopter-provided default option values flow through the constructor — pass a
@@ -103,13 +116,13 @@ export class McpHandlerMultiBinding<T> extends AbstractMultiBinding<interfaces.N
103
116
  * @example
104
117
  * ```ts
105
118
  * // Drop-in: GLSP defaults.
106
- * launcher.configure(serverModule, new DefaultMcpServerModule());
119
+ * launcher.configure(serverModule, new NodeMcpServerModule());
107
120
  *
108
121
  * // Drop-in with a product-specific override.
109
- * launcher.configure(serverModule, new DefaultMcpServerModule({ dataMode: 'resources' }));
122
+ * launcher.configure(serverModule, new NodeMcpServerModule({ dataMode: 'resources' }));
110
123
  *
111
124
  * // Subclass when handler customization is needed.
112
- * class WorkflowMcpServerModule extends DefaultMcpServerModule {
125
+ * class WorkflowMcpServerModule extends NodeMcpServerModule {
113
126
  * constructor() { super({ agentPersona: WORKFLOW_PERSONA }); }
114
127
  * protected override configureToolHandlers(binding) {
115
128
  * super.configureToolHandlers(binding);
@@ -119,9 +132,6 @@ export class McpHandlerMultiBinding<T> extends AbstractMultiBinding<interfaces.N
119
132
  * ```
120
133
  */
121
134
  export abstract class AbstractMcpServerModule extends GLSPModule {
122
- protected bind!: interfaces.Bind;
123
- protected rebind!: interfaces.Rebind;
124
-
125
135
  constructor(protected readonly defaultOptions: McpServerDefaults = {}) {
126
136
  super();
127
137
  }
@@ -130,23 +140,26 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
130
140
  bind: interfaces.Bind,
131
141
  _unbind: interfaces.Unbind,
132
142
  isBound: interfaces.IsBound,
133
- rebind: interfaces.Rebind
143
+ _rebind: interfaces.Rebind
134
144
  ): void {
135
- this.bind = bind;
136
- this.rebind = rebind;
137
145
  const context = { bind, isBound };
138
- applyBindingTarget(context, McpServerLauncher, this.bindMcpServerLauncher()).inSingletonScope();
139
- // 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
140
153
  // multi-bindings pick it up alongside the rest of the server's contributions/listeners.
141
- bind(GLSPServerInitializer).toService(McpServerLauncher);
142
- bind(GLSPServerListener).toService(McpServerLauncher);
143
- applyBindingTarget(context, McpHttpTransport, this.bindMcpHttpTransport()).inSingletonScope();
154
+ bind(GLSPServerInitializer).toService(AbstractMcpServerLauncher);
155
+ bind(GLSPServerListener).toService(AbstractMcpServerLauncher);
144
156
  applyBindingTarget(context, McpDiagramHandlerDispatcher, this.bindMcpDiagramHandlerDispatcher()).inSingletonScope();
145
157
  applyBindingTarget(context, McpServerOptions, this.bindMcpServerOptions()).inSingletonScope();
146
158
  applyBindingTarget(context, McpServerDefaults, this.bindMcpServerDefaults());
147
159
  applyBindingTarget(context, McpLogger, this.bindMcpLogger()).inSingletonScope();
148
160
  applyBindingTarget(context, McpLogLevelRegistry, this.bindMcpLogLevelRegistry()).inSingletonScope();
149
161
  applyBindingTarget(context, McpProgressReporter, this.bindMcpProgressReporter()).inSingletonScope();
162
+ applyBindingTarget(context, McpRequestContext, this.bindMcpRequestContext()).inSingletonScope();
150
163
  applyBindingTarget(context, GLSPMcpServerFactory, this.bindGLSPMcpServerFactory());
151
164
  this.configureMultiBinding(new McpHandlerMultiBinding<McpToolHandler>(McpToolHandler), binding =>
152
165
  this.configureToolHandlers(binding as McpHandlerMultiBinding<McpToolHandler>)
@@ -160,18 +173,23 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
160
173
  }
161
174
 
162
175
  /**
163
- * {@link McpServerLauncher} binding. Bound as a singleton AND aliased to
164
- * `GLSPServerInitializer` + `GLSPServerListener` (the launcher implements both).
165
- * 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, ...).
166
179
  */
167
- protected bindMcpServerLauncher(): BindingTarget<McpServerLauncher> {
168
- return McpServerLauncher;
169
- }
180
+ protected abstract bindMcpServerLauncher(): BindingTarget<AbstractMcpServerLauncher>;
170
181
 
171
- /** {@link McpHttpTransport} binding. Override to swap to a different transport implementation. */
172
- protected bindMcpHttpTransport(): BindingTarget<McpHttpTransport> {
173
- return McpHttpTransport;
174
- }
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>;
175
193
 
176
194
  /**
177
195
  * {@link McpDiagramHandlerDispatcher} binding. Owns diagram-scope handler discovery,
@@ -196,16 +214,12 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
196
214
  return { constantValue: this.defaultOptions };
197
215
  }
198
216
 
199
- /**
200
- * {@link McpLogger} binding. Bound on the server container; per-session containers inherit
201
- * it, so handlers at any scope can inject it; routes through the active MCP request via
202
- * {@link mcpRequestContext}.
203
- */
217
+ /** {@link McpLogger} binding — routes through the active MCP request via {@link McpRequestContext}. */
204
218
  protected bindMcpLogger(): BindingTarget<McpLogger> {
205
219
  return McpLogger;
206
220
  }
207
221
 
208
- /** {@link McpProgressReporter} binding. Same scope/lifecycle story as {@link bindMcpLogger}. */
222
+ /** {@link McpProgressReporter} binding. */
209
223
  protected bindMcpProgressReporter(): BindingTarget<McpProgressReporter> {
210
224
  return McpProgressReporter;
211
225
  }
@@ -259,31 +273,3 @@ export abstract class AbstractMcpServerModule extends GLSPModule {
259
273
  binding.add(SuggestImprovementsMcpPromptHandler);
260
274
  }
261
275
  }
262
-
263
- /**
264
- * Default {@link AbstractMcpServerModule} entry point. Ships GLSP-default option values (see
265
- * {@link DEFAULT_OPTIONS}) on top of the abstract module's hook defaults. Adopter-provided
266
- * overrides via the constructor merge on top.
267
- *
268
- * @experimental The MCP integration is under active development. Option names, schema shapes,
269
- * and handler contracts MAY change in minor releases until the feature graduates from
270
- * experimental status.
271
- */
272
- export class DefaultMcpServerModule extends AbstractMcpServerModule {
273
- static readonly DEFAULT_OPTIONS: McpServerDefaults = {
274
- host: '127.0.0.1',
275
- allowedHosts: ['127.0.0.1', 'localhost'],
276
- // `allowedOrigins` deliberately undefined: accept absent Origin (typical for desktop-IDE
277
- // MCP clients) and rely on Host validation to gate DNS-rebinding. Adopters whose
278
- // deployment is browser-fronted set this explicitly to their frontend's origin.
279
- dataMode: 'tools',
280
- agentPersona: DEFAULT_AGENT_PERSONA,
281
- // 10K events per session is generous for typical workloads (a few MB) and large enough
282
- // that disconnects within seconds recover via `Last-Event-ID` resumability.
283
- eventStoreLimit: LruEventStore.DEFAULT_LIMIT
284
- };
285
-
286
- constructor(overrides: McpServerDefaults = {}) {
287
- super({ ...DefaultMcpServerModule.DEFAULT_OPTIONS, ...overrides });
288
- }
289
- }