enterprise-architect-mcp 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/tools/connectors.js +4 -3
- package/dist/tools/diagrams.js +1 -1
- package/dist/tools/elements.js +3 -3
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -184,8 +184,8 @@ hand; answering the prompt once is what makes that unnecessary.
|
|
|
184
184
|
| `ea_search` | Full-text search across elements, attributes, operations, and constraints. Case- and diacritic-insensitive across European Latin alphabets, decodes entity-encoded text. Each result carries the evidence for its match — the field, the attribute or operation it came from, and a snippet of the author's own text. Accepts a `packageScope` (package id or name) to restrict results to a package and its descendants, and reports a package breakdown axis when unscoped. |
|
|
185
185
|
| `ea_get_element` | Full element detail — attributes, operations, diagrams it appears on, constraints (pre/post/invariant/process). Flags whether attribute multiplicity is contrastive. |
|
|
186
186
|
| `ea_list_elements` | List elements in a package, optionally filtered by type. Windowed: reports the total and pages with `offset`. |
|
|
187
|
-
| `ea_get_connectors` | Relationships for an element — includes feature-link resolution (which attribute/operation each end attaches to). |
|
|
188
|
-
| `ea_get_diagram_elements` | Elements and connectors on a diagram, including implied connectors and feature links. |
|
|
187
|
+
| `ea_get_connectors` | Relationships for an element — includes feature-link resolution (which attribute/operation each end attaches to). `Generalization` connectors carry a `role` (`child`/`parent`) on each end; filter `connectorType: "Generalization"` with `direction: "incoming"`/`"outgoing"` to list an element's direct children/parent(s) without a diagram. |
|
|
188
|
+
| `ea_get_diagram_elements` | Elements and connectors on a diagram, including implied connectors and feature links. `elements` includes free-text `Note` diagram objects, which often carry a legend or abbreviation definitions. |
|
|
189
189
|
| `ea_get_scenarios` | Use case scenario steps with all attributes (trigger, uses, result, link, state) and scenario notes. A step's `uses` may name a business rule or constraint by code — that code isn't independently searchable, it's retrieved via `ea_get_element` on the same element. |
|
|
190
190
|
| `ea_get_package_tree` | Navigate the package hierarchy with recursive depth. |
|
|
191
191
|
| `ea_list_diagrams` | Search diagrams by name, type and package. Windowed like the tools above. |
|
package/dist/tools/connectors.js
CHANGED
|
@@ -46,7 +46,7 @@ function parseFeatureLinks(db, styleEx) {
|
|
|
46
46
|
return { sourceFeature, targetFeature };
|
|
47
47
|
}
|
|
48
48
|
export function configureConnectorTools(server, model) {
|
|
49
|
-
server.tool("ea_get_connectors", "Get all relationships (connectors) for a given element. `connectors` lists what the element is connected to and how (Realisation, Dependency, Association, etc.), each entry naming its `source` and `dest` ends. Feature links show which specific attribute or operation each end attaches to.", {
|
|
49
|
+
server.tool("ea_get_connectors", "Get all relationships (connectors) for a given element. `connectors` lists what the element is connected to and how (Realisation, Dependency, Association, etc.), each entry naming its `source` and `dest` ends. For Generalization connectors, `source` is always the specific (child) type and `dest` the general (parent) type \u2014 each end also carries a `role` making this explicit without needing to reason about direction. Filter by `connectorType` and `direction` to list an element's direct children (incoming Generalization) or direct parent(s) (outgoing Generalization) without a diagram. Feature links show which specific attribute or operation each end attaches to.", {
|
|
50
50
|
elementId: z.coerce.number().describe("The Object_ID of the element to get connectors for"),
|
|
51
51
|
connectorType: z
|
|
52
52
|
.string()
|
|
@@ -113,8 +113,9 @@ export function configureConnectorTools(server, model) {
|
|
|
113
113
|
destCard: r.DestCard,
|
|
114
114
|
sourceRole: r.SourceRole || null,
|
|
115
115
|
destRole: r.DestRole || null,
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
// Generalization: Start_Object_ID is always the specific (child) type, End_Object_ID the general (parent) type.
|
|
117
|
+
source: { id: r.Start_Object_ID, name: r.SourceName, type: r.SourceType, stereotype: r.SourceStereotype, ...(r.Connector_Type === "Generalization" ? { role: "child" } : {}) },
|
|
118
|
+
dest: { id: r.End_Object_ID, name: r.DestName, type: r.DestType, stereotype: r.DestStereotype, ...(r.Connector_Type === "Generalization" ? { role: "parent" } : {}) },
|
|
118
119
|
sourceFeature,
|
|
119
120
|
targetFeature,
|
|
120
121
|
};
|
package/dist/tools/diagrams.js
CHANGED
|
@@ -44,7 +44,7 @@ function parseFeatureLinks(db, styleEx) {
|
|
|
44
44
|
return { sourceFeature, targetFeature };
|
|
45
45
|
}
|
|
46
46
|
export function configureDiagramTools(server, model) {
|
|
47
|
-
server.tool("ea_get_diagram_elements", "Get all elements and connectors placed on a specific diagram: the `diagram` itself, plus `elements` and `connectors`. Connectors include feature-link resolution showing which attribute or operation each end attaches to. The connector list is the union of explicit t_diagramlinks rows and implied connectors (both ends on the diagram).", {
|
|
47
|
+
server.tool("ea_get_diagram_elements", "Get all elements and connectors placed on a specific diagram: the `diagram` itself, plus `elements` and `connectors`. `elements` already includes free-text `Note` diagram objects, which often carry a legend or abbreviation definitions an agent would otherwise miss. Connectors include feature-link resolution showing which attribute or operation each end attaches to. The connector list is the union of explicit t_diagramlinks rows and implied connectors (both ends on the diagram).", {
|
|
48
48
|
diagramId: z.coerce.number().describe("The Diagram_ID to get elements for"),
|
|
49
49
|
}, READ_ONLY, async ({ diagramId }) => {
|
|
50
50
|
const db = await model.database();
|
package/dist/tools/elements.js
CHANGED
|
@@ -39,7 +39,7 @@ export function configureElementTools(server, model) {
|
|
|
39
39
|
type: a.Type,
|
|
40
40
|
scope: a.Scope,
|
|
41
41
|
stereotype: a.Stereotype,
|
|
42
|
-
notes: a.Notes,
|
|
42
|
+
notes: decodeEntities(a.Notes),
|
|
43
43
|
multiplicity: formatMultiplicity(a),
|
|
44
44
|
default: a.Default,
|
|
45
45
|
}));
|
|
@@ -66,12 +66,12 @@ export function configureElementTools(server, model) {
|
|
|
66
66
|
returnType: op.Type,
|
|
67
67
|
scope: op.Scope,
|
|
68
68
|
stereotype: op.Stereotype,
|
|
69
|
-
notes: op.Notes,
|
|
69
|
+
notes: decodeEntities(op.Notes),
|
|
70
70
|
parameters: params.map((p) => ({
|
|
71
71
|
name: p.Name,
|
|
72
72
|
type: p.Type,
|
|
73
73
|
kind: p.Kind,
|
|
74
|
-
notes: p.Notes,
|
|
74
|
+
notes: decodeEntities(p.Notes),
|
|
75
75
|
})),
|
|
76
76
|
};
|
|
77
77
|
});
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const packageVersion = "2.
|
|
1
|
+
export declare const packageVersion = "2.4.0+g5d08fcc";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const packageVersion = "2.
|
|
1
|
+
export const packageVersion = "2.4.0+g5d08fcc";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "enterprise-architect-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"mcpName": "io.github.mm6502/enterprise-architect-mcp",
|
|
5
5
|
"description": "MCP server for read-only access to Sparx Enterprise Architect .qea exports — search elements, navigate packages, read use case scenarios and traverse connectors from an AI agent",
|
|
6
6
|
"keywords": [
|