
Description
Create and execute IDE run configurations for MPS root nodes via MPS MCP — Java Application for `IMainClass` / `ClassConcept` with `main`, JUnit Tests for `ITestCase`. Use when launching DSL `main`-like roots, plain BaseLanguage `ClassConcept` mains, or MPS test cases from a node; reusing or replacing an existing run config; diagnosing `ClassNotFoundException`, `compileInMPS=false`, or "not runnable through this tool" failures.
SKILL.md
Running MPS Root Nodes
This skill covers the path from "an MPS root node exists in a model" to "a green IDE run / red stack trace in my hand," using only MCP tools. It targets user-level artifacts (DSL main-like roots, plain ClassConcept mains, test cases) — not launching MPS itself (the MPS / MPS (2nd inst.) configs are a different topic, see AGENTS.md or CLAUDE.md).
Critical Directives
execute_run_configurationandget_run_configurationsare provided both by MPS and IDEA. Use the ones provided by MPS for running MPS nodes/tests.mps_mcp_create_run_configurationaccepts root nodes only, and only three shapes: implementsIMainClass, implementsITestCase, or is aClassConceptwith a qualifying staticmain. Pointing it at a method body or other non-root yields the non-root rejection. Seereferences/runnable-shapes.mdfor the exact predicate and producer precedence.- MAKE the module, not just the model, before running. Model MAKE regenerates
source_genbut does not always compile intoclasses_gen; running launches bytecode, so a staleclasses_gensilently runs old code. Seereferences/compile-before-run.md. - Keep
configurationNamestable across iterations. The tool replaces the existing config of the same<type>.<name>rather than creating duplicates — idempotent setup is the goal. Use distinct names only when you actually want parallel configs. - Do not silently flip
compileInMPS=falseto true.Compile.Noneand JPS-compile settings are usually intentional (sandbox modules, externally-built modules, packaged libraries). Confirm with the user; otherwise take the IDEA MCP file-path fallback. - Prefer the source-root path over generated-Java entry points. Source-root configs survive regeneration; file-path configs against
source_genonly work whileclasses_genis fresh. - MPS MCP
execute_run_configuration/get_run_configurationsdo not surface run points undersource_gen. Use the IDEA MCP variants when you need afilePath+linelauncher for generated Java. - Reuse before you create. If the user already has a working run config, prefer
get_run_configurations()+execute_run_configurationby its existing name — duplicates are pointless.
Common Workflow
End-to-end pattern for "I changed a DSL root, run it":
mps_mcp_alter_nodes MAKEon the module of the DSL root,rebuild: true.mps_mcp_create_run_configurationon the DSL root with a stableconfigurationName(the generated class FQN is a good default for IMainClass; leave blank forClassConceptto match the IDE gutter'sClass <ClassName>default).execute_run_configuration(of MPS MCP, not IDEA's) by name withwaitForExit: trueand a generoustimeout.- On
Could not find or load main class, step 1 didn't reachclasses_gen— re-run it.
Keep the configuration name stable across iterations so step 2 idempotently overwrites itself rather than littering the IDE with duplicates.
Related Skills
mps-baselanguage— when the runnable root is a plainClassConceptyou authored or need to inspect (mainmethod shape, BaseLanguage editing).mps-aspect-generator— when stale or wrong generated Java is the root cause of an execution failure.mps-bugfix— when an execution failure points back at the generator or model rather than the launcher.
Reference Index
- Open
references/runnable-shapes.mdwhen you need to confirm whether a concept is launchable, look up the exactmainpredicate orcompileInMPSgate, or interpret a "not runnable through this tool" / "compileInMPS=false" refusal. - Open
references/create-and-execute.mdwhen you need the exactmps_mcp_create_run_configuration/execute_run_configuration/get_run_configurationscall shape, naming and replacement semantics, or the difference between MPS MCP and IDEA MCP variants. - Open
references/classconcept-and-fallbacks.mdwhen aClassConceptrun path doesn't fire —compileInMPS=false, missingmain, ambiguous duplicates — and you need the IDEA MCP file-path fallback or the persisted-XML structure of the node-aware Java Application config. - Open
references/compile-before-run.mdwhen the run fails withClassNotFoundException, you're deciding between module MAKE and model MAKE, or output disagrees with edited source. - Open
references/decision-matrix.mdfor the at-a-glance situation→approach table covering every supported launch path. - Open
references/common-failures.mdfor the symptom→cause→fix table covering every published error and its remediation.
More skills from the MPS repository
View all 31 skillsmps-aspect-accessories
configure JetBrains MPS module dependencies
Jul 17ArchitectureConfigurationEngineeringmps-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 17ArchitectureCode Analysismps-aspect-dataflow
define and debug MPS dataflow builders
Jul 13Data Analysismps-aspect-editor
define MPS editor layouts
Jul 13DesignUI Components
More from JetBrains
View publishermps-aspect-editor-menus-and-keymaps
author MPS editor menus and keymaps
MPS
Jul 13EngineeringUI Componentsmps-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 17ArchitectureEngineeringmps-aspect-migrations
author and debug MPS migration scripts
MPS
Jul 13DebuggingMigrationmps-aspect-structure-concepts
define concepts in MPS structure aspect
MPS
Jul 17Data Modeling