ea-mdg-deploy
Logic: AI + AI Power Tools checks. Mostly deterministic calls and EA checks, with UI driving and dialog reading by the AI.
What it is for
Use it to get a modeling language into a model or onto a machine. You end with the technology installed where it reaches the people who need it, with proof from runtime checks and EA's own interface that it works.
ea-mdg-deploy puts a built MDG Technology into Sparx EA and proves that it works. "Works" means more than "an install call returned success": the skill's central point is that EA reports success it has not earned, and reports failure as a modal dialog that blocks the connection rather than as an error. Every deploy is therefore paired with a verification sequence that ends in the UI.
It covers the three places a technology can be installed (see Where a technology is installed: the whole technology in the model at Location: Model, the model's other storage at Location: Project, and a file on the workstation), the ways to get there, the traps that make a deployment look successful on one machine and change nothing for anyone else, and the checklist that proves the result. It is the last step of all three ways to get a technology (see Three ways to get a technology).
Capabilities it uses
| Capability | Used for | Without it |
|---|---|---|
| MCP server | Checking the file and the EA build, installing (into the model from an MDG technology package, into the model at Location: Project, or for the workstation), the search-path, registered-technology and stored-copy reads, and reading what EA loaded and whether it is enabled | Not available: installing and the server-side checks are server operations |
| Computer use | Verifying in EA's UI, which is the proof the skill requires: Manage Technologies (one entry, right Location, enabled), a diagram of the custom type, the toolbox, an element dropped from the toolbox with its tagged values, and Quick Linker. Also Import to Model (the one way to put a technology file into the model with its toolbox pages), removing a Location: Model copy in Manage Technologies, a screenshot straight after each EA call, reading and dismissing the "Profile already exists. Overwrite?" dialog, and restarting EA through its window | The AI hands you the verification steps and asks for screenshots. It does not report a deploy as proven, or a hang as diagnosed, without seeing the evidence. Import to Model and removing a Location: Model copy are yours to perform. A modal dialog keeps blocking the connection until you screenshot it, paste it into the conversation so the AI can analyze it, and dismiss it. Quick Linker can only be checked in the UI |
| Local code execution | EA's automation interface through ea-com scripts (Python 3 and pywin32): EA's loaded, enabled and version checks, the scripted restart, and the Location: Project import as a script |
Loaded, enabled and version come from get_mdg_from_runtime and Manage Technologies. EA is restarted by the AI with computer use, otherwise by you |
| Browser control | Not needed | Not needed |
When to use it, and when not
Use it after authoring or modifying an MDG file (ea-mdg-author) or after a model-driven build (ea-mdg-model-build), and when a technology "is installed but does nothing".
| The task | Use instead |
|---|---|
| Find out what state a technology is in before changing anything | ea-mdg-assess |
| Write or change the file | ea-mdg-author |
| Build the MDG from profile packages | ea-mdg-model-build |
| Drive EA's automation interface from a script | ea-com |
| A call hangs and EA looks stuck | ea-diagnostic, and the shared UI-verification procedure in Shared references |
| Check that elements conform after deployment | ea-validation |
How it works
- AI Power Tools Check the file and the EA build. For a file: confirm the encoding declaration agrees with the file's bytes, every id is 12 characters or fewer, and the file is well formed (
parse_mdg_xml). For a technology built from a package in the model: confirm the package is stereotyped as an MDG technology.get_repository_inforeports the EA version, which decides which build commands exist. - (AI, you where it is not obvious) Choose where it lives. Location: Model is preferred: it keeps the whole technology, toolbox pages included, and travels with the model. Location: Project keeps no toolbox pages, so it suits only a technology that has none. A workstation file is machine-specific.
- (AI Power Tools reads, AI interprets) Check what is already there before writing anything.
get_embedded_mdgslists the copies the model stores, with their Locations.get_mdg_search_paths(with the folder the build will be written to) andlist_registered_technologiesshow file copies and registrations. Then the Manage Technologies dialog with "Hide disabled Technologies" unticked AI with computer use; otherwise you. Exactly one entry for the technology id should result from the deploy. - (AI Power Tools; AI with computer use; otherwise you, for a Location: Model copy) Remove a conflicting copy. A workstation copy of an id the model is about to hold, and a copy of the same id at the other in-model Location. Never keep one technology id at two places.
- (AI Power Tools; AI with computer use; otherwise you, for a file at Location: Model; the Location: Project import as a script is an engine) Install. From a package in the model,
install_mdgwith the model scope stores the whole technology at Location: Model and reads the stored copy back. From a technology file, Import to Model in EA's Import MDG Technology dialog is the only route to Location: Model. A technology with no toolbox pages can go to Location: Project (install_mdgwith the embedded scope, or EA's own import through ea-com). For a per-machine copy,install_mdgwith the user scope. - AI with computer use; otherwise you Screenshot immediately, then again. EA's import can raise a modal "Profile already exists. Overwrite?" dialog that blocks the connection, in some builds even with dialogs suppressed. Capture the screen, wait three to five seconds, capture again, read any dialog, dismiss it deliberately, and only then continue. Without computer use, you look at EA after each call, screenshot any dialog and paste it into the conversation so the AI can read it, then dismiss it so processing can continue.
- (engine, or AI with computer use; otherwise you) Restart EA, with your agreement, to clear the technology cache: save, shut down, wait for the process to exit, relaunch on the saved project, reconnect. Judge the toolbox only after the restart.
- (AI + AI Power Tools checks) Verify, most reliable first. EA's loaded, enabled and version checks Engine, then Manage Technologies (one entry, at the Location you chose), a diagram of the custom type, the toolbox, an element dropped from the toolbox with its tagged values, and Quick Linker AI with computer use; otherwise you.
- (AI, you) Diagnose and retire. A failure goes through the troubleshooting table; an old build is taken out of use deliberately.
Where the technology goes. The three places are described in Where a technology is installed: Location: Model (preferred), Location: Project, and a file on the workstation (%APPDATA%\Sparx Systems\EA\MDGTechnologies\).
Never keep one technology id at two places. A workstation copy of an id the model also holds shows as a duplicate entry with an asterisk in Manage Technologies, and the skill reports that the asterisk entry cannot be removed through the UI. An id stored at both in-model Locations is listed twice, both enabled, and EA answers the version from the Project copy.
Model versus runtime is a second, independent axis. A technology can be model-driven (built from profile packages) or file-authored, and either can be deployed at any of the three places.
EA auto-registers any MDG file found on its search path, wherever the technology is installed. The list is at Manage Technologies, Advanced tab, and routinely includes a user's Downloads folder. A build, or a stray copy, written there registers itself silently, shadows the intended model copy, and makes the deployment look successful on the author's machine while nothing changes for anyone else. The search path is not recursive: a subfolder is safe. get_mdg_search_paths reads the path list from the Windows registry on a best-effort basis, so an unverified result means unknown, not "none configured"; its shadow check for a given folder then answers "cannot determine", not "no".
The ways to deploy
| Way | How | Notes |
|---|---|---|
| In the model at Location: Model, from an MDG technology package, through the server (preferred) | install_mdg with the model scope and the package |
Uses EA's Import Package as MDG Technology with dialogs suppressed, then reads the stored copy back: technology id, declared version, sections, and the counts of stereotypes, diagram types and toolbox pages. Importing the same package again leaves one copy. If the model also holds the id at Location: Project, the answer reports the install as shadowed. The option to replace the Project copy removes it; if EA leaves it, the answer still says shadowed, so reopen the project and call again. The call takes a package, not a file |
| In the model at Location: Model, from a technology file | Specialize > Publish Technology > Import MDG Technology, then Import to Model AI with computer use; otherwise you | Done in EA's own dialog, which the AI drives with computer use |
| In the model at Location: Project, for a technology with no toolbox pages | install_mdg with the embedded scope, or EA's technology import through ea-com |
Reads back what it stored and lists every populated section of the file it did not store; the answer is marked incomplete, with a warning, when toolbox pages were dropped. Reports an import failure with detail if EA returns false: ids over 12 characters, malformed XML, a namespace mismatch or a missing base technology. If EA reports success but stores nothing, the answer says so |
| Application-level, through the server | install_mdg with the user scope |
Copies the file to %APPDATA%\Sparx Systems\EA\MDGTechnologies\<technology id>.xml and refreshes the model view. Restart EA afterwards |
| Application-level, manual | Save the file into that folder; EA reloads the folder when Manage Technologies opens; restart EA | EA 17.0 |
| MTS wizard (EA 17.0 and earlier) | Specialize > Publish Technology > Generate MDG Technology | Builds the file from a build definition that references profile files. Produces a file; install it by one of the ways above |
| From a profile package (EA 17.1 and later) | Specialize > Publish Technology > Save Package as MDG Technology | UI only. Writes a file; installs nothing. Import Package as MDG Technology, on the same menu, imports the technology into the open model at Location: Model instead. See ea-mdg-model-build |
get_embedded_mdgs lists every copy the model stores, each with its Location and the id, name and version its stored definition declares. A technology loaded from a workstation file is not stored in the model and is not listed there.
Save and Import are different commands. Save Package as MDG Technology writes a file and installs nothing. Import Package as MDG Technology builds the same technology and imports it into the open model at Location: Model, toolbox pages included, and writes no file. With EA's dialogs suppressed it returns quickly and raises no dialog, and EA uses the imported copy in the open session at once. Measured on EA 17.1 build 1716. install_mdg with the model scope is the scriptable form.
Version gate
| EA version | Builds the MDG with |
|---|---|
| 17.1 and later | Save Package as MDG Technology |
| 17.0 and earlier | The MTS wizard. The 17.1 menu entries are absent, not greyed, on 17.0 build 1704 |
Verification, most reliable first
The first check is an Engine script. The checks on screen (Manage Technologies, diagram types, toolbox, stereotype and tags, Quick Linker) are AI with computer use; otherwise you. The last is an AI Power Tools operation.
- EA's own checks: the technology is loaded, enabled and reports the expected version. Loaded alone is not enough: a technology disabled in Manage Technologies still reports loaded.
- Manage Technologies (Specialize > Technologies): the Location column shows the Location you installed to (Model or Project, not the technologies folder), one entry with no asterisk and none at a second Location, and the version matches the file's version.
- Diagram types: right-click a package, Add Diagram; the custom types appear in the dropdown. Create one and confirm its Type property shows the custom type.
- Toolbox: with a custom diagram open, the technology's page(s) appear and list every expected stereotype. Check after an EA restart; before one, the toolbox may not switch to the technology's pages on its own, and the filter icon, then the technology, lists them. A single automatic page named after the profile, listing every stereotype, means the copy EA is using is at Location: Project, which keeps no toolbox pages. Install at Location: Model.
- Stereotype and tags: drag an element from the toolbox. The Properties panel shows
StereotypeasTechName: StereotypeName, the tagged values appear, and the element's properties dialog has a tab named after the technology. - Quick Linker: enable it in Preferences (Objects > Links > Quick Linker), open a diagram, hover over an element for one to two seconds. The overlay disappears on focus change, so screenshot at once.
- Server cross-check:
get_mdg_from_runtimewith the technology id answers live (not "registered, not enabled"), reports the Location you expect and names no second copy, shows no version mismatch, and carries the same stereotypes, tags and diagram types as the file. A file that declares no version reports none, so stamp one.
Restarting EA. A restart clears the technology cache and is required after any deploy and after removing a technology. After an install at Location: Model into a running EA, the diagram types resolve and the toolbox pages are listed in the Toolbox's technology menu at once, but the toolbox switching to them when a diagram opens is dependable only after a restart. Judge the toolbox after restarting. Bringing EA to the foreground must not use the computer-use application launcher: that always starts a second EA instance with no model. Click EA's taskbar button instead, or bring the existing window forward from a script. The restart itself is an engine script, or the AI drives EA's own exit and relaunch with computer use; without either, you restart EA. The AI asks you first.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| EA's technology import returns false | An id over 12 characters, an XML error, or a dialog was shown | Check EA for an error dialog; validate the file; check every id |
| Duplicate entry with an asterisk in Manage Technologies | Both the application-level and model copies exist | Delete the application-level copy; restart EA |
| Technology shows but the toolbox is empty | The diagram profile's toolbox text does not match the toolbox page | Make them match in a form that resolves on a scratch diagram (see ea-mdg-author) |
| Diagram type missing from the New Diagram dialog | Diagram profile not loaded, or a wrong base type | Use the logical-diagram base, not the plain "Logical" name |
| Tagged values do not appear | The stereotype name differs between the profile and the toolbox | The palette item name must be <TechID>::<StereotypeName>, and the prefix must match the profile's id |
| Only an automatic toolbox page, no designed pages | The technology was installed at Location: Project, which stores no toolbox pages | Install at Location: Model: install_mdg with the model scope, or Import to Model |
| Two entries for one id, Location Project and Location Model | Installed by both routes; EA answers from the Project copy | Keep one. install_mdg with the model scope and the option to replace the Project copy removes the Project copy; if it answers that the install is still shadowed, reopen the project and call again |
| EA's delete call returns true but a Location: Model entry remains | The delete call removes the Location: Project copy only | Remove the Location: Model copy in Manage Technologies (Remove) AI with computer use; otherwise you; restart EA |
| The MDG file is rejected on load | The encoding declaration and the bytes disagree | Declare utf-8 and save as UTF-8 |
| Only the author sees the change | A file on the search path shadows the model copy | Remove the shadowing file; recheck Manage Technologies |
Retiring old builds. Delete a stray application-level copy and restart. Remove a Location: Model copy in Manage Technologies (Remove). Removing a technology through EA's interface marks it for removal and takes effect after a restart. Enabling or disabling a technology can change what the live session's toolboxes offer, so it is a risk against a session someone else is using. Untick "Hide disabled Technologies" to see disabled entries. Two practices follow:
- Check for exactly one entry per technology id at the intended location before declaring a deploy done, and treat more than one as shadowing.
- Give builds distinguishable versions. A generated file can come out with an empty version; two unversioned builds cannot be told apart in Manage Technologies.
Importing a later build over an earlier one can leave the earlier profile loaded, and an earlier build is taken out of use by disabling it in Manage Technologies. Verify both rather than rely on them.
What you get
- The technology stored in the model (preferably at Location: Model) or installed for the machine, with exactly one entry at the intended Location and the expected version.
- A verification record: EA's own checks, the Manage Technologies state, and evidence on screen that a diagram of the custom type, its toolbox and a stereotyped element work.
- A record of every dialog that appeared and how it was handled.
Tools it relies on
install_mdg,get_mdg_from_runtime,list_registered_technologies,get_mdg_search_paths,get_embedded_mdgs: Managing technologies, Discovering technologiesparse_mdg_xml: Authoringget_repository_info: Projectexecute_sql(reading the embedded-technology list): Direct queries- EA's automation interface through ea-com (needs local code execution): import, loaded, enabled and version checks, removal, shutdown
- The AI driving EA's screen (computer use): dialogs, Manage Technologies, diagram and toolbox checks. See Shared references for latency and UI verification
Sample prompts
- "Deploy WBA_MDG.xml into WestbrookBank.qea so it travels with the model, toolbox pages included, then prove it loaded."
- "I put the latest WBA build in my Downloads folder and nobody else sees the change. What happened?"
- "Manage Technologies shows WBA twice and one has an asterisk. Clean it up."
- "WBA is installed, but the Application View diagram shows one automatic toolbox page instead of the designed ones. Find out why."
- "Import returned success but I don't trust it. Check whether the technology is really in the model."
- "The WBA technology package is in this model. Install it at Location: Model and tell me whether a Project copy shadows it."
Recommended models
| Model | Fit | Why |
|---|---|---|
| Claude Fable 5.1 | Capable | Strong at diagnosing shadowing and reading dialogs, more capability than a routine deploy needs |
| Claude Opus 5.5 | Recommended | Handles the ordered procedure and the UI screenshots, and the diagnosis when the checks disagree |
| Claude Sonnet 5.5 | Recommended | The procedure is largely scripted and verifiable by checklist; reliable when told to screenshot after every EA call |
| Claude Haiku 4.5 | Capable | Adequate for the scripted install and the EA checks. Weaker at reading a dialog correctly and at the shadowing diagnosis, so supervise those steps |
Ratings are guidance based on the kind of reasoning the skill needs, not measured benchmarks.
Checking accuracy and completeness
- Loaded, enabled, versioned. EA reports the technology loaded and enabled, and its version equals the file's. Red flag: "success" from the install taken as the whole proof, or a technology treated as in use while it is disabled.
- One entry, right place. Manage Technologies with "Hide disabled" unticked: one row for the id, at the intended Location, no asterisk. Red flag: a second row at a file path (shadowing), or a second row at the other in-model Location.
- Runtime agrees with the file.
get_mdg_from_runtimeanswers live with no version mismatch, and stereotype count, tag count and diagram-type count equal whatparse_mdg_xmlreads from the file. Red flag: any other label. - Stored copy exists. The list of copies the model stores has a row for the technology at the intended Location, carrying its id and version. Red flag: no row after a reported install, or a row at Location: Project when toolbox pages were expected.
- Functional proof. A diagram of the custom type opens with its toolbox page, an element from the toolbox carries the stereotype and its tagged values, and (where Quick Linker rules exist) the hover menu offers the connector. Red flag: a technology that "loads" and offers none of these.
- Dialogs accounted for. The record states whether a dialog appeared after each EA call and what was clicked. Red flag: a deploy report with no screenshot evidence.
- No leftover copies. No stale file in any search-path folder, and no application-level copy beside a copy stored in the model.
Limitations
- Windows and a running EA with the model open are required. EA is driven through its automation interface, and one EA instance per seat applies; never start a second EA instance against the same model file. The server attaches to a running EA and starts one only through
launch_ea, with your agreement. With computer use the AI can also start EA and open the model; otherwise you do. - A technology loaded from a workstation file is not stored in the model, so
get_embedded_mdgsdoes not list it. Verify such a technology with EA's own checks or the UI. - The technology lists are incomplete. EA cannot enumerate technologies, so
list_registered_technologiesandget_mdg_search_pathscan answer "unknown" where the UI would answer. The assistant fills the gap by reading Manage Technologies with computer use, or asks you to. - An application-level install needs a restart, and so does removing a technology.
- Dialogs block the server's connection until someone dismisses them. With computer use the AI sees the dialog in EA's window, reads it, corrects the call from the message and dismisses it. Without computer use you screenshot the dialog and paste it into the conversation so the AI can analyze it, then dismiss it so processing can continue.
- The skill's examples were verified on EA 17.0 build 1704; the two in-model storages were measured on EA 17.1 build 1716.
- A technology file reaches Location: Model only through an EA dialog. The AI drives Import to Model with computer use and otherwise you do it.
install_mdgwith the model scope takes a package, not a file. - A Location: Model copy is removed in Manage Technologies. EA's delete call removes only the Location: Project copy.