Official agent skill

Mps Aspect Structure Concepts

by JetBrains in JetBrains/MPS

Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's structure aspect.

OfficialApache-2.0Auto-check passed

Install Mps Aspect Structure Concepts

skills CLI
$ npx skills add JetBrains/MPS --skill mps-aspect-structure-concepts -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JetBrains/MPS mps-aspect-structure-concepts --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/mps-aspect-structure-concepts .claude/skills/mps-aspect-structure-concepts && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mps-aspect-structure-concepts
GitHub stars
1.7k
Token cost
~2.8k tokens
SKILL.md length
1,161 words
Files
15 (incl. references)
Skills in repo
41
Repo updated
First seen
Licence
Apache-2.0

At a glance

Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's structure aspect.

  • Works in 11 steps: Locate language: use… → Module creation: if needed, create the… → Define elements → …
  • Modifying a languages structure model
  • SKILL.md covers Loading companion skills, Critical Directives, Section index — one row, one… and Prerequisites, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Mps Aspect Structure Concepts is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's structure aspect. Covers smart-reference detection, alias rules, cardinality, INamedConcept usage, bulk creation, and the full mpsmcpalterstructure / mpsmcpquerystructure reference. Use when authoring or modifying a language's structure model.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including reference files (for example `references/attributes-and-annotations.md`, `references/structure-operation-api.md` and `references/structure-operation-api/concept-hierarchy-queries.md`).

It works with Model Context Protocol and JetBrains IDEs. The repository describes itself as: JetBrains Meta programming System. The licence is Apache-2.0.

When your agent uses it

  • Modifying a languages structure model

Example prompts

  • “/mps-aspect-structure-concepts”

Workflow steps

11 steps, taken from the first numbered list in SKILL.md.

  1. Locate language: use mps_mcp_get_project_structure to find the language and its structure model.
  2. Module creation: if needed, create the module via mps_mcp_create_module using an absolute path.
  3. Define elements
  4. Inheritance & interfaces
  5. Smart reference assessment: see directives above.
  6. Set alias on concepts that can be root: helps the user instantiate the concept through a menu.
  7. Leave alias empty on smart references and transparent collections: e.g. StatementList.
  8. Property definition
  9. Proper cardinality: make sure intended child collections have the cardinality of 0..n or 1..n.
  10. Bulk operations: use mps_mcp_alter_structure for creating multiple concepts or enums efficiently.
  11. Reload runtime: always rebuild the language (via mps_mcp_alter_nodes with MAKE and rebuild="true") after structural changes to make…

What it can do on your machine

Read from SKILL.md and the folder at commit 3e9cfcd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mps Aspect Structure Concepts loads about 2.8k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 96 tokens; SKILL.md has 1,161 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~96
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from JetBrains/MPS at commit 3e9cfcd, republished under its Apache-2.0 licence (© JetBrains). 1,161 words, ~2,810 tokens.

Download SKILL.mdSave it as .claude/skills/mps-aspect-structure-concepts/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.
name
mps-aspect-structure-concepts
description
Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's `structure` aspect. Covers smart-reference detection, alias rules, cardinality, INamedConcept usage, bulk creation, and the full `mps_mcp_alter_structure` / `mps_mcp_query_structure` reference. Use when authoring or modifying a language's structure model.
type
reference

MPS Structure Aspect — Concepts

Loading companion skills

Companion names in this skill are lazy dependencies: load only those relevant to the current task. If this skill came from an MCP server, use the host's skill loader to resolve the companion's unique discovered entry URI on the same host-assigned originating server. If the host has no server-backed skill loader, stop and report that limitation; do not silently fall back to a filesystem copy. If this skill came from a filesystem catalog, load the named sibling from that same catalog at <skills-root>/<skill-name>/SKILL.md, even if remote skill loaders are also available. Do not invent a tool name or server endpoint.

Concepts (ConceptDeclaration), interface concepts (InterfaceConceptDeclaration), enumerations (EnumerationDeclaration), and constrained data types (ConstrainedDataTypeDeclaration) are root nodes in a language's structure model. They use the language jetbrains.mps.lang.structure.

Critical Directives

  • Implement INamedConcept instead of declaring name directly. A name property declared directly on a concept is an antipattern in MPS — implement jetbrains.mps.lang.core.structure.INamedConcept instead.
  • Smart reference check (CRITICAL): before setting a conceptAlias, determine whether the concept is an "Implicit Smart Reference". If it has exactly one mandatory reference and no properties or children of its own, do NOT set a conceptAlias — the concept should be transparent in the editor and completion menu so the user types the target's name directly. Examples: variable references, method calls, routine calls.
  • Leave alias empty on transparent collections too (e.g. StatementList).
  • Set alias on concepts that can be root — that's how the user reaches them through the new-root menu.
  • Always rebuild the language with mps_mcp_alter_nodes MAKE and rebuild="true" after structural changes, so the new concepts are discoverable by runtime tools.

Section index — one row, one read

Each row names the file(s) for one operation. Read them — two files in one parallel batch — and nothing else in references/.

JobRead
parameter wire shape, rejected keys, booleans, …Ref/…Reference suffixes, nullsreferences/structure-operation-api/tool-conventions.md
create concepts (greenfield)references/structure-operation-api/create-concepts.md — on the first CREATE_CONCEPTS call also references/structure-operation-api/tool-conventions.md
create an enumerationreferences/structure-operation-api/create-enum.md
add/change/delete a propertyreferences/structure-operation-api/update-concept-property.md
add/change/delete a childreferences/structure-operation-api/update-concept-child.md
add/change/delete a referencereferences/structure-operation-api/update-concept-reference.md
rename a property / child / referencereferences/structure-operation-api/rename-concept-feature.md
enum literalsreferences/structure-operation-api/get-enumeration-literals.md
is-subconcept / subconcepts / assignable concepts / superconceptsreferences/structure-operation-api/concept-hierarchy-queries.md
completion/scope candidates for a referencereferences/structure-operation-api/get-assignable-references.md
find aspect roots for a conceptreferences/structure-operation-api/list-concept-aspects.md
smart-reference checkreferences/structure-operation-api/is-smart-reference.md

Prerequisites

  • Requires the target language and its structure model.
  • Uses the jetbrains.mps.lang.structure language.
  • Concepts, interface concepts, and enums are root nodes in the structure model.

Workflow

  1. Locate language: use mps_mcp_get_project_structure to find the language and its structure model.
  2. Module creation: if needed, create the module via mps_mcp_create_module using an absolute path.
  3. Define elements:
    • ConceptDeclaration: core entities.
    • InterfaceConceptDeclaration: orthogonal functionality.
    • EnumerationDeclaration: fixed values.
    • ConstrainedDataTypeDeclaration: regex-restricted properties.
    • Attributes (annotations): concepts extending NodeAttribute / PropertyAttribute / ChildAttribute / LinkAttribute that graft extra children/data onto other concepts without editing them — see Attributes section below.
  4. Inheritance & interfaces:
    • Use inheritance and abstract concepts for shared logic.
    • Implement jetbrains.mps.lang.core.structure.INamedConcept if the concept needs a name property.
  5. Smart reference assessment: see directives above.
  6. Set alias on concepts that can be root: helps the user instantiate the concept through a menu.
  7. Leave alias empty on smart references and transparent collections: e.g. StatementList.
  8. Property definition:
    • For enum properties: create the EnumerationDeclaration first, then set the property dataType to reference it.
  9. Proper cardinality: make sure intended child collections have the cardinality of 0..n or 1..n.
    • Reference links are always single-valued — 0..1 or 1. There is no 0..n reference in MPS, and no multiple parameter for references. Model a [0..n] reference as a 0..n child role holding smart-reference wrapper concepts; see "Multi-valued references" below.
  10. Bulk operations: use mps_mcp_alter_structure for creating multiple concepts or enums efficiently.
    • Local references within the same JSON blueprint can use names for resolution.
  11. Reload runtime: always rebuild the language (via mps_mcp_alter_nodes with MAKE and rebuild="true") after structural changes to make concepts discoverable.
Show full SKILL.md (534 more words)Show less

Multi-valued references ([0..n])

An MPS reference link is always single-valued: 0..1 (optional) or 1 (mandatory). Cardinality on references does not exist, so multiple: true is rejected on both write paths — UPDATE_CONCEPT_REFERENCE and a references entry of a CREATE_CONCEPTS blueprint. Only a children entry takes multiple.

Model a [0..n] reference as a thin smart-reference wrapper concept held in a 0..n child role on the owner. The wrapper is a non-rootable BaseConcept subconcept with exactly one mandatory reference, no alias, and no own properties or children — so the editor shows it transparently and the user just types the target's name. This is what MPS itself does: ConceptDeclaration.implements is a 0..n child list of InterfaceConceptReference, each holding one intfc reference.

json
[
  {
    "name": "CourseRef",
    "shortDescription": "Reference to a Course",
    "references": [
      { "role": "course", "target": "Course", "optional": false }
    ]
  },
  {
    "name": "Curriculum",
    "rootable": true,
    "conceptAlias": "curriculum",
    "implements": ["jetbrains.mps.lang.core.structure.INamedConcept"],
    "children": [
      { "role": "courses", "target": "CourseRef", "multiple": true, "optional": true }
    ]
  }
]

Keep the wrapper bare: give it an own property, an own containment link, or a plain conceptAlias and it stops qualifying implicitly, so the user has to instantiate it explicitly instead of typing the target's name. Two things do still make a non-bare concept smart, but neither is worth the trouble here: an explicit SmartReferenceAttribute, which short-circuits every structural check, and a smart alias of the form pre<{role}>post, which MPS's editor honours (though IS_SMART_REFERENCE reports it as not smart). Confirm with mps_mcp_query_structure IS_SMART_REFERENCE on the wrapper: expect isSmartReference: true and characteristicReferenceName naming its single reference role.

Attributes (Annotations)

Attributes let one language attach extra children, references, or property data to nodes of a concept it does not own — without editing or subclassing that concept. The host carries a universal smodelAttribute child slot (0..n, every BaseConcept has it); the attribute's own declaration says where it may attach. Used heavily for cross-cutting concerns: generator macros (NodeMacro/PropertyMacro/ReferenceMacro), documentation/description comments, requirement traces, error suppression.

  • Declare an attribute = a ConceptDeclaration that extends one of NodeAttribute (whole node), PropertyAttribute (one property), ChildAttribute (one child link), or LinkAttribute (one reference link), plus an AttributeInfo (alias @attribute info) in its smodelAttribute role specifying the extension point: role (the attach key), attributed (which concept(s) may receive it — BaseConcept = any), and multiple (one vs. many per node).
  • CREATE_CONCEPTS cannot express the AttributeInfo — create the concept extending the base attribute, then add the AttributeInfo with mps_mcp_update_node. Full walkthrough, concept reference, and the canonical RequirementTrace blueprint live in references/attributes-and-annotations.md.
  • mps-aspect-editor-menus-and-keymaps — once concepts exist, define their editors (often the next step).
  • mps-aspect-constraints — property validators, scopes, and canBe* rules layered on top of structure.
  • mps-aspect-behavior — virtual methods per concept.
  • mps-aspect-actions — node factories for newly created concepts.
  • mps-language-inheritance — for extendedLanguages and concept super/interface relationships.

Reference Index

Start here — most common case: creating or changing concepts, enumerations, or data types → read the file(s) in the matching Section index row above. Attributes/annotations → only references/attributes-and-annotations.md.

  • Open the Section index row (files under references/structure-operation-api/, listed in the index at references/structure-operation-api.md) for the exact mps_mcp_alter_structure or mps_mcp_query_structure operation you are about to call — JSON parameter formats, structure blueprint schemas, make flag handling, and makeStatus semantics.
  • Open references/attributes-and-annotations.md for attributes/annotations: the four attribute kinds (NodeAttribute / PropertyAttribute / ChildAttribute / LinkAttribute), how to choose between them (feature-pinned kinds need a visible feature cell — whole-role markers should be a NodeAttribute + LinkDeclaration reference, converted at runtime via MetaAdapterByDeclaration), the AttributeInfo extension-point spec (role, attributed, multiple), the two-step MCP creation flow, the smodelAttribute slot, and worked examples (RequirementTrace, generator macros, doc/comment annotations).

© JetBrains, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 14 other files (references) in .agents/skills/mps-aspect-structure-concepts of JetBrains/MPS.

  • SKILL.md
  • references/attributes-and-annotations.md
  • references/structure-operation-api.md
  • references/structure-operation-api/concept-hierarchy-queries.md
  • references/structure-operation-api/create-concepts.md
  • references/structure-operation-api/create-enum.md
  • references/structure-operation-api/get-assignable-references.md
  • references/structure-operation-api/get-enumeration-literals.md
  • references/structure-operation-api/is-smart-reference.md
  • references/structure-operation-api/list-concept-aspects.md
  • references/structure-operation-api/rename-concept-feature.md
  • references/structure-operation-api/tool-conventions.md
  • references/structure-operation-api/update-concept-child.md
  • references/structure-operation-api/update-concept-property.md
  • references/structure-operation-api/update-concept-reference.md

Open the folder on GitHubat commit 3e9cfcd

Compare with similar skills

Mps Aspect Structure Concepts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mps Aspect Structure Concepts compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mps Aspect Structure Concepts this skillJetBrains/MPS1.7k—~2.8kAutomated safety check: PassApache-2.0
Claude Docs Consultantcentminmod/my-claude-code-setup2.7k—~959Automated safety check: PassMIT
Spock AdbWahdanZ/SpockAdb116—~3.3kAutomated safety check: PassApache-2.0
Amplicode InstallAmplicode/spring-skills126—~2.6kAutomated safety check: PassNone
Idea MCPdtprj/dongting208—~698Automated safety check: PassApache-2.0
Spring Data JpaAmplicode/spring-skills126—~838Automated safety check: PassNone

Similar skills

  • Claude Docs Consultant

    centminmod/my-claude-code-setup

    Consult official Claude Code documentation from code.claude.com using selective fetching.

    2.7k GitHub stars~959 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Spock Adb

    WahdanZ/SpockAdb

    Debug Android apps on a connected device or emulator through the Spock ADB MCP server (tools named android).

    116 GitHub stars~3.3k tokensUpdated 4 days ago
    MobileAuto-check passed
  • Amplicode Install

    Amplicode/spring-skills

    Installs the Amplicode IntelliJ plugin into IntelliJ IDEA (Ultimate/Community) and GigaIDE on the user's machine.

    126 GitHub stars~2.6k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Idea MCP

    dtprj/dongting

    IntelliJ IDEA MCP for Java code analysis, testing, refactoring, and project navigation.

    208 GitHub stars~698 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Spring Data Jpa

    Amplicode/spring-skills

    Rules and guidelines for working with Spring Data JPA in the project.

    126 GitHub stars~838 tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Spring Explore

    Amplicode/spring-skills

    Explores a Spring Boot application and builds primary context: tech stack, module structure, domain entities, REST endpoints.

    126 GitHub stars~4.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed

More from JetBrains/MPS

All 41 skills in this repo
  • Official

    Analyze an MPS language by name — discover concepts, properties, references, children, aspects (editor/constraints/behavior), metadata, and answer type questions (is A a subtype of B, common…

    1.7k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Mps Node Editing

    JetBrains/MPS

    Official

    Add, update, or delete MPS nodes using JSON blueprints — covers the unified blueprint format, staged construction for large subtrees, validation, and reference repair.

    1.7k GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Official

    Open an MPS project in a running or freshly started MPS instance when MCP tools fail because no project is open (welcome screen), close an open project with mpsmcpcloseproject, or create a new empty…

    1.7k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Mps MCP Workflow

    JetBrains/MPS

    Official

    Complete JetBrains MPS workflow guide for DSL projects — models, languages, generators, node JSON blueprints, type queries, validation, MPS MCP tool usage, and the index of companion skills.

    1.7k GitHub stars~6.6k tokensUpdated today
    Auto-check passed
  • Bugfix Workflow

    JetBrains/MPS

    Official

    Structured MPS bugfix workflow driven by a YouTrack issue ID — preflight tool checks, version/branch derivation, parallel-agent problem analysis, solution design, branch creation, implementation…

    1.7k GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses when bundling a new plain Java/Kotlin plugin into MPS distribution archives, debugging packaging/layout issues in build/mps.xml, tracing where per-plugin artefacts end up, or…

    1.7k GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Questions about Mps Aspect Structure Concepts

What does Mps Aspect Structure Concepts do?

Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's structure aspect. Mps Aspect Structure Concepts is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's structure aspect.

When should I use Mps Aspect Structure Concepts?

Mps Aspect Structure Concepts fits situations like: modifying a languages structure model.

How do I install Mps Aspect Structure Concepts in Claude Code?

Run `npx skills add JetBrains/MPS --skill mps-aspect-structure-concepts -a claude-code`. Or copy the skill folder (.agents/skills/mps-aspect-structure-concepts in JetBrains/MPS) into .claude/skills/mps-aspect-structure-concepts in your project. Claude Code loads it when a task matches its description.

How do I install Mps Aspect Structure Concepts in Codex?

Run `npx skills add JetBrains/MPS --skill mps-aspect-structure-concepts -a codex`. Or copy the skill folder (.agents/skills/mps-aspect-structure-concepts in JetBrains/MPS) into .agents/skills/mps-aspect-structure-concepts in your project. Codex loads it when a task matches its description.

Can I use Mps Aspect Structure Concepts in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/MPS --skill mps-aspect-structure-concepts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mps-aspect-structure-concepts, .gemini/skills/mps-aspect-structure-concepts, .github/skills/mps-aspect-structure-concepts and .opencode/skills/mps-aspect-structure-concepts in your project.

What does Mps Aspect Structure Concepts need to run?

SKILL.md names no scripts, command-line tools or credentials: Mps Aspect Structure Concepts is instructions for the agent only.

Does Mps Aspect Structure Concepts access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Mps Aspect Structure Concepts safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Mps Aspect Structure Concepts use?

Mps Aspect Structure Concepts is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mps Aspect Structure Concepts use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.9k tokens, read only when the agent opens those files.

What are the alternatives to Mps Aspect Structure Concepts?

Skills that share tags, products or a category with Mps Aspect Structure Concepts: Claude Docs Consultant (centminmod/my-claude-code-setup, 2.7k stars), Spock Adb (WahdanZ/SpockAdb, 116 stars), Amplicode Install (Amplicode/spring-skills, 126 stars) and Idea MCP (dtprj/dongting, 208 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mps Aspect Structure Concepts?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/MPS, which has 1,661 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 8, 2026.

Source: JetBrains/MPS on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.