MPS now uses IntelliJ Platform 2026.1, JDK 25, and Kotlin 2.3. Build Language gains transitive dependencies, migrations are more reproducible, and Java stubs have received a substantial quality update. The bundled Projectional Agent Toolkit plugin enables AI coding agents to read and write MPS models, thus opening up a number of cutting-edge development concepts for MPS developers and language authors.
Explore the full list of changes below.
MPS ships with the Projectional Agent Toolkit, a plugin that exposes the MPS projection, model, and language workbench to AI coding agents through the Model Context Protocol. Agents such as Claude Code, OpenAI Codex, JetBrains Junie, and any other MCP-compatible client can connect to a running MPS instance and operate on it the way a developer would – navigating modules and models, reading and editing nodes through the projectional editor, resolving references, inspecting concept hierarchies, generating code, and running configurations. They no longer have to treat .mps files as opaque XML.
The Projectional Agent Toolkit contributes a dozen toolsets covering the full surface of an MPS project:
To make sure agents become productive as quickly as possible, the toolkit also bundles a set of skills – focused, model-aware playbooks that ship with the tools. They teach the agent how MPS languages are organized, how to implement structure concepts, how to work with the editor, how to write BaseLanguage as a JSON AST, and how to record DSL-specific memories for future sessions. Skills are discoverable through the same MCP channel, so a freshly connected agent can ask MPS what it should know before it starts editing.
The experience of working with various AI assistants in IntelliJ-based IDEs now extends naturally to language and DSL development: An agent can implement a new concept, wire up its editor and constraints, add behavior methods, create DSL code, regenerate it, and test and run the result – all while staying inside the MPS semantic model. For language designers, this transforms AI assistance from a code-completion convenience into a collaborator that understands projection.
The Projectional Agent Toolkit is an experimental feature and may be subject to API changes in the future. It is bundled and enabled by default. Just start the embedded MCP server and point your MCP-capable agent at the MPS instance; the toolsets and skills appear automatically.
Read the Projectional Agent Toolkit documentation for full details.
MPS 2026.1 completes the jump to the current generation of the IntelliJ Platform. The runtime is JDK 25, and the embedded Kotlin version is 2.3.0. Additionally, MPS now builds and ships its own kotlinx-metadata-klib / kotlin-metadata-jvm artifacts from the Kotlin repository with the matching 2.3.0 tag, restoring the KLib-based Kotlin stubs support that the last public kotlinx-metadata-klib:0.0.6 could no longer provide.
ICheckedNamePolicy against specific natural languages
MPS now uses the IntelliJ Platform’s natural language support, provided by Grazie. This means you can check whether string values in instances of ICheckedNamePolicy, such as intentions, actions, or tools, have proper capitalization according to the rules of a specific natural language.
You can now install natural language support for your preferred languages into MPS, and the IDE will detect the language used in strings and verify that individual words are capitalized correctly. You can also bypass the language detection mechanism and specify your desired language explicitly.
In addition to the default Title-case capitalization rules, MPS offers three other options:
ICheckedNamePolicy
In the editor, you can now split long lines with binary operations. A dedicated intention action lets you toggle between the single-line and multi-line layouts for a given BinaryOperation.
read-only-inspector
The new read-only-inspector style applies the read-only property to all editor cells in the inspector. When this style is applied to a cell in the main editor, the inspector becomes read-only for the inspected node when the cell with this style is selected. The new style has the following properties:
read-only style.
read-only style set by this mechanism can be overridden in any cell farther down the inspector’s editor cell tree.
Build Language no longer requires every transitively reachable build script to be listed in dependencies. This means that a build script, BuildA, that depends on BuildB can now reach BuildC through BuildB (provided that BuildB depends on BuildC) without having to list BuildC explicitly. The generator emits ${artifacts.BuildC} Ant properties for such cases, and these properties can be supplied from the outer build tool (Gradle, Maven, etc.).
This lets you split large builds into smaller ones without forcing every user to update the dependency lists. For example, a single platform build script can wrap a growing set of external libraries used across sub-projects.
Migration code previously decided which migrations to apply based on the actual module dependencies and used languages collected at migration time, but it would read versions from the dependency snapshot recorded in the module descriptor. That mismatch could cause migrations to use a different view of the world than the one the module was last modified against.
In version 2026.1, the migration machinery consistently uses the dependencies and used languages recorded in the module descriptor at the moment of last modification, not the currently observable state. The migration checker was refactored accordingly. It now reuses information already collected for the migration process instead of recomputing it on demand.
A cluster of long-standing Java-stubs bugs has been fixed, visibly improving the accuracy of BaseLanguage stubs produced for imported .jar files and Java Sources model roots:
InnerClasses attributes are now correctly transformed to BaseLanguage stubs. The signature's inner-class information and parameterized owner types are preserved, so fields and methods of inner classes of generic outer classes now show the proper type instead of collapsing to the outer class.
java.lang.Object in place of the real type variable.
With MPSProject having moved from a legacy IntelliJ IDEA ProjectComponent to a project service, MPS-aware features need a reliable way to be notified about MPSProject becoming available and going away.
This version introduces a dedicated mechanism for managing MPSProject startup and shutdown activities, giving MPS control over the sequencing, grouping, ordering, and threading of those activities. This was something the platform's ProjectActivity and MPSProjectActivity could not offer.
How it works: Implementors register against the jetbrains.mps.project.lifecycleListener extension point (declared in MPSCore.xml) via a ProjectLifecycleListener.Bean with a listenerClass and an optional integer priority. The LifecycleEventDispatch.java inside MPSProject can fire:
projectReady (non-blocking)
projectDiscarded (blocking)
asyncProjectClosed (non-blocking)
MPS now offers Wayland as the default display protocol on supported Linux systems. When running in a Wayland-capable environment, MPS automatically switches to a native Wayland backend instead of relying on X11 compatibility layers, bringing it in line with modern Linux desktop standards.
This transition improves overall integration with the system, providing better stability across Wayland compositors, proper support for input methods and drag-and-drop, and more consistent rendering – especially on HiDPI and fractional scaling setups. While the user experience remains largely familiar, some differences (such as window positioning or decorations) may be noticeable due to Wayland’s architecture.
MPS 2026.1 includes a wide range of bug fixes. The complete list of resolved issues can be found here.
With JetBrains MPS 2026.1, we’ve continued to prioritize ultimate comfort and an ergonomic UI, ensuring your workspace is as accessible and customizable as your code.
The long-awaited ability to sync the IDE theme with the OS is now available to Linux users, bringing parity with macOS and Windows. Enable it in Settings | Appearance & Behavior | Appearance.
Windows users who rely on the keyboard can now bring the IDE’s main menu into focus by pressing the Alt key. This change improves accessibility for screen reader users.
We continue to make small but impactful improvements that reduce friction and support your everyday workflow.
You can now amend any recent commit directly from the Commit tool window – no more ceremonies involving interactive rebase. Simply select the target commit and the necessary changes, then confirm them – the IDE will take care of the rest.
In addition to Git worktrees, we’ve improved branch workflows by introducing the Checkout & Update action, which pulls all remote changes.
Furthermore, fetching changes can now be automated – no need for a separate plugin. Enable Fetch remote changes automatically in Settings | Git.
Stop memorizing commands. Start discovering them. In-terminal completion helps you instantly explore available subcommands and parameters as you type. Whether you're working with complex CLI tools like Git, Docker, or kubectl or using your own custom scripts, this feature intelligently suggests valid options in real time.
Previously introduced for Bash and Zsh shells, it is now also available in PowerShell.
For every major release, we prepare instructions on how to migrate from older MPS versions to ensure everything goes smoothly. Please review them carefully in the updated migration guide.