
Skill
mps-aspect-accessories
configure JetBrains MPS module dependencies
Description
Wire MPS module and model dependencies, used languages, used devkits, extended languages, runtime solutions, accessory models, and language/dependency versions. Use when adding/removing module dependencies, importing languages or devkits into a model, declaring runtime solutions, or shipping accessory content visible to consumers without explicit import.
SKILL.md
MPS Module and Model Dependencies, Accessory Models
This skill covers the wiring layer of an MPS language — the module descriptor (.mpl) and the per-model imports — and the special role of accessory models and runtime solutions.
Note: accessory wiring does not introduce a new aspect model or stereotype; it edits the existing language descriptor and model imports. When you do need to create a new aspect or stereotyped model, see aspect-model-stereotypes.md for the canonical aspect IDs and @stereotype values.
Critical Directives
- Prefer MCP wiring tools over hand-editing
.mplXML. Hand-editing can silently corrupt the module descriptor. If you must hand-edit (e.g. foraccessoryModels, which has no dedicated MCP tool), make a backup, edit only the targeted block, and rebuild the module immediately afterwards so MPS re-reads the descriptor. - Don't hand-edit
languageVersions/dependencyVersions. MPS maintains these. Use the MPS "Update language/dependency versions" action. - Generator modules have their own dependency list. Add target-language deps to the generator, not the parent language.
- Used languages auto-import when nodes are inserted via
mps_mcp_insert_root_node_from_json,mps_mcp_update_node. Manually add a used language only for hand-written code or implicit dependencies. - A runtime solution holds the stable part of generation (code that doesn't vary with the model). Generate thin code that calls it; don't regenerate it. No MCP tool wires the language's
<runtime>block — seereferences/runtime-solutions.md.
Rule of Thumb — Dependency vs. Used Language
- If a concept is used in your language definition → add a
usedLanguage. - If a Java class is referenced in hand-written code → add a
dependencywith the right scope.
MCP Tools Quick Reference
- Module-level:
mps_mcp_module_dependency,mps_mcp_get_project_structure. - Model-level:
mps_mcp_model_dependency,mps_mcp_model_used_language(kind =languageordevkit). - Module creation:
mps_mcp_create_module(type="solution", …)for a runtime solution.
Common Workflow
- Inspect existing wiring:
mps_mcp_get_project_structure(startingPoint=<module>)for the module descriptor,mps_mcp_get_project_structurefor traversal. - Diagnose the symptom against the pitfalls table (
references/pitfalls.md). - Apply the right MCP tool at the right layer (module vs. model vs. accessory).
- Rebuild the module so MPS re-reads the descriptor.
Related Skills
mps-language-inheritance— when you need the difference betweenextendedLanguagesandusedLanguagesin detail.mps-aspect-generator— generator-module dependencies are managed separately from the parent language.mps-language-aspects-overview— to know which aspects exist and where each one lives.
Reference Index
- Open
references/module-level-deps.mdfor the full list of.mpldeclarations (dependencies, usedLanguages, usedDevKits, extendedLanguages, runtimeModules, generators, accessoryModels, version stamps), their scopes, and themps_mcp_module_dependencyscope-dispatch table. - Open
references/model-level-imports.mdfor per-modeldependencies, used languages, used devkits, and the auto-import behavior of node-insertion tools. - Open
references/accessory-models.mdwhen shipping a model that should be available to every consumer of the language without an explicit import — including the.mpl<accessoryModels>XML shape and the hand-edit caveat. - Open
references/runtime-solutions.mdfor runtime solutions — shipping the Java that generated programs call at run time (the generator's stable part, as MPS source or a prebuilt JAR): the Java-facet settings, the language<runtime>-block wiring, jar-as-stubs (java_classesmodel root + facet<library>), the no-MCP-tool caveat, and the Kaja/JavaKaja worked example. - Open
references/extends-vs-uses.mdfor the semantic difference betweenextendedLanguagesandusedLanguageswith examples. - Open
references/pitfalls.mdwhen you need to diagnose a symptom ("Cannot resolve concept X", "ClassNotFoundException", version mismatch, generator can't find target-language concept, devkit changes not picked up). - Open
references/module-creation.mdformps_mcp_create_module— supported types, language-only companions (withGenerator/withSandbox/withRuntime), and thefacetspolicy. - Open
references/module-rename.mdformps_mcp_update_module— what the rename cascades into, the "generator modules are not renameable" rule, and therenameWarnings/renameCriticalProblemssemantics. - Open
references/module-info-fields.mdfor the shared info envelope returned bymps_mcp_get_project_structure(startingPoint=<module>)/mps_mcp_create_module/mps_mcp_update_module—kind,facets,loadExtensions, DevKit-only fields.
More skills from the MPS repository
View all 31 skillsmps-aspect-actions
define and edit MPS node factories
Jul 17ArchitectureEngineeringmps-aspect-behavior
define and edit MPS concept behavior
Jul 13ArchitectureEngineeringmps-aspect-constraints
define JetBrains MPS language constraints
Jul 23ArchitectureCode Analysismps-aspect-dataflow
define and debug MPS dataflow builders
Jul 13Data Analysismps-aspect-editor
define MPS editor layouts
Jul 23DesignUI Componentsmps-aspect-editor-menus-and-keymaps
author MPS editor menus and keymaps
Jul 23EngineeringUI Components
More from JetBrains
View publishermps-aspect-generation-plan
modify MPS generation plans
MPS
Jul 13ArchitectureEngineeringmps-aspect-generator
define JetBrains MPS generator rules
MPS
Jul 17ArchitectureCode AnalysisEngineeringmps-aspect-intentions
define and edit MPS intentions
MPS
Jul 23ArchitectureEngineeringmps-aspect-migrations
author and debug MPS migration scripts
MPS
Jul 13DebuggingMigrationmps-aspect-structure-concepts
define concepts in MPS structure aspect
MPS
Jul 23Data Modeling