MPS 2026.1의 새로운 기능

MPS는 이제 IntelliJ Platform 2026.1, JDK 25 및 Kotlin 2.3을 사용합니다. 빌드 언어는 이행적 종속성을 지원하게 되었으며, 마이그레이션의 재현성이 향상되었고, Java 스텁의 품질도 크게 개선되었습니다. 번들로 제공되는 Projectional Agent Toolkit 플러그인을 사용하면 AI 코딩 에이전트가 MPS 모델을 읽고 쓸 수 있으므로, MPS 개발자와 언어 작성자에게 다양한 첨단 개발 개념을 활용할 수 있는 길이 열립니다.

아래에서 전체 변경 목록을 확인하세요.

Projectional Agent Toolkit – AI 코딩 에이전트가 이제 MPS 모델을 직접 다룰 수 있습니다

MPS에는 Projectional Agent Toolkit이 함께 제공됩니다. 이 플러그인은 Model Context Protocol을 통해 AI 코딩 에이전트가 MPS의 프로젝션, 모델 및 언어 워크벤치에 접근할 수 있게 해줍니다. Claude Code, OpenAI Codex, JetBrains Junie를 비롯한 모든 MCP 호환 클라이언트는 실행 중인 MPS 인스턴스에 연결하여 개발자와 동일한 방식으로 작업할 수 있습니다. 즉, 모듈과 모델을 탐색하고, 프로젝션 에디터를 통해 노드를 읽고 편집하며, 참조를 확인하고, 개념의 계층 구조를 검사하고, 코드를 생성하며, 구성을 실행할 수 있습니다. 더 이상 .mps 파일을 내용을 알 수 없는 XML로 취급하는 일이 없어집니다.

Projectional Agent Toolkit은 MPS 프로젝트의 전체 영역을 포괄하는 다양한 툴셋을 제공합니다.

  • 프로젝트, 모듈 및 모델 – 에이전트가 솔루션, 언어 및 DevKit을 나열하고, 모델을 열고 생성하며, 종속성을 확인할 수 있게 해줍니다.
  • 언어 및 개념 – 에이전트가 개념 계층 구조, 프로퍼티, 하위 항목, 참조 및 상속 관계를 검사하고 JSON 블루프린트를 기반으로 구조 개념을 구현할 수 있도록 합니다.
  • 루트 노드 및 노드 – 에이전트가 텍스트 수준의 편집이 아닌, 개념의 제약 조건을 준수하는 노드 인식 작업을 통해 노드를 읽고, 생성하고, 수정하고, 이동하고, 삭제할 수 있게 해줍니다.
  • 참조 및 범위 – 에이전트가 참조 링크에 할당 가능한 타깃을 조회할 수 있도록 하여, 처음부터 유효한 참조 타깃을 선택할 수 있게 합니다.
  • 실행 구성 – 에이전트가 프로젝트의 실행 구성을 나열하고 실행하여 변경 사항을 처음부터 끝까지 검증할 수 있게 해줍니다.

에이전트가 최대한 빠르게 생산성을 발휘할 수 있도록, 이 툴킷에는 도구와 함께 제공되는 스킬도 포함되어 있습니다. 스킬은 모델을 인식하는 작업별 가이드입니다. 이러한 스킬은 에이전트에게 MPS 언어를 구성하는 방법, 구조 개념을 구현하는 방법, 에디터를 사용하는 방법, BaseLanguage를 JSON AST로 작성하는 방법, 그리고 향후 세션을 위해 DSL별 메모리를 기록하는 방법을 알려줍니다. 스킬은 동일한 MCP 채널을 통해 검색할 수 있으므로, 새로 연결된 에이전트는 편집을 시작하기 전에 알아두어야 할 사항을 MPS에 조회할 수 있습니다.

IntelliJ 기반 IDE에서 다양한 AI 어시스턴트와 함께 작업하는 경험이 이제 언어 및 DSL 개발에도 자연스럽게 확장됩니다. 에이전트는 새로운 개념을 구현하고, 해당 에디터와 제약 조건을 연결하고, 동작 메서드를 추가하고, DSL 코드를 생성하고, 이를 다시 생성한 후 결과를 테스트하고 실행하는 모든 작업을 MPS의 의미론적 모델 내에서 수행할 수 있습니다. 이에 따라 언어 설계자에게 AI 지원은 단순한 코드 완성 도구가 아닌 프로젝션을 이해하는 협업자가 됩니다.

Projectional Agent Toolkit은 실험적 기능이며, 향후 API가 변경될 수 있습니다. 이 툴킷은 번들로 포함되어 기본적으로 활성화됩니다. 내장된 MCP 서버를 시작한 후 MCP를 지원하는 에이전트를 MPS 인스턴스에 연결하기만 하면 툴셋과 스킬이 자동으로 나타납니다.

자세한 내용은 Projectional Agent Toolkit 문서를 참조하세요.

IntelliJ Platform 2026.1, JDK 25 및 Kotlin 2.3으로 마이그레이션

MPS 2026.1은 최신 세대의 IntelliJ Platform으로 완전히 전환했습니다. 런타임은 JDK 25이며, 내장된 Kotlin 버전은 2.3.0입니다. 또한 MPS는 이제 Kotlin 저장소의 해당 2.3.0 태그를 기반으로 자체 kotlinx-metadata-klibkotlin-metadata-jvm 아티팩트를 빌드 및 제공하며, 지난 공개 버전인 kotlinx-metadata-klib:0.0.6에서는 제공할 수 없었던 KLib 기반 Kotlin 스텁 지원을 복원합니다.

특정 자연어에 대해 ICheckedNamePolicy를 확인할 수 있는 기능

MPS는 이제 Grazie가 제공하는 IntelliJ Platform의 자연어 지원 기능을 사용합니다. 즉, 인텐션, 액션, 도구와 같이 ICheckedNamePolicy의 인스턴스에 포함된 문자열 값이 특정 자연어의 규칙에 따라 올바르게 대문자화되었는지 확인할 수 있습니다.

이제 선호하는 자연어에 대한 지원을 MPS에 설치할 수 있으며, IDE가 문자열에 사용된 언어를 감지하여 개별 단어의 대문자 표기가 올바른지 검증합니다. 언어 감지 메커니즘을 우회하고 원하는 언어를 명시적으로 지정할 수도 있습니다.

기본 Title-case 대문자 적용 규칙 외에도 MPS는 세 가지 옵션을 더 제공합니다.

  • Sentence-case: IntelliJ Platform의 규칙을 따릅니다
  • Inherited: 가장 가까운 상위 ICheckedNamePolicy의 대문자 적용 규칙을 사용합니다
  • No capitalization rules(대문자 적용 규칙 없음)

이항 연산을 여러 줄로 분할하는 기능

이제 에디터에서 긴 이항 연산식을 여러 줄로 나눌 수 있습니다. 전용 인텐션 액션을 사용하여 특정 BinaryOperation의 한 줄 레이아웃과 여러 줄 레이아웃 사이를 전환할 수 있습니다.

새로운 부울 에디터 스타일: read-only-inspector

새로운 read-only-inspector 스타일은 검사 도구의 모든 에디터 셀에 읽기 전용 프로퍼티를 적용합니다. 이 스타일이 메인 에디터의 셀에 적용되면, 해당 스타일이 적용된 셀이 선택된 상태에서 검사 도구는 검사 중인 노드에 대해 읽기 전용이 됩니다. 새로운 스타일에는 다음과 같은 특징이 있습니다.

  • 기본적으로 비활성화됩니다.
  • read-only 스타일과 마찬가지로 상속 및 재정의가 가능합니다.
  • 메인 에디터 셀에는 영향을 미치지 않습니다.
  • 이 메커니즘에 의해 설정된 read-only 스타일은 검사 도구의 에디터 셀 트리에서 더 하위에 있는 셀에서 재정의할 수 있습니다.

빌드 언어의 이행적 종속성

빌드 언어에서는 더 이상 이행적으로 참조 가능한 모든 빌드 스크립트를 dependencies에 나열할 필요가 없습니다. 즉, BuildB에 종속된 빌드 스크립트 BuildA는(BuildBBuildC에 종속된 경우) 이제 BuildC를 명시적으로 나열하지 않아도 BuildB를 통해 BuildC에 접근할 수 있습니다. 생성기는 이러한 경우를 위해 ${artifacts.BuildC} Ant 프로퍼티를 생성하며, 이러한 프로퍼티는 외부 빌드 도구(Gradle, Maven 등)에서 제공될 수 있습니다.

이에 따라 사용자는 종속성 목록을 업데이트해야 할 필요 없이 대규모 빌드를 더 작은 빌드로 분할할 수 있습니다. 예를 들어, 단일 platform 빌드 스크립트는 하위 프로젝트 전반에서 사용되는 외부 라이브러리 집합이 점점 늘어나더라도 이를 포함하도록 구성할 수 있습니다.

기록된 종속성을 통해 더 안정적으로 마이그레이션

이전에는 마이그레이션 코드가 마이그레이션 시점에 수집된 실제 모듈 종속성과 사용 언어를 기준으로 적용할 마이그레이션을 결정했지만, 버전 정보는 모듈 설명자에 기록된 종속성 스냅샷에서 읽어 왔습니다. 이러한 불일치로 인해 마이그레이션이 모듈이 마지막으로 수정되었을 당시의 상태와 다른 관점에서 수행될 수 있었습니다.

2026.1 버전에서는 마이그레이션 메커니즘이 현재 관찰 가능한 상태가 아니라, 마지막 수정 시점에 모듈 설명자에 기록된 종속성과 사용 언어를 일관되게 사용합니다. 이에 따라 마이그레이션 검사기도 리팩터링되었습니다. 이제는 필요할 때마다 정보를 다시 계산하는 대신, 마이그레이션 프로세스를 위해 이미 수집된 정보를 재사용합니다.

향상된 Java 스텁

오래된 여러 Java 스텁 관련 버그가 수정되어, 가져온 .jar 파일과 Java Sources 모델 루트에 대해 생성되는 BaseLanguage 스텁의 정확성이 눈에 띄게 향상되었습니다.

  • MPS-33174(2021년부터 미해결 상태였던 문제) – InnerClasses 속성이 있는 클래스가 이제 BaseLanguage 스텁으로 올바르게 변환됩니다. 시그니처의 내부 클래스 정보와 매개변수화된 소유자 타입이 유지되므로, 이제 제네릭 외부 클래스의 내부 클래스에 있는 필드와 메서드가 외부 클래스로 축약되지 않고 올바른 타입으로 표시됩니다.
  • MPS-39375 – 내부 클래스의 제네릭 메서드에 있는 타입 변수의 경우, 외부 클래스의 타입 변수를 참조하는 메서드가 더 이상 실제 타입 변수 대신 java.lang.Object를 표시하지 않습니다.
  • MPS-39007 – 더 이상 Java 소스 스텁 모델의 모든 루트에 잘못된 Java imports annotation is present 오류가 표시되지 않습니다.
  • MPS-39565 – 포함하는 모듈의 프로퍼티가 변경될 때 더 이상 Java 소스 스텁 루트가 사라지지 않으므로, 모듈 프로퍼티가 변경되더라도 프로젝트 코드에서 해당 루트로의 참조가 유지됩니다.

현대화된 프로젝트 수명 주기

MPSProject가 기존 IntelliJ IDEA의 ProjectComponent에서 프로젝트 서비스로 이전됨에 따라, MPS를 인식하는 기능에는 MPSProject의 생성 및 종료를 안정적으로 통지받을 수 있는 방법이 필요해졌습니다.

이번 버전에서는 MPSProject 시작 및 종료 작업을 관리하기 위한 전용 메커니즘을 도입하여, MPS가 이러한 작업의 실행 순서, 그룹화, 정렬 및 스레드 처리를 제어할 수 있도록 했습니다. 이는 플랫폼의 ProjectActivityMPSProjectActivity에서 제공하지 못하던 기능입니다.

작동 방식: 구현자는 listenerClass와 선택적인 정수형 priority를 포함하는 ProjectLifecycleListener.Bean을 통해 jetbrains.mps.project.lifecycleListener 확장 지점(MPSCore.xml에 선언됨)에 등록합니다. MPSProject 내부의 LifecycleEventDispatch.java는 다음 이벤트를 발생시킬 수 있습니다.

  • projectReady(비차단)
  • projectDiscarded(차단)
  • asyncProjectClosed(비차단)

기본값으로 설정된 Wayland

MPS는 이제 지원되는 Linux 시스템에서 Wayland를 기본 디스플레이 프로토콜로 사용합니다. Wayland를 지원하는 환경에서 실행될 때 MPS는 X11 호환성 레이어를 사용하지 않고 네이티브 Wayland 백엔드로 자동 전환되어 최신 Linux 데스크톱 표준에 부합하게 됩니다.

이 전환을 통해 시스템과의 전반적인 통합성이 향상되며, Wayland 컴포지터 전반에서 더 나은 안정성, 입력기 및 드래그 앤 드롭에 대한 적절한 지원, 그리고 더 일관된 렌더링을 제공합니다. 특히 HiDPI 및 소수 배율 설정 환경에서 이러한 개선 효과가 두드러집니다. 사용자 경험은 전반적으로 기존과 크게 다르지 않지만, Wayland의 아키텍처 특성으로 인해 창 위치 지정이나 장식과 같은 일부 차이점이 눈에 띌 수 있습니다.

다양한 버그 수정

MPS 2026.1에 버그 수정이 폭넓게 포함되어 있습니다. 해결된 문제의 전체 목록은여기에서 확인할 수 있습니다.

플랫폼 업데이트

UI 업데이트

JetBrains MPS 2026.1에서는 최고의 사용 편의성과 인체공학적인 UI를 제공하는 데 지속적으로 중점을 두어, 작업 공간을 코드만큼이나 접근하기 쉽고 맞춤화하기 편리하게 만들었습니다.

오랫동안 기다려 온 IDE 테마를 OS와 동기화하는 기능을 이제 Linux에서도 사용할 수 있게 되어, macOS 및 Windows와의 기능 차이가 해소되었습니다. Settings(설정) | Appearance & Behavior(모양 및 동작) | Appearance(모양)에서 활성화할 수 있습니다.

키보드를 주로 사용하는 Windows 사용자는 이제 Alt 키를 눌러 IDE의 기본 메뉴에 포커스를 이동할 수 있습니다. 이 변경으로 스크린 리더 사용자의 접근성이 향상됩니다.

버전 관리 업데이트

일상적인 워크플로를 더 원활하게 지원하고 작업 과정의 불편을 줄이기 위해, 작지만 의미 있는 개선을 지속적으로 적용하고 있습니다.

이제 최근 커밋을 수정하는 기능Commit(커밋) 도구 창에서 바로 사용할 수 있으며, 더 이상 대화형 리베이스를 거칠 필요가 없습니다. 대상 커밋과 필요한 변경 사항을 선택한 다음 확인만 하면 됩니다. 나머지 작업은 IDE가 알아서 처리합니다.

Git 워크트리 지원에 더해, 모든 원격 변경 사항을 가져오는 Checkout & Update(체크아웃 및 업데이트) 액션을 도입하여 브랜치 워크플로도 개선했습니다.

또한, 이제 변경 사항 가져오기를 자동화할 수 있어, 별도의 플러그인이 필요하지 않습니다. Settings(설정) | Git에서 Fetch remote changes automatically(원격 변경 사항 자동 가져오기)를 활성화하면 됩니다.

터미널 업데이트

  • 더 이상 명령어를 외우지 말고 찾으세요. 터미널 내 자동 완성 기능을 사용하면 입력하는 동안 하위 명령어와 매개변수를 즉시 확인할 수 있습니다. Git, Docker 또는 kubectl과 같은 복잡한 CLI 도구를 사용하거나 자체 사용자 지정 스크립트를 사용하는 모든 경우에 이 기능은 실시간으로 유효한 옵션을 지능적으로 제안합니다.

    이전에 Bash 및 Zsh 셸에 도입되었던 이 기능은 이제 PowerShell에서도 지원됩니다.

  • Esc 키 동작을 수정했습니다. 이제 포커스를 에디터로 전환하는 대신 셸에서 처리하므로, AI 에이전트 워크플로가 중단되지 않습니다. 또한 이제 Shift+Enter로 새 줄을 삽입할 수 있어, 여러 줄의 프롬프트와 명령을 더 쉽게 직접 작성할 수 있습니다. 이 동작은 Settings(설정) | Advanced Settings(고급 설정) | Terminal(터미널)에서 비활성화할 수 있습니다.

마이그레이션 가이드

주요 릴리스가 나올 때마다 JetBrains는 이전 버전의 MPS에서 마이그레이션하기 위한 지침을 준비하여 모든 부분이 원활하게 작동하도록 합니다. 자세한 내용은 업데이트된 마이그레이션 가이드에서 확인해 보세요.