@eclipse-glsp/server-mcp 2.7.0-next.10
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.
- package/LICENSE +642 -0
- package/README.md +57 -0
- package/lib/index.d.ts +66 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +82 -0
- package/lib/index.js.map +1 -0
- package/lib/modules/mcp-diagram-module.d.ts +123 -0
- package/lib/modules/mcp-diagram-module.d.ts.map +1 -0
- package/lib/modules/mcp-diagram-module.js +202 -0
- package/lib/modules/mcp-diagram-module.js.map +1 -0
- package/lib/modules/mcp-server-module.d.ts +143 -0
- package/lib/modules/mcp-server-module.d.ts.map +1 -0
- package/lib/modules/mcp-server-module.js +251 -0
- package/lib/modules/mcp-server-module.js.map +1 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts +44 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.d.ts.map +1 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js +102 -0
- package/lib/prompts/handlers/describe-diagram-mcp-prompt-handler.js.map +1 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts +44 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.d.ts.map +1 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js +99 -0
- package/lib/prompts/handlers/suggest-improvements-mcp-prompt-handler.js.map +1 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts +84 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.d.ts.map +1 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.js +177 -0
- package/lib/resources/handlers/diagram-png-mcp-resource-handler.js.map +1 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts +55 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.d.ts.map +1 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js +99 -0
- package/lib/resources/handlers/diagram-svg-mcp-resource-handler.js.map +1 -0
- package/lib/resources/services/element-types-provider.d.ts +65 -0
- package/lib/resources/services/element-types-provider.d.ts.map +1 -0
- package/lib/resources/services/element-types-provider.js +81 -0
- package/lib/resources/services/element-types-provider.js.map +1 -0
- package/lib/resources/services/mcp-model-serializer.d.ts +78 -0
- package/lib/resources/services/mcp-model-serializer.d.ts.map +1 -0
- package/lib/resources/services/mcp-model-serializer.js +188 -0
- package/lib/resources/services/mcp-model-serializer.js.map +1 -0
- package/lib/server/glsp-mcp-server.d.ts +82 -0
- package/lib/server/glsp-mcp-server.d.ts.map +1 -0
- package/lib/server/glsp-mcp-server.js +140 -0
- package/lib/server/glsp-mcp-server.js.map +1 -0
- package/lib/server/lru-event-store.d.ts +53 -0
- package/lib/server/lru-event-store.d.ts.map +1 -0
- package/lib/server/lru-event-store.js +100 -0
- package/lib/server/lru-event-store.js.map +1 -0
- package/lib/server/mcp-diagram-handler-dispatcher.d.ts +144 -0
- package/lib/server/mcp-diagram-handler-dispatcher.d.ts.map +1 -0
- package/lib/server/mcp-diagram-handler-dispatcher.js +382 -0
- package/lib/server/mcp-diagram-handler-dispatcher.js.map +1 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.d.ts +33 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.d.ts.map +1 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.js +76 -0
- package/lib/server/mcp-diagram-prompt-handler-registry.js.map +1 -0
- package/lib/server/mcp-diagram-resource-handler-registry.d.ts +35 -0
- package/lib/server/mcp-diagram-resource-handler-registry.d.ts.map +1 -0
- package/lib/server/mcp-diagram-resource-handler-registry.js +94 -0
- package/lib/server/mcp-diagram-resource-handler-registry.js.map +1 -0
- package/lib/server/mcp-diagram-tool-handler-registry.d.ts +57 -0
- package/lib/server/mcp-diagram-tool-handler-registry.d.ts.map +1 -0
- package/lib/server/mcp-diagram-tool-handler-registry.js +111 -0
- package/lib/server/mcp-diagram-tool-handler-registry.js.map +1 -0
- package/lib/server/mcp-handler-shared.d.ts +142 -0
- package/lib/server/mcp-handler-shared.d.ts.map +1 -0
- package/lib/server/mcp-handler-shared.js +199 -0
- package/lib/server/mcp-handler-shared.js.map +1 -0
- package/lib/server/mcp-http-transport.d.ts +93 -0
- package/lib/server/mcp-http-transport.d.ts.map +1 -0
- package/lib/server/mcp-http-transport.js +350 -0
- package/lib/server/mcp-http-transport.js.map +1 -0
- package/lib/server/mcp-id-alias-service.d.ts +70 -0
- package/lib/server/mcp-id-alias-service.d.ts.map +1 -0
- package/lib/server/mcp-id-alias-service.js +85 -0
- package/lib/server/mcp-id-alias-service.js.map +1 -0
- package/lib/server/mcp-input-schemas.d.ts +73 -0
- package/lib/server/mcp-input-schemas.d.ts.map +1 -0
- package/lib/server/mcp-input-schemas.js +67 -0
- package/lib/server/mcp-input-schemas.js.map +1 -0
- package/lib/server/mcp-label-provider.d.ts +45 -0
- package/lib/server/mcp-label-provider.d.ts.map +1 -0
- package/lib/server/mcp-label-provider.js +42 -0
- package/lib/server/mcp-label-provider.js.map +1 -0
- package/lib/server/mcp-log-level-registry.d.ts +54 -0
- package/lib/server/mcp-log-level-registry.d.ts.map +1 -0
- package/lib/server/mcp-log-level-registry.js +80 -0
- package/lib/server/mcp-log-level-registry.js.map +1 -0
- package/lib/server/mcp-logger.d.ts +59 -0
- package/lib/server/mcp-logger.d.ts.map +1 -0
- package/lib/server/mcp-logger.js +104 -0
- package/lib/server/mcp-logger.js.map +1 -0
- package/lib/server/mcp-mime-types.d.ts +28 -0
- package/lib/server/mcp-mime-types.d.ts.map +1 -0
- package/lib/server/mcp-mime-types.js +18 -0
- package/lib/server/mcp-mime-types.js.map +1 -0
- package/lib/server/mcp-options.d.ts +39 -0
- package/lib/server/mcp-options.d.ts.map +1 -0
- package/lib/server/mcp-options.js +53 -0
- package/lib/server/mcp-options.js.map +1 -0
- package/lib/server/mcp-progress-reporter.d.ts +48 -0
- package/lib/server/mcp-progress-reporter.d.ts.map +1 -0
- package/lib/server/mcp-progress-reporter.js +66 -0
- package/lib/server/mcp-progress-reporter.js.map +1 -0
- package/lib/server/mcp-prompt-handler.d.ts +120 -0
- package/lib/server/mcp-prompt-handler.d.ts.map +1 -0
- package/lib/server/mcp-prompt-handler.js +131 -0
- package/lib/server/mcp-prompt-handler.js.map +1 -0
- package/lib/server/mcp-request-context.d.ts +37 -0
- package/lib/server/mcp-request-context.d.ts.map +1 -0
- package/lib/server/mcp-request-context.js +37 -0
- package/lib/server/mcp-request-context.js.map +1 -0
- package/lib/server/mcp-resource-handler.d.ts +212 -0
- package/lib/server/mcp-resource-handler.d.ts.map +1 -0
- package/lib/server/mcp-resource-handler.js +298 -0
- package/lib/server/mcp-resource-handler.js.map +1 -0
- package/lib/server/mcp-server-launcher.d.ts +143 -0
- package/lib/server/mcp-server-launcher.d.ts.map +1 -0
- package/lib/server/mcp-server-launcher.js +355 -0
- package/lib/server/mcp-server-launcher.js.map +1 -0
- package/lib/server/mcp-session.d.ts +44 -0
- package/lib/server/mcp-session.d.ts.map +1 -0
- package/lib/server/mcp-session.js +18 -0
- package/lib/server/mcp-session.js.map +1 -0
- package/lib/server/mcp-tool-handler.d.ts +259 -0
- package/lib/server/mcp-tool-handler.d.ts.map +1 -0
- package/lib/server/mcp-tool-handler.js +355 -0
- package/lib/server/mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts +47 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.js +77 -0
- package/lib/tools/handlers/count-elements-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts +113 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.js +191 -0
- package/lib/tools/handlers/create-edges-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts +82 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.js +124 -0
- package/lib/tools/handlers/create-nodes-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts +53 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.js +74 -0
- package/lib/tools/handlers/delete-elements-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts +60 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.js +79 -0
- package/lib/tools/handlers/diagram-model-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts +98 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.js +156 -0
- package/lib/tools/handlers/element-types-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts +44 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.js +70 -0
- package/lib/tools/handlers/get-selection-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.d.ts +44 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.js +72 -0
- package/lib/tools/handlers/layout-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts +79 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.js +138 -0
- package/lib/tools/handlers/modify-edges-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts +93 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js +127 -0
- package/lib/tools/handlers/modify-nodes-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts +103 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.js +160 -0
- package/lib/tools/handlers/query-elements-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.d.ts +46 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.js +75 -0
- package/lib/tools/handlers/redo-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts +57 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.js +93 -0
- package/lib/tools/handlers/save-model-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts +66 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.js +109 -0
- package/lib/tools/handlers/session-info-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts +61 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.js +104 -0
- package/lib/tools/handlers/set-selection-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts +111 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.js +144 -0
- package/lib/tools/handlers/set-view-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.d.ts +46 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.js +76 -0
- package/lib/tools/handlers/undo-mcp-tool-handler.js.map +1 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts +67 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.d.ts.map +1 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js +0 -0
- package/lib/tools/handlers/validate-diagram-mcp-tool-handler.js.map +1 -0
- package/lib/util/markdown-util.d.ts +20 -0
- package/lib/util/markdown-util.d.ts.map +1 -0
- package/lib/util/markdown-util.js +45 -0
- package/lib/util/markdown-util.js.map +1 -0
- package/lib/util/mcp-util.d.ts +22 -0
- package/lib/util/mcp-util.d.ts.map +1 -0
- package/lib/util/mcp-util.js +29 -0
- package/lib/util/mcp-util.js.map +1 -0
- package/package.json +63 -0
- package/src/index.ts +65 -0
- package/src/modules/mcp-diagram-module.ts +247 -0
- package/src/modules/mcp-server-module.ts +289 -0
- package/src/prompts/handlers/describe-diagram-mcp-prompt-handler.ts +88 -0
- package/src/prompts/handlers/suggest-improvements-mcp-prompt-handler.ts +85 -0
- package/src/resources/handlers/diagram-png-mcp-resource-handler.ts +177 -0
- package/src/resources/handlers/diagram-svg-mcp-resource-handler.ts +85 -0
- package/src/resources/services/element-types-provider.ts +105 -0
- package/src/resources/services/mcp-model-serializer.ts +211 -0
- package/src/server/glsp-mcp-server.spec.ts +73 -0
- package/src/server/glsp-mcp-server.ts +196 -0
- package/src/server/lru-event-store.spec.ts +121 -0
- package/src/server/lru-event-store.ts +112 -0
- package/src/server/mcp-diagram-handler-dispatcher.spec.ts +231 -0
- package/src/server/mcp-diagram-handler-dispatcher.ts +459 -0
- package/src/server/mcp-diagram-prompt-handler-registry.ts +59 -0
- package/src/server/mcp-diagram-resource-handler-registry.ts +73 -0
- package/src/server/mcp-diagram-tool-handler-registry.ts +97 -0
- package/src/server/mcp-handler-shared.spec.ts +53 -0
- package/src/server/mcp-handler-shared.ts +247 -0
- package/src/server/mcp-http-transport-e2e.spec.ts +151 -0
- package/src/server/mcp-http-transport.spec.ts +385 -0
- package/src/server/mcp-http-transport.ts +368 -0
- package/src/server/mcp-id-alias-service.spec.ts +106 -0
- package/src/server/mcp-id-alias-service.ts +104 -0
- package/src/server/mcp-input-schemas.ts +82 -0
- package/src/server/mcp-label-provider.ts +52 -0
- package/src/server/mcp-log-level-registry.spec.ts +75 -0
- package/src/server/mcp-log-level-registry.ts +90 -0
- package/src/server/mcp-logger.spec.ts +227 -0
- package/src/server/mcp-logger.ts +91 -0
- package/src/server/mcp-mime-types.ts +31 -0
- package/src/server/mcp-options.ts +43 -0
- package/src/server/mcp-progress-reporter.spec.ts +93 -0
- package/src/server/mcp-progress-reporter.ts +67 -0
- package/src/server/mcp-prompt-handler.ts +157 -0
- package/src/server/mcp-request-context.ts +39 -0
- package/src/server/mcp-resource-handler.ts +389 -0
- package/src/server/mcp-server-launcher.spec.ts +173 -0
- package/src/server/mcp-server-launcher.ts +369 -0
- package/src/server/mcp-session.ts +45 -0
- package/src/server/mcp-tool-handler.spec.ts +182 -0
- package/src/server/mcp-tool-handler.ts +431 -0
- package/src/server/raw-http.spec.ts +59 -0
- package/src/tools/handlers/count-elements-mcp-tool-handler.spec.ts +101 -0
- package/src/tools/handlers/count-elements-mcp-tool-handler.ts +68 -0
- package/src/tools/handlers/create-edges-mcp-tool-handler.spec.ts +198 -0
- package/src/tools/handlers/create-edges-mcp-tool-handler.ts +200 -0
- package/src/tools/handlers/create-nodes-mcp-tool-handler.spec.ts +199 -0
- package/src/tools/handlers/create-nodes-mcp-tool-handler.ts +126 -0
- package/src/tools/handlers/delete-elements-mcp-tool-handler.ts +69 -0
- package/src/tools/handlers/diagram-model-mcp-tool-handler.ts +68 -0
- package/src/tools/handlers/element-types-mcp-tool-handler.ts +152 -0
- package/src/tools/handlers/get-selection-mcp-tool-handler.ts +56 -0
- package/src/tools/handlers/layout-mcp-tool-handler.ts +58 -0
- package/src/tools/handlers/modify-edges-mcp-tool-handler.ts +142 -0
- package/src/tools/handlers/modify-nodes-mcp-tool-handler.ts +134 -0
- package/src/tools/handlers/query-elements-mcp-tool-handler.spec.ts +212 -0
- package/src/tools/handlers/query-elements-mcp-tool-handler.ts +157 -0
- package/src/tools/handlers/redo-mcp-tool-handler.ts +64 -0
- package/src/tools/handlers/save-model-mcp-tool-handler.ts +74 -0
- package/src/tools/handlers/session-info-mcp-tool-handler.spec.ts +152 -0
- package/src/tools/handlers/session-info-mcp-tool-handler.ts +98 -0
- package/src/tools/handlers/set-selection-mcp-tool-handler.spec.ts +120 -0
- package/src/tools/handlers/set-selection-mcp-tool-handler.ts +92 -0
- package/src/tools/handlers/set-view-mcp-tool-handler.ts +156 -0
- package/src/tools/handlers/undo-mcp-tool-handler.ts +63 -0
- package/src/tools/handlers/validate-diagram-mcp-tool-handler.ts +0 -0
- package/src/tools/tool-annotations.spec.ts +141 -0
- package/src/util/markdown-util.ts +44 -0
- package/src/util/mcp-util.ts +25 -0
package/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# @eclipse-glsp/server-mcp
|
|
2
|
+
|
|
3
|
+
> **Status: Experimental.** The MCP integration is under active development. Option names, schema shapes, and handler contracts MAY change in minor releases until the feature graduates from experimental status. Pin the package version in adopter projects; track release notes for breaking changes.
|
|
4
|
+
|
|
5
|
+
An extension of the [GLSP Node Server](https://github.com/eclipse-glsp/glsp-server-node) that exposes a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server alongside the existing GLSP server. This allows AI agents and LLM-based tools to interact with graphical diagram models using the standardized MCP interface.
|
|
6
|
+
|
|
7
|
+
## What it provides
|
|
8
|
+
|
|
9
|
+
- **Tools** — Read/query and read/write operations to inspect, create, modify, delete, validate, and navigate diagram elements (and the active sessions themselves).
|
|
10
|
+
- **Resources** — URI-addressable read-only data; in the default ship-set this is `diagram-png` only (the rendered diagram screenshot, useful as embeddable image content). Other read endpoints ship as plain tools because in-the-wild MCP clients support tools more reliably than resources — see [Resource vs. Tool Mode](./ARCHITECTURE.md#resource-vs-tool-mode).
|
|
11
|
+
- **Prompts** — User-invokable templates (slash-command-style) that frame multi-step agent tasks against the diagram.
|
|
12
|
+
|
|
13
|
+
The MCP server is initialized as part of the GLSP server startup sequence and creates a new MCP session for each connecting MCP client. Each session runs a preconfigured AI agent persona (the _GLSP Modeling Agent_) that guides AI clients toward correct and safe usage of the modeling tools. It should be noted that the server startup sequence does not mean simply starting a server process, but rather that some kind of GLSP client starts the initialization.
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
yarn add @eclipse-glsp/server-mcp
|
|
19
|
+
# or
|
|
20
|
+
npm install @eclipse-glsp/server-mcp
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Integrating into a GLSP Server
|
|
24
|
+
|
|
25
|
+
Load the MCP container modules in your GLSP server's DI configuration:
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { GModelStorage, WebSocketServerLauncher, createAppModule } from '@eclipse-glsp/server/node';
|
|
29
|
+
import { Container } from 'inversify';
|
|
30
|
+
import { DefaultMcpDiagramModule, DefaultMcpServerModule } from '@eclipse-glsp/server-mcp';
|
|
31
|
+
|
|
32
|
+
const appContainer = new Container();
|
|
33
|
+
appContainer.load(createAppModule(options));
|
|
34
|
+
|
|
35
|
+
// Per-session bindings — must be part of `configureDiagramModule`.
|
|
36
|
+
const mcpDiagramModule = new DefaultMcpDiagramModule();
|
|
37
|
+
const serverModule = new MyServerModule().configureDiagramModule(new MyDiagramModule(() => GModelStorage), mcpDiagramModule);
|
|
38
|
+
|
|
39
|
+
const launcher = appContainer.resolve(WebSocketServerLauncher);
|
|
40
|
+
// Launcher-level bindings — must not be part of `configureDiagramModule`.
|
|
41
|
+
launcher.configure(serverModule, new DefaultMcpServerModule());
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The two modules are deliberately separate because they bind into different container scopes:
|
|
45
|
+
|
|
46
|
+
- `DefaultMcpDiagramModule` is mounted inside `configureDiagramModule`, so each `ClientSession.container` gets its own per-session services (`McpIdAliasService`, `McpModelSerializer`, the diagram-scope handler registries).
|
|
47
|
+
- `DefaultMcpServerModule` is mounted at the launcher container, so the MCP HTTP server, the option holder, and the server-scope tool/resource handlers live as launcher singletons.
|
|
48
|
+
|
|
49
|
+
The MCP server itself is started lazily on the first GLSP `InitializeAction` that carries an `mcpServer` configuration.
|
|
50
|
+
|
|
51
|
+
## Further reading
|
|
52
|
+
|
|
53
|
+
See [ARCHITECTURE.md](./ARCHITECTURE.md) for the architecture, security model, configuration surface, deployment guidance, and the extension cookbook. The workflow example (`examples/workflow-server`) is the canonical reference for adopter wiring; each shipped handler carries an LLM-facing `description` field that doubles as developer-facing documentation.
|
|
54
|
+
|
|
55
|
+
## License
|
|
56
|
+
|
|
57
|
+
EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2025-2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
export * from './modules/mcp-diagram-module';
|
|
17
|
+
export * from './modules/mcp-server-module';
|
|
18
|
+
export * from './prompts/handlers/describe-diagram-mcp-prompt-handler';
|
|
19
|
+
export * from './prompts/handlers/suggest-improvements-mcp-prompt-handler';
|
|
20
|
+
export * from './resources/handlers/diagram-png-mcp-resource-handler';
|
|
21
|
+
export * from './resources/handlers/diagram-svg-mcp-resource-handler';
|
|
22
|
+
export * from './resources/services/element-types-provider';
|
|
23
|
+
export * from './resources/services/mcp-model-serializer';
|
|
24
|
+
export * from './server/glsp-mcp-server';
|
|
25
|
+
export * from './server/lru-event-store';
|
|
26
|
+
export * from './server/mcp-diagram-handler-dispatcher';
|
|
27
|
+
export * from './server/mcp-diagram-prompt-handler-registry';
|
|
28
|
+
export * from './server/mcp-diagram-resource-handler-registry';
|
|
29
|
+
export * from './server/mcp-diagram-tool-handler-registry';
|
|
30
|
+
export * from './server/mcp-handler-shared';
|
|
31
|
+
export * from './server/mcp-http-transport';
|
|
32
|
+
export * from './server/mcp-id-alias-service';
|
|
33
|
+
export * from './server/mcp-input-schemas';
|
|
34
|
+
export * from './server/mcp-label-provider';
|
|
35
|
+
export * from './server/mcp-log-level-registry';
|
|
36
|
+
export * from './server/mcp-logger';
|
|
37
|
+
export * from './server/mcp-mime-types';
|
|
38
|
+
export * from './server/mcp-options';
|
|
39
|
+
export * from './server/mcp-progress-reporter';
|
|
40
|
+
export * from './server/mcp-prompt-handler';
|
|
41
|
+
export * from './server/mcp-request-context';
|
|
42
|
+
export * from './server/mcp-resource-handler';
|
|
43
|
+
export * from './server/mcp-server-launcher';
|
|
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';
|
|
66
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wDAAwD,CAAC;AACvE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kDAAkD,CAAC;AACjE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oDAAoD,CAAC;AACnE,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/********************************************************************************
|
|
18
|
+
* Copyright (c) 2025-2026 EclipseSource and others.
|
|
19
|
+
*
|
|
20
|
+
* This program and the accompanying materials are made available under the
|
|
21
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
22
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
23
|
+
*
|
|
24
|
+
* This Source Code may also be made available under the following Secondary
|
|
25
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
26
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
27
|
+
* with the GNU Classpath Exception which is available at
|
|
28
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
29
|
+
*
|
|
30
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
31
|
+
********************************************************************************/
|
|
32
|
+
__exportStar(require("./modules/mcp-diagram-module"), exports);
|
|
33
|
+
__exportStar(require("./modules/mcp-server-module"), exports);
|
|
34
|
+
__exportStar(require("./prompts/handlers/describe-diagram-mcp-prompt-handler"), exports);
|
|
35
|
+
__exportStar(require("./prompts/handlers/suggest-improvements-mcp-prompt-handler"), exports);
|
|
36
|
+
__exportStar(require("./resources/handlers/diagram-png-mcp-resource-handler"), exports);
|
|
37
|
+
__exportStar(require("./resources/handlers/diagram-svg-mcp-resource-handler"), exports);
|
|
38
|
+
__exportStar(require("./resources/services/element-types-provider"), exports);
|
|
39
|
+
__exportStar(require("./resources/services/mcp-model-serializer"), exports);
|
|
40
|
+
__exportStar(require("./server/glsp-mcp-server"), exports);
|
|
41
|
+
__exportStar(require("./server/lru-event-store"), exports);
|
|
42
|
+
__exportStar(require("./server/mcp-diagram-handler-dispatcher"), exports);
|
|
43
|
+
__exportStar(require("./server/mcp-diagram-prompt-handler-registry"), exports);
|
|
44
|
+
__exportStar(require("./server/mcp-diagram-resource-handler-registry"), exports);
|
|
45
|
+
__exportStar(require("./server/mcp-diagram-tool-handler-registry"), exports);
|
|
46
|
+
__exportStar(require("./server/mcp-handler-shared"), exports);
|
|
47
|
+
__exportStar(require("./server/mcp-http-transport"), exports);
|
|
48
|
+
__exportStar(require("./server/mcp-id-alias-service"), exports);
|
|
49
|
+
__exportStar(require("./server/mcp-input-schemas"), exports);
|
|
50
|
+
__exportStar(require("./server/mcp-label-provider"), exports);
|
|
51
|
+
__exportStar(require("./server/mcp-log-level-registry"), exports);
|
|
52
|
+
__exportStar(require("./server/mcp-logger"), exports);
|
|
53
|
+
__exportStar(require("./server/mcp-mime-types"), exports);
|
|
54
|
+
__exportStar(require("./server/mcp-options"), exports);
|
|
55
|
+
__exportStar(require("./server/mcp-progress-reporter"), exports);
|
|
56
|
+
__exportStar(require("./server/mcp-prompt-handler"), exports);
|
|
57
|
+
__exportStar(require("./server/mcp-request-context"), exports);
|
|
58
|
+
__exportStar(require("./server/mcp-resource-handler"), exports);
|
|
59
|
+
__exportStar(require("./server/mcp-server-launcher"), exports);
|
|
60
|
+
__exportStar(require("./server/mcp-session"), exports);
|
|
61
|
+
__exportStar(require("./server/mcp-tool-handler"), exports);
|
|
62
|
+
__exportStar(require("./tools/handlers/count-elements-mcp-tool-handler"), exports);
|
|
63
|
+
__exportStar(require("./tools/handlers/create-edges-mcp-tool-handler"), exports);
|
|
64
|
+
__exportStar(require("./tools/handlers/create-nodes-mcp-tool-handler"), exports);
|
|
65
|
+
__exportStar(require("./tools/handlers/delete-elements-mcp-tool-handler"), exports);
|
|
66
|
+
__exportStar(require("./tools/handlers/diagram-model-mcp-tool-handler"), exports);
|
|
67
|
+
__exportStar(require("./tools/handlers/element-types-mcp-tool-handler"), exports);
|
|
68
|
+
__exportStar(require("./tools/handlers/get-selection-mcp-tool-handler"), exports);
|
|
69
|
+
__exportStar(require("./tools/handlers/layout-mcp-tool-handler"), exports);
|
|
70
|
+
__exportStar(require("./tools/handlers/modify-edges-mcp-tool-handler"), exports);
|
|
71
|
+
__exportStar(require("./tools/handlers/modify-nodes-mcp-tool-handler"), exports);
|
|
72
|
+
__exportStar(require("./tools/handlers/query-elements-mcp-tool-handler"), exports);
|
|
73
|
+
__exportStar(require("./tools/handlers/redo-mcp-tool-handler"), exports);
|
|
74
|
+
__exportStar(require("./tools/handlers/save-model-mcp-tool-handler"), exports);
|
|
75
|
+
__exportStar(require("./tools/handlers/session-info-mcp-tool-handler"), exports);
|
|
76
|
+
__exportStar(require("./tools/handlers/set-selection-mcp-tool-handler"), exports);
|
|
77
|
+
__exportStar(require("./tools/handlers/set-view-mcp-tool-handler"), exports);
|
|
78
|
+
__exportStar(require("./tools/handlers/undo-mcp-tool-handler"), exports);
|
|
79
|
+
__exportStar(require("./tools/handlers/validate-diagram-mcp-tool-handler"), exports);
|
|
80
|
+
__exportStar(require("./util/markdown-util"), exports);
|
|
81
|
+
__exportStar(require("./util/mcp-util"), exports);
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,+DAA6C;AAC7C,8DAA4C;AAC5C,yFAAuE;AACvE,6FAA2E;AAC3E,wFAAsE;AACtE,wFAAsE;AACtE,8EAA4D;AAC5D,4EAA0D;AAC1D,2DAAyC;AACzC,2DAAyC;AACzC,0EAAwD;AACxD,+EAA6D;AAC7D,iFAA+D;AAC/D,6EAA2D;AAC3D,8DAA4C;AAC5C,8DAA4C;AAC5C,gEAA8C;AAC9C,6DAA2C;AAC3C,8DAA4C;AAC5C,kEAAgD;AAChD,sDAAoC;AACpC,0DAAwC;AACxC,uDAAqC;AACrC,iEAA+C;AAC/C,8DAA4C;AAC5C,+DAA6C;AAC7C,gEAA8C;AAC9C,+DAA6C;AAC7C,uDAAqC;AACrC,4DAA0C;AAC1C,mFAAiE;AACjE,iFAA+D;AAC/D,iFAA+D;AAC/D,oFAAkE;AAClE,kFAAgE;AAChE,kFAAgE;AAChE,kFAAgE;AAChE,2EAAyD;AACzD,iFAA+D;AAC/D,iFAA+D;AAC/D,mFAAiE;AACjE,yEAAuD;AACvD,+EAA6D;AAC7D,iFAA+D;AAC/D,kFAAgE;AAChE,6EAA2D;AAC3D,yEAAuD;AACvD,qFAAmE;AACnE,uDAAqC;AACrC,kDAAgC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
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
|
+
import { BindingTarget, GLSPModule, InstanceMultiBinding } from '@eclipse-glsp/server';
|
|
17
|
+
import { interfaces } from 'inversify';
|
|
18
|
+
import { ElementTypesProvider } from '../resources/services/element-types-provider';
|
|
19
|
+
import { McpModelSerializer } from '../resources/services/mcp-model-serializer';
|
|
20
|
+
import { McpIdAliasService } from '../server/mcp-id-alias-service';
|
|
21
|
+
import { McpLabelProvider } from '../server/mcp-label-provider';
|
|
22
|
+
import { McpDiagramPromptHandlerConstructor } from '../server/mcp-prompt-handler';
|
|
23
|
+
import { McpDiagramResourceHandlerConstructor } from '../server/mcp-resource-handler';
|
|
24
|
+
import { McpDiagramToolHandlerConstructor } from '../server/mcp-tool-handler';
|
|
25
|
+
/**
|
|
26
|
+
* Per-GLSP-client-session DI module for the MCP server. Loaded inside `configureDiagramModule`
|
|
27
|
+
* so each `ClientSession.container` gets its own instance of session-scoped services.
|
|
28
|
+
*
|
|
29
|
+
* Binds the {@link McpIdAliasService}, the {@link McpModelSerializer}, the
|
|
30
|
+
* {@link ElementTypesProvider}, and the diagram-scope handler-constructor multi-bindings
|
|
31
|
+
* (`McpDiagram*HandlerConstructor`). Adopters subclass and override the `bind*` hooks to swap
|
|
32
|
+
* single-instance services and the `configure*` hooks to extend the multi-binding handler sets.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* class WorkflowMcpDiagramModule extends DefaultMcpDiagramModule {
|
|
37
|
+
* // Single-instance binding: return the class.
|
|
38
|
+
* protected override bindModelSerializer(): BindingTarget<McpModelSerializer> {
|
|
39
|
+
* return WorkflowMcpModelSerializer;
|
|
40
|
+
* }
|
|
41
|
+
* // Multi-binding: extend or rebind the default set.
|
|
42
|
+
* protected override configureToolHandlers(binding) {
|
|
43
|
+
* super.configureToolHandlers(binding);
|
|
44
|
+
* binding.add(WorkflowExtraTool);
|
|
45
|
+
* binding.rebind(CreateNodesMcpToolHandler, WorkflowCreateNodesMcpToolHandler);
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* new WorkflowServerModule().configureDiagramModule(
|
|
49
|
+
* new WorkflowDiagramModule(...),
|
|
50
|
+
* elkLayoutModule,
|
|
51
|
+
* new WorkflowMcpDiagramModule()
|
|
52
|
+
* );
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare abstract class AbstractMcpDiagramModule extends GLSPModule {
|
|
56
|
+
protected bind: interfaces.Bind;
|
|
57
|
+
protected rebind: interfaces.Rebind;
|
|
58
|
+
protected configure(bind: interfaces.Bind, _unbind: interfaces.Unbind, isBound: interfaces.IsBound, rebind: interfaces.Rebind): void;
|
|
59
|
+
/**
|
|
60
|
+
* Bind the per-GLSP-session handler registries, factories, and {@link ClientSessionInitializer}s
|
|
61
|
+
* that populate the registries at session-open. Adopters typically don't override.
|
|
62
|
+
*
|
|
63
|
+
* Each kind (tool / resource / prompt) follows the same shape:
|
|
64
|
+
* - `Registry` — singleton-per-session, holds instantiated handlers keyed by `name`.
|
|
65
|
+
* - `Factory` — `dynamicValue` that calls `ctx.container.resolve(constructor)`, so the
|
|
66
|
+
* handler's `@inject(...)` fields resolve against the live `ClientSession.container`.
|
|
67
|
+
* - `RegistryInitializer` — at session-open, reads the constructor multi-binding (added by
|
|
68
|
+
* adopter `configure*Handlers` overrides) and instantiates each via the factory.
|
|
69
|
+
* Picked up by Inversify alongside core's own `ClientSessionInitializer`s
|
|
70
|
+
* (`OperationHandlerRegistryInitializer` etc.).
|
|
71
|
+
*/
|
|
72
|
+
protected configureHandlerRegistries(): void;
|
|
73
|
+
/**
|
|
74
|
+
* {@link McpIdAliasService} binding. Override to swap in a custom alias strategy. Bind the
|
|
75
|
+
* shipped `NullMcpIdAliasService` (passthrough) to expose raw GLSP ids on the wire — useful
|
|
76
|
+
* for diagnostic readability or when token cost isn't a concern.
|
|
77
|
+
*/
|
|
78
|
+
protected bindIdAliasService(): BindingTarget<McpIdAliasService>;
|
|
79
|
+
/**
|
|
80
|
+
* {@link McpLabelProvider} binding. Override to teach MCP about adopter-specific label
|
|
81
|
+
* locations (e.g., labels nested in header components or compartments). One override here
|
|
82
|
+
* covers every read-side echo and every write-side label-edit operation.
|
|
83
|
+
*/
|
|
84
|
+
protected bindLabelProvider(): BindingTarget<McpLabelProvider>;
|
|
85
|
+
/**
|
|
86
|
+
* {@link McpModelSerializer} binding. Override to swap in a diagram-type-specific serializer
|
|
87
|
+
* (e.g. one that emits JSON, or knows the adopter's element schema). Per-session scope means
|
|
88
|
+
* each diagram type provides its own serializer without a server-level rebind.
|
|
89
|
+
*/
|
|
90
|
+
protected bindModelSerializer(): BindingTarget<McpModelSerializer>;
|
|
91
|
+
/**
|
|
92
|
+
* {@link ElementTypesProvider} binding. Override to ship a constant-value list of creatable
|
|
93
|
+
* element types for the adopter's diagram type instead of the default impl that scrapes
|
|
94
|
+
* {@link OperationHandlerRegistry} (noisy for non-trivial diagrams).
|
|
95
|
+
*/
|
|
96
|
+
protected bindElementTypesProvider(): BindingTarget<ElementTypesProvider>;
|
|
97
|
+
/**
|
|
98
|
+
* Override to add or replace diagram-scope tool handlers. Adopters typically
|
|
99
|
+
* `super.configureToolHandlers(binding)` to keep the defaults, then `binding.add(MyTool)`
|
|
100
|
+
* for additions or `binding.rebind(StandardTool, MyTool)` for overrides.
|
|
101
|
+
*/
|
|
102
|
+
protected configureToolHandlers(binding: InstanceMultiBinding<McpDiagramToolHandlerConstructor>): void;
|
|
103
|
+
/** See {@link configureToolHandlers}. */
|
|
104
|
+
protected configureResourceHandlers(binding: InstanceMultiBinding<McpDiagramResourceHandlerConstructor>): void;
|
|
105
|
+
/**
|
|
106
|
+
* See {@link configureToolHandlers}. No diagram-scope prompts ship by default — the shipped
|
|
107
|
+
* `describe-diagram` and `suggest-improvements` prompts are diagram-type-agnostic and bound
|
|
108
|
+
* server-scope. Adopters add their own diagram-type-specific prompts here.
|
|
109
|
+
*/
|
|
110
|
+
protected configurePromptHandlers(_binding: InstanceMultiBinding<McpDiagramPromptHandlerConstructor>): void;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Default {@link AbstractMcpDiagramModule} entry point. Adopters who don't need overrides
|
|
114
|
+
* use it directly: `new DefaultMcpDiagramModule()`. Adopters with customizations subclass
|
|
115
|
+
* `AbstractMcpDiagramModule` (or this class) and override the `bind*` / `configure*` hooks.
|
|
116
|
+
*
|
|
117
|
+
* @experimental The MCP integration is under active development. Option names, schema shapes,
|
|
118
|
+
* and handler contracts MAY change in minor releases until the feature graduates from
|
|
119
|
+
* experimental status.
|
|
120
|
+
*/
|
|
121
|
+
export declare class DefaultMcpDiagramModule extends AbstractMcpDiagramModule {
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=mcp-diagram-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-diagram-module.d.ts","sourceRoot":"","sources":["../../src/modules/mcp-diagram-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAsB,aAAa,EAA4B,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACrI,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAA+B,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACjH,OAAO,EAA8B,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAgC5G,OAAO,EAA4B,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAE7F,OAAO,EAA2B,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAmC,kCAAkC,EAAE,MAAM,8BAA8B,CAAC;AACnH,OAAO,EAAqC,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AACzH,OAAO,EAA6B,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8BAAsB,wBAAyB,SAAQ,UAAU;IAC7D,SAAS,CAAC,IAAI,EAAG,UAAU,CAAC,IAAI,CAAC;IACjC,SAAS,CAAC,MAAM,EAAG,UAAU,CAAC,MAAM,CAAC;cAElB,SAAS,CACxB,IAAI,EAAE,UAAU,CAAC,IAAI,EACrB,OAAO,EAAE,UAAU,CAAC,MAAM,EAC1B,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,MAAM,EAAE,UAAU,CAAC,MAAM,GAC1B,IAAI;IAsBP;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,0BAA0B,IAAI,IAAI;IA0B5C;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,aAAa,CAAC,iBAAiB,CAAC;IAIhE;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,IAAI,aAAa,CAAC,gBAAgB,CAAC;IAI9D;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,aAAa,CAAC,kBAAkB,CAAC;IAIlE;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,IAAI,aAAa,CAAC,oBAAoB,CAAC;IAIzE;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,gCAAgC,CAAC,GAAG,IAAI;IAoBtG,yCAAyC;IACzC,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,CAAC,oCAAoC,CAAC,GAAG,IAAI;IAK9G;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,kCAAkC,CAAC,GAAG,IAAI;CAG9G;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,wBAAwB;CAAG"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/********************************************************************************
|
|
3
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
*
|
|
9
|
+
* This Source Code may also be made available under the following Secondary
|
|
10
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
* with the GNU Classpath Exception which is available at
|
|
13
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
********************************************************************************/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.DefaultMcpDiagramModule = exports.AbstractMcpDiagramModule = void 0;
|
|
19
|
+
const server_1 = require("@eclipse-glsp/server");
|
|
20
|
+
const diagram_png_mcp_resource_handler_1 = require("../resources/handlers/diagram-png-mcp-resource-handler");
|
|
21
|
+
const diagram_svg_mcp_resource_handler_1 = require("../resources/handlers/diagram-svg-mcp-resource-handler");
|
|
22
|
+
const element_types_provider_1 = require("../resources/services/element-types-provider");
|
|
23
|
+
const mcp_model_serializer_1 = require("../resources/services/mcp-model-serializer");
|
|
24
|
+
const count_elements_mcp_tool_handler_1 = require("../tools/handlers/count-elements-mcp-tool-handler");
|
|
25
|
+
const create_edges_mcp_tool_handler_1 = require("../tools/handlers/create-edges-mcp-tool-handler");
|
|
26
|
+
const create_nodes_mcp_tool_handler_1 = require("../tools/handlers/create-nodes-mcp-tool-handler");
|
|
27
|
+
const delete_elements_mcp_tool_handler_1 = require("../tools/handlers/delete-elements-mcp-tool-handler");
|
|
28
|
+
const diagram_model_mcp_tool_handler_1 = require("../tools/handlers/diagram-model-mcp-tool-handler");
|
|
29
|
+
const get_selection_mcp_tool_handler_1 = require("../tools/handlers/get-selection-mcp-tool-handler");
|
|
30
|
+
const layout_mcp_tool_handler_1 = require("../tools/handlers/layout-mcp-tool-handler");
|
|
31
|
+
const modify_edges_mcp_tool_handler_1 = require("../tools/handlers/modify-edges-mcp-tool-handler");
|
|
32
|
+
const modify_nodes_mcp_tool_handler_1 = require("../tools/handlers/modify-nodes-mcp-tool-handler");
|
|
33
|
+
const query_elements_mcp_tool_handler_1 = require("../tools/handlers/query-elements-mcp-tool-handler");
|
|
34
|
+
const redo_mcp_tool_handler_1 = require("../tools/handlers/redo-mcp-tool-handler");
|
|
35
|
+
const save_model_mcp_tool_handler_1 = require("../tools/handlers/save-model-mcp-tool-handler");
|
|
36
|
+
const set_selection_mcp_tool_handler_1 = require("../tools/handlers/set-selection-mcp-tool-handler");
|
|
37
|
+
const set_view_mcp_tool_handler_1 = require("../tools/handlers/set-view-mcp-tool-handler");
|
|
38
|
+
const undo_mcp_tool_handler_1 = require("../tools/handlers/undo-mcp-tool-handler");
|
|
39
|
+
const validate_diagram_mcp_tool_handler_1 = require("../tools/handlers/validate-diagram-mcp-tool-handler");
|
|
40
|
+
const mcp_diagram_prompt_handler_registry_1 = require("../server/mcp-diagram-prompt-handler-registry");
|
|
41
|
+
const mcp_diagram_resource_handler_registry_1 = require("../server/mcp-diagram-resource-handler-registry");
|
|
42
|
+
const mcp_diagram_tool_handler_registry_1 = require("../server/mcp-diagram-tool-handler-registry");
|
|
43
|
+
const mcp_id_alias_service_1 = require("../server/mcp-id-alias-service");
|
|
44
|
+
const mcp_label_provider_1 = require("../server/mcp-label-provider");
|
|
45
|
+
const mcp_prompt_handler_1 = require("../server/mcp-prompt-handler");
|
|
46
|
+
const mcp_resource_handler_1 = require("../server/mcp-resource-handler");
|
|
47
|
+
const mcp_tool_handler_1 = require("../server/mcp-tool-handler");
|
|
48
|
+
/**
|
|
49
|
+
* Per-GLSP-client-session DI module for the MCP server. Loaded inside `configureDiagramModule`
|
|
50
|
+
* so each `ClientSession.container` gets its own instance of session-scoped services.
|
|
51
|
+
*
|
|
52
|
+
* Binds the {@link McpIdAliasService}, the {@link McpModelSerializer}, the
|
|
53
|
+
* {@link ElementTypesProvider}, and the diagram-scope handler-constructor multi-bindings
|
|
54
|
+
* (`McpDiagram*HandlerConstructor`). Adopters subclass and override the `bind*` hooks to swap
|
|
55
|
+
* single-instance services and the `configure*` hooks to extend the multi-binding handler sets.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* class WorkflowMcpDiagramModule extends DefaultMcpDiagramModule {
|
|
60
|
+
* // Single-instance binding: return the class.
|
|
61
|
+
* protected override bindModelSerializer(): BindingTarget<McpModelSerializer> {
|
|
62
|
+
* return WorkflowMcpModelSerializer;
|
|
63
|
+
* }
|
|
64
|
+
* // Multi-binding: extend or rebind the default set.
|
|
65
|
+
* protected override configureToolHandlers(binding) {
|
|
66
|
+
* super.configureToolHandlers(binding);
|
|
67
|
+
* binding.add(WorkflowExtraTool);
|
|
68
|
+
* binding.rebind(CreateNodesMcpToolHandler, WorkflowCreateNodesMcpToolHandler);
|
|
69
|
+
* }
|
|
70
|
+
* }
|
|
71
|
+
* new WorkflowServerModule().configureDiagramModule(
|
|
72
|
+
* new WorkflowDiagramModule(...),
|
|
73
|
+
* elkLayoutModule,
|
|
74
|
+
* new WorkflowMcpDiagramModule()
|
|
75
|
+
* );
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
class AbstractMcpDiagramModule extends server_1.GLSPModule {
|
|
79
|
+
configure(bind, _unbind, isBound, rebind) {
|
|
80
|
+
this.bind = bind;
|
|
81
|
+
this.rebind = rebind;
|
|
82
|
+
const context = { bind, isBound };
|
|
83
|
+
(0, server_1.applyBindingTarget)(context, mcp_id_alias_service_1.McpIdAliasService, this.bindIdAliasService()).inSingletonScope();
|
|
84
|
+
(0, server_1.applyBindingTarget)(context, mcp_label_provider_1.McpLabelProvider, this.bindLabelProvider()).inSingletonScope();
|
|
85
|
+
(0, server_1.applyBindingTarget)(context, mcp_model_serializer_1.McpModelSerializer, this.bindModelSerializer()).inSingletonScope();
|
|
86
|
+
(0, server_1.applyBindingTarget)(context, element_types_provider_1.ElementTypesProvider, this.bindElementTypesProvider()).inSingletonScope();
|
|
87
|
+
this.configureMultiBinding(new server_1.InstanceMultiBinding(mcp_tool_handler_1.McpDiagramToolHandlerConstructor), binding => this.configureToolHandlers(binding));
|
|
88
|
+
this.configureMultiBinding(new server_1.InstanceMultiBinding(mcp_resource_handler_1.McpDiagramResourceHandlerConstructor), binding => this.configureResourceHandlers(binding));
|
|
89
|
+
this.configureMultiBinding(new server_1.InstanceMultiBinding(mcp_prompt_handler_1.McpDiagramPromptHandlerConstructor), binding => this.configurePromptHandlers(binding));
|
|
90
|
+
this.configureHandlerRegistries();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Bind the per-GLSP-session handler registries, factories, and {@link ClientSessionInitializer}s
|
|
94
|
+
* that populate the registries at session-open. Adopters typically don't override.
|
|
95
|
+
*
|
|
96
|
+
* Each kind (tool / resource / prompt) follows the same shape:
|
|
97
|
+
* - `Registry` — singleton-per-session, holds instantiated handlers keyed by `name`.
|
|
98
|
+
* - `Factory` — `dynamicValue` that calls `ctx.container.resolve(constructor)`, so the
|
|
99
|
+
* handler's `@inject(...)` fields resolve against the live `ClientSession.container`.
|
|
100
|
+
* - `RegistryInitializer` — at session-open, reads the constructor multi-binding (added by
|
|
101
|
+
* adopter `configure*Handlers` overrides) and instantiates each via the factory.
|
|
102
|
+
* Picked up by Inversify alongside core's own `ClientSessionInitializer`s
|
|
103
|
+
* (`OperationHandlerRegistryInitializer` etc.).
|
|
104
|
+
*/
|
|
105
|
+
configureHandlerRegistries() {
|
|
106
|
+
this.bind(mcp_diagram_tool_handler_registry_1.McpDiagramToolHandlerRegistry).toSelf().inSingletonScope();
|
|
107
|
+
this.bind(mcp_diagram_tool_handler_registry_1.McpDiagramToolHandlerFactory).toDynamicValue(ctx => (constructor) => ctx.container.resolve(constructor));
|
|
108
|
+
this.bind(mcp_diagram_tool_handler_registry_1.McpDiagramToolHandlerRegistryInitializer).toSelf().inSingletonScope();
|
|
109
|
+
this.bind(server_1.ClientSessionInitializer).toService(mcp_diagram_tool_handler_registry_1.McpDiagramToolHandlerRegistryInitializer);
|
|
110
|
+
this.bind(mcp_diagram_resource_handler_registry_1.McpDiagramResourceHandlerRegistry).toSelf().inSingletonScope();
|
|
111
|
+
this.bind(mcp_diagram_resource_handler_registry_1.McpDiagramResourceHandlerFactory).toDynamicValue(ctx => (constructor) => ctx.container.resolve(constructor));
|
|
112
|
+
this.bind(mcp_diagram_resource_handler_registry_1.McpDiagramResourceHandlerRegistryInitializer).toSelf().inSingletonScope();
|
|
113
|
+
this.bind(server_1.ClientSessionInitializer).toService(mcp_diagram_resource_handler_registry_1.McpDiagramResourceHandlerRegistryInitializer);
|
|
114
|
+
this.bind(mcp_diagram_prompt_handler_registry_1.McpDiagramPromptHandlerRegistry).toSelf().inSingletonScope();
|
|
115
|
+
this.bind(mcp_diagram_prompt_handler_registry_1.McpDiagramPromptHandlerFactory).toDynamicValue(ctx => (constructor) => ctx.container.resolve(constructor));
|
|
116
|
+
this.bind(mcp_diagram_prompt_handler_registry_1.McpDiagramPromptHandlerRegistryInitializer).toSelf().inSingletonScope();
|
|
117
|
+
this.bind(server_1.ClientSessionInitializer).toService(mcp_diagram_prompt_handler_registry_1.McpDiagramPromptHandlerRegistryInitializer);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* {@link McpIdAliasService} binding. Override to swap in a custom alias strategy. Bind the
|
|
121
|
+
* shipped `NullMcpIdAliasService` (passthrough) to expose raw GLSP ids on the wire — useful
|
|
122
|
+
* for diagnostic readability or when token cost isn't a concern.
|
|
123
|
+
*/
|
|
124
|
+
bindIdAliasService() {
|
|
125
|
+
return mcp_id_alias_service_1.DefaultMcpIdAliasService;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* {@link McpLabelProvider} binding. Override to teach MCP about adopter-specific label
|
|
129
|
+
* locations (e.g., labels nested in header components or compartments). One override here
|
|
130
|
+
* covers every read-side echo and every write-side label-edit operation.
|
|
131
|
+
*/
|
|
132
|
+
bindLabelProvider() {
|
|
133
|
+
return mcp_label_provider_1.DefaultMcpLabelProvider;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* {@link McpModelSerializer} binding. Override to swap in a diagram-type-specific serializer
|
|
137
|
+
* (e.g. one that emits JSON, or knows the adopter's element schema). Per-session scope means
|
|
138
|
+
* each diagram type provides its own serializer without a server-level rebind.
|
|
139
|
+
*/
|
|
140
|
+
bindModelSerializer() {
|
|
141
|
+
return mcp_model_serializer_1.MarkdownMcpModelSerializer;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* {@link ElementTypesProvider} binding. Override to ship a constant-value list of creatable
|
|
145
|
+
* element types for the adopter's diagram type instead of the default impl that scrapes
|
|
146
|
+
* {@link OperationHandlerRegistry} (noisy for non-trivial diagrams).
|
|
147
|
+
*/
|
|
148
|
+
bindElementTypesProvider() {
|
|
149
|
+
return element_types_provider_1.DefaultElementTypesProvider;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Override to add or replace diagram-scope tool handlers. Adopters typically
|
|
153
|
+
* `super.configureToolHandlers(binding)` to keep the defaults, then `binding.add(MyTool)`
|
|
154
|
+
* for additions or `binding.rebind(StandardTool, MyTool)` for overrides.
|
|
155
|
+
*/
|
|
156
|
+
configureToolHandlers(binding) {
|
|
157
|
+
binding.add(create_nodes_mcp_tool_handler_1.CreateNodesMcpToolHandler);
|
|
158
|
+
binding.add(create_edges_mcp_tool_handler_1.CreateEdgesMcpToolHandler);
|
|
159
|
+
binding.add(delete_elements_mcp_tool_handler_1.DeleteElementsMcpToolHandler);
|
|
160
|
+
binding.add(save_model_mcp_tool_handler_1.SaveModelMcpToolHandler);
|
|
161
|
+
binding.add(validate_diagram_mcp_tool_handler_1.ValidateDiagramMcpToolHandler);
|
|
162
|
+
binding.add(diagram_model_mcp_tool_handler_1.DiagramModelMcpToolHandler);
|
|
163
|
+
binding.add(query_elements_mcp_tool_handler_1.QueryElementsMcpToolHandler);
|
|
164
|
+
binding.add(count_elements_mcp_tool_handler_1.CountElementsMcpToolHandler);
|
|
165
|
+
binding.add(modify_nodes_mcp_tool_handler_1.ModifyNodesMcpToolHandler);
|
|
166
|
+
binding.add(modify_edges_mcp_tool_handler_1.ModifyEdgesMcpToolHandler);
|
|
167
|
+
binding.add(undo_mcp_tool_handler_1.UndoMcpToolHandler);
|
|
168
|
+
binding.add(redo_mcp_tool_handler_1.RedoMcpToolHandler);
|
|
169
|
+
binding.add(get_selection_mcp_tool_handler_1.GetSelectionMcpToolHandler);
|
|
170
|
+
binding.add(set_selection_mcp_tool_handler_1.SetSelectionMcpToolHandler);
|
|
171
|
+
binding.add(set_view_mcp_tool_handler_1.SetViewMcpToolHandler);
|
|
172
|
+
// Auto-skips at session-open via `canRegister()` when no `LayoutEngine` is bound.
|
|
173
|
+
binding.add(layout_mcp_tool_handler_1.LayoutMcpToolHandler);
|
|
174
|
+
}
|
|
175
|
+
/** See {@link configureToolHandlers}. */
|
|
176
|
+
configureResourceHandlers(binding) {
|
|
177
|
+
binding.add(diagram_png_mcp_resource_handler_1.DiagramPngMcpResourceHandler);
|
|
178
|
+
binding.add(diagram_svg_mcp_resource_handler_1.DiagramSvgMcpResourceHandler);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* See {@link configureToolHandlers}. No diagram-scope prompts ship by default — the shipped
|
|
182
|
+
* `describe-diagram` and `suggest-improvements` prompts are diagram-type-agnostic and bound
|
|
183
|
+
* server-scope. Adopters add their own diagram-type-specific prompts here.
|
|
184
|
+
*/
|
|
185
|
+
configurePromptHandlers(_binding) {
|
|
186
|
+
// empty by default
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.AbstractMcpDiagramModule = AbstractMcpDiagramModule;
|
|
190
|
+
/**
|
|
191
|
+
* Default {@link AbstractMcpDiagramModule} entry point. Adopters who don't need overrides
|
|
192
|
+
* use it directly: `new DefaultMcpDiagramModule()`. Adopters with customizations subclass
|
|
193
|
+
* `AbstractMcpDiagramModule` (or this class) and override the `bind*` / `configure*` hooks.
|
|
194
|
+
*
|
|
195
|
+
* @experimental The MCP integration is under active development. Option names, schema shapes,
|
|
196
|
+
* and handler contracts MAY change in minor releases until the feature graduates from
|
|
197
|
+
* experimental status.
|
|
198
|
+
*/
|
|
199
|
+
class DefaultMcpDiagramModule extends AbstractMcpDiagramModule {
|
|
200
|
+
}
|
|
201
|
+
exports.DefaultMcpDiagramModule = DefaultMcpDiagramModule;
|
|
202
|
+
//# sourceMappingURL=mcp-diagram-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-diagram-module.js","sourceRoot":"","sources":["../../src/modules/mcp-diagram-module.ts"],"names":[],"mappings":"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"}
|