Running MPS Root Nodes
SkillDev toolsCreate 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Running MPS Root Nodes skill
What this skill tells your AI
The instructions your AI receives, as published by jetbrains/mps in .agents/skills/mps-run-configurations/SKILL.md and read by ahel’s review.
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.
Signals
- GitHub stars
- 2k
- Forks
- 309
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
mps-run-configurations- Source
- github.com/jetbrains/mps