Official agent skill

Mps Node Editing

by JetBrains in JetBrains/MPS

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

OfficialApache-2.0Auto-check passed

Install Mps Node Editing

skills CLI
$ npx skills add JetBrains/MPS --skill mps-node-editing -a claude-code

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

GitHub CLI
$ gh skill install JetBrains/MPS mps-node-editing --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-node-editing .claude/skills/mps-node-editing && 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-node-editing
GitHub stars
1.7k
Token cost
~4.7k tokens
SKILL.md length
2,380 words
Files
7 (incl. scripts, references)
Skills in repo
40
Repo updated
First seen
Licence
Apache-2.0

At a glance

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

  • Works in 6 steps: Identify the target node (existing) or… → Choose the right tool:… → Author the JSON following the unified… → …
  • Restructuring nodes in any MPS model (structure
  • SKILL.md covers Loading companion skills, Critical Directives, mps_mcp_update_node — Unified… and Prerequisites, plus 6 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Mps Node Editing is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Add, update, or delete MPS nodes using JSON blueprints — covers the unified blueprint format, staged construction for large subtrees, validation, and reference repair. Use whenever creating, editing, or restructuring nodes in any MPS model (structure, editor, behavior, generator, application code, etc.).

Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `references/json-format.md`, `references/staged-construction.md` and `references/troubleshooting.md`).

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

When your agent uses it

  • Restructuring nodes in any MPS model (structure
  • Application code

Example prompts

  • “/mps-node-editing”

Requirements

  • Python 3

Workflow steps

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

  1. Identify the target node (existing) or parent model (new root).
  2. Choose the right tool: mps_mcp_create_root_node / mps_mcp_insert_root_node_from_json for new roots; mps_mcp_update_node (ADD/SET ×…
  3. Author the JSON following the unified blueprint format.
  4. Insert. A dryRun: true call checks concepts, roles, properties and assignability, but it never looks up a reference target given by name…
  5. Validate with mps_mcp_check_root_node_problems. Reported problems may carry a quickFixes array; apply one with mps_mcp_apply_intention, or…
  6. Repair broken refs with mps_mcp_alter_nodes FIX_REFERENCES if validation surfaces resolvable-but-unresolved targets.

What it can do on your machine

Read from SKILL.md and the folder at commit a92f944. 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

    Ships 3 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    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 Node Editing loads about 4.7k tokens when it runs, and up to ~7.6k if it reads all its reference files. Until then it costs about 81 tokens; SKILL.md has 2,380 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from JetBrains/MPS at commit a92f944, republished under its Apache-2.0 licence (© JetBrains). 2,380 words, ~4,675 tokens.

Download SKILL.mdSave it as .claude/skills/mps-node-editing/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
mps-node-editing
description
Add, update, or delete MPS nodes using JSON blueprints — covers the unified blueprint format, staged construction for large subtrees, validation, and reference repair. Use whenever creating, editing, or restructuring nodes in any MPS model (structure, editor, behavior, generator, application code, etc.).
type
reference

MPS Node Editing

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.

The core workflow for mutating MPS nodes through MCP tools. JSON blueprints describe the node hierarchy you want; the tools resolve concepts, references, and used languages on insert.

Critical Directives

  • Always use the fully qualified concept name in the concept field — it is unambiguous and does not require a conceptReference.
  • Resolve before editing — call mps_mcp_get_current_editor_root_node (for the user's focus) or mps_mcp_search_root_node_by_name (by name) to lock onto the target. Don't guess refs.
  • Prefer surgical edits — mps_mcp_update_node (ADD/CHILD or SET/CHILD) preserves persistent IDs. mps_mcp_update_root_node_from_json rewrites the entire root and is wasteful when only one subtree changed.
  • Don't delete-and-reinsert to make a small change — deletion destroys persistent IDs and breaks incoming references.
  • Cloning an existing node? Use mps_mcp_alter_nodes COPY_NODE, not a JSON blueprint. It clones the subtree natively — correct concept, properties, refs, nested structure — as the next sibling (multi-child role) or new root, then tweak with mps_mcp_update_node. Reserve JSON blueprints for nodes with no close match to copy from.
  • Validate frequently — call mps_mcp_check_root_node_problems immediately after inserting or modifying a complex node. "ok": true from insert does not mean the AST is semantically valid.
  • A blueprint is not the whole node — the concept's node factory runs first and may add properties, children, and references your JSON never mentions. Do not re-do its work by hand, and do not assume an inserted node contains exactly what you wrote. See "Node factories" below.

mps_mcp_update_node — Unified Node-Mutation Tool

All child, property, and reference operations on existing nodes go through mps_mcp_update_node. The operation is selected via operation (ADD/SET) × kind (CHILD/PROPERTY/REFERENCE). There is no DELETE operation — deletion is a SET: omit childJson to delete a child, or pass an explicit null as a triplet's value to clear a property or reference. A shortened triplet is rejected (Invalid property triplet: expected at least 3 elements, and the reference equivalent), so the null has to be written out.

operation × kindRequired parametersNotes
ADD × CHILDnodeReference (parent), childRole, childJsonOptional position (0-based; null/-1 = append) and dryRun. A position ≥ the current child count clamps to an append; a negative value other than -1 is rejected. The response's data.index reports the actual landing index.
SET × CHILDchildNodeRef (+ childJson to replace)Replaces an existing child; preserves its position in the role. Optional dryRun. The success envelope is the parent's (data.reference), not the new child's, for both a replacement and a deletion; the replaced child's reference is stale. Omit childJson to delete the child — mps_mcp_update_node offers no other way to delete one (a whole-root rewrite via mps_mcp_update_root_node_from_json can also drop children).
SET × PROPERTYproperties = [[nodeRef, propertyName, value], …]Batch operation; returns per-row results. A row whose value is an explicit null deletes that property; a two-element row is rejected, not treated as a delete.
SET × REFERENCEreferences = [[nodeRef, role, targetRefOrName], …]Batch operation; targetRefOrName accepts an r:... ref or a plain name. A plain name is resolved within the reference role's search scope; if it cannot be resolved the call fails (NOT_FOUND), preserves the previous reference value, and stores no dangling reference. A row whose targetRefOrName is an explicit null deletes that reference; a two-element row is rejected, not treated as a delete.

ADD × PROPERTY and ADD × REFERENCE are not valid combinations and return an error envelope. So does any other operation value, DELETE included.

mps_mcp_update_node (PROPERTY / REFERENCE / CHILD) and mps_mcp_alter_nodes MOVE_CHILD / MOVE_NODE_TO_PARENT / COPY_NODE also work on nodes inside the current MPS Console input command — pass the node's normal persistent reference; no extra parameter is needed. The node must be inside the current unexecuted console input (not history/stale). MOVE_NODE_TO_PARENT only relocates a node within the current console command — moving a node between the console and a project model, or making a console node a root, is refused. Edits to console nodes skip disk-persistence and refresh the console's imports instead. Nodes outside the selected project are rejected as before.

For project models, MOVE_NODE_TO_PARENT has two intentional forms. Supply a non-null newParentRef and role to reparent the node. To promote it to a root, omit newParentRef and supply modelReference. Do not send "newParentRef": null: explicit null is rejected so it cannot accidentally select the promotion form.

childJson accepts the blueprint as real JSON, as that JSON written as a string (max 4 KB), or as an absolute path to a TEMPORARY file (inside the system temp directory) containing it. Over 4 KB, use the file form to avoid MCP-transport truncation.

Where a documented null means something, how you express it depends on where it sits. For SET × CHILD, the null is the childJson parameter: express it by omitting the parameter or sending an unquoted JSON null. For SET × PROPERTY/REFERENCE the null is the third element of a triplet, so it must be written out as an unquoted JSON null — omitting the properties/references parameter is rejected as missing, and a two-element row is rejected as a malformed triplet, not read as a delete. In neither case is the 4-character string "null" the null form — for childJson it is rejected as Input is the string 'null', not a JSON object/array or a file path.

Prerequisites

  • Load the mps-language-analysis skill if you do not yet know what concepts the model uses.
  • Resolve the target node (unless creating a brand-new root):
    • mps_mcp_get_current_editor_root_node for the user's focus.
    • mps_mcp_search_root_node_by_name for a known name.
  • Resolve required languages and concepts:
    • Check used languages of the current model via mps_mcp_get_project_structure.
    • Get concept details using mps_mcp_get_concept_details for specific languages.
    • Use mps_mcp_search_concepts for discovery.

Common Workflow

  1. Identify the target node (existing) or parent model (new root).
  2. Choose the right tool: mps_mcp_create_root_node / mps_mcp_insert_root_node_from_json for new roots; mps_mcp_update_node (ADD/SET × CHILD/PROPERTY/REFERENCE) for surgical edits; mps_mcp_update_root_node_from_json only for full-root rewrites.
  3. Author the JSON following the unified blueprint format.
  4. Insert. A dryRun: true call checks concepts, roles, properties and assignability, but it never looks up a reference target given by name: it warns "is a name, not looked up" for every one, including names that exist. Do not rewrite names or dry-run again because of those warnings. Fix only the "names no node" and "matches no Model.Root" warnings, and after the real write check fixReferences.stillBroken. The full rule is under "Dry-run response" in references/reference-formats/response-envelope.md in the mps-mcp-workflow skill root after loading that companion skill from the same origin.
  5. Validate with mps_mcp_check_root_node_problems. Reported problems may carry a quickFixes array; apply one with mps_mcp_apply_intention, or pass autoApplyQuickFixes=true for one-shot repair of the auto-applicable ones.
  6. Repair broken refs with mps_mcp_alter_nodes FIX_REFERENCES if validation surfaces resolvable-but-unresolved targets.
  • mps-aspect-structure-concepts — defines what concepts exist and what roles they expose.
  • mps-aspect-actions — node factories: what a concept initializes on creation, before your blueprint is applied.
  • mps-baselanguage — when the nodes you edit are BaseLanguage / Java.
  • mps-quotations — embedding inline node literals inside model code.
  • mps-language-analysis — exploring an unfamiliar language before editing.
  • mps-model-manipulation — when the edit also requires navigating the tree from model code (.ancestor<C>, .descendants<C>, siblings, containingRoot); open only references/dot-expression-basics.md in the mps-model-manipulation skill root after loading that companion skill from the same origin.

JSON Input — File-Path Semantics

The tools that accept a node JSON blueprint (mps_mcp_update_node for ADD/SET × CHILD, mps_mcp_insert_root_node_from_json, mps_mcp_update_root_node_from_json) all use the same childJson / json parameter convention:

  • The parameter can be either the JSON itself (max 4 KB) — sent as real JSON or as that JSON written as a string, both equivalent — or an absolute path to a TEMPORARY file (inside the system temp directory) containing it; see references/json-format.md for the accepted directories.
  • mps_mcp_insert_root_node_from_json and mps_mcp_update_root_node_from_json additionally accept a top-level array for a bulk insert, which mps_mcp_update_node's childJson does not — it takes a single object (or a file path).
  • Files may contain either a raw node blueprint or the full MCP response envelope produced by mps_mcp_print_node; in the latter case the data field is used.
  • Ordinary input files are never deleted. Only temporary JSON files created by this toolset may be cleaned up after reading (and only when dryRun=false).
  • Very large JSON inputs may be truncated by the MCP transport before the tool reads them. If that happens, insert a smaller blueprint first and add children in follow-up calls with mps_mcp_update_node (ADD/CHILD or SET/CHILD), or pass the JSON as a file path instead of an inline string. See references/staged-construction.md for the recommended pattern.
Show full SKILL.md (925 more words)Show less

Node factories

Many concepts ship a node factory (the language's actions aspect) that initializes a freshly created node. It fires before your blueprint is applied, and it may set properties, add children, wire references, and reach outside the node entirely: add a used language or model import, add a module dependency, or bump the language's version. Factories are inherited, so a concept gets the factories of its super-concepts and its implemented interfaces.

A factory runs for every node that is newly created, and not for a node that already exists:

ToolFactory runs for
the editor, mps_mcp_create_root_nodethe new node
mps_mcp_insert_root_node_from_jsoneach new root and every nested blueprint child
mps_mcp_update_node ADD × CHILD, SET × CHILD with a childJsonthe new child and its nested children
mps_mcp_insert_console_command_from_jsonthe new command node and its children
mps_mcp_update_root_node_from_jsononly the staged children — the root itself already exists, so nothing runs for it
mps_mcp_update_node SET × CHILD with no childJson (a delete)nothing

How a blueprint composes with the factory:

Blueprint saysResult
nothing about a propertythe factory's value stands
a property the factory also setyour value wins (properties are applied after the factory)
nothing about a child rolethe factory's children in that role stand
a child rolethat role is cleared first, then filled from your blueprint
nothing about a reference rolethe factory's target stands
a reference roleyour target wins

Practical consequences:

  • Do not hand-write what the factory already does. Duplicating a factory side effect is how double-counting bugs appear — e.g. a MigrationScript's or PureMigrationScript's language-version bump (see the mps-aspect-migrations skill).
  • Name a role only to override it. Listing a role you meant to leave alone silently discards the factory's contribution to it.
  • Mandatory roles are not auto-filled. The blueprint paths deliberately skip MPS's "create default child for every 1-cardinality role" step, so a role you omit stays empty and mps_mcp_check_root_node_problems will report it. That is intentional: the blueprint stays exact.
  • dryRun: true does not run factories at all — their side effects land on the model and module and nothing rolls them back. A dry run therefore validates the blueprint, not the final node.
  • Factory side effects survive a failed call. They are applied while the blueprint is being built, and a failed call removes only the nodes it created, never what the factories wrote elsewhere. If a batch insert fails on its third root, the first two roots are not inserted but whatever their factories wrote to the model and module — imports, module dependencies, a language-version bump — stays. Re-read the affected state instead of assuming a failed call changed nothing. A stray language-version bump is undone in one call: mps_mcp_update_module(operation="SYNC_VERSION") re-derives the version from the scripts that actually exist.
  • A factory that throws is reported; one that swallows its own exception is not. A throw becomes a warnings entry naming the concept, and the node is still created — treat its factory-initialized state as absent. But a factory that catches internally reports nothing and the envelope looks clean. That is the norm for AutoInitDSLClass concepts (MigrationScript among them), whose initializer runs behind its own catch and surfaces only in idea.log. For those, verify the state the factory was supposed to set rather than trusting ok: true.

To see whether a concept has a factory at all, use mps_mcp_query_structure(operation = "LIST_CONCEPT_ASPECTS", …) — it reports which aspect models declare something for the concept, including actions. (mps_mcp_get_concept_details does not list aspects.) The mps-aspect-actions skill covers authoring and reading factories.

Reference Index

  • Open references/json-format.md when you need the unified JSON blueprint shape — concept/properties/children/references layout, optional-section rules, and reference-resolution semantics (r:... vs name auto-resolution).
  • Open references/staged-construction.md when the subtree is large (>~4 KB) or its child refs are needed for later edits — the skeleton → validate → incremental-fill → targeted-update → cleanup pattern.
  • Open references/troubleshooting.md when an insert call fails with JsonElement.getAsString() errors or when the JSON shape diverges from the user's textual notation.

Scripts

scripts/table_to_bulk_insert.py — turns a CSV (or JSON rows) plus a small JSON mapping spec into the top-level-array blueprint mps_mcp_insert_root_node_from_json accepts, written to a file under the system temp directory, and prints {path, roots, children, references}. Covers typed properties (int, enum literals), split-column child lists, and reference-wrapper children whose targets are written as names for the tool to resolve after the batch lands.

python3 scripts/table_to_bulk_insert.py courses.csv courses.map.json
{"children":183,"path":"/var/folders/.../bulk_insert-courses-1234.json","references":65,"roots":40}

Then mps_mcp_insert_root_node_from_json(modelReference=…, json="<that path>") and read fixReferences.stillBroken in its response. Skip the dryRun=true call, or ignore its "is a name, not looked up" warnings: a dry run never looks up name targets, whether the table defines them or they already exist, and the real insert resolves them.

To check the inserted model against the table, dump it once and run the same script with --verify. That replaces a hand-written comparison script:

mps_mcp_get_project_structure(startingPoint=<model>, includeNodes=true, nodeDepth=1)
python3 scripts/table_to_bulk_insert.py courses.csv courses.map.json --verify <dumpFile>
row 7 (Conducting): lessons[2].minutes: expected '10', got '12'
{"differences":1,"extraRoots":0,"matched":39,"mismatched":1,"missing":0,"rows":40}

It pairs rows with roots by the spec's nameColumn, and compares every property, child and reference target the spec produces. It exits 0 when every row matches and 1 on any difference.

Run --help for the full mapping-spec reference, --list-tools for the tools and parameters it depends on; scripts/examples/ holds a 40-row courses.csv with its matching courses.map.json. This usage block plus --help are the contract: there is no need to read the script source or the examples first.

No python3 (typically Windows): author the array by hand as described in references/json-format.md — one object per row, properties entries omitted for empty cells so the MPS default applies, one child role per list column, and one wrapper child per reference with {"role": …, "target": "<name>"} — write it to a file under $TMPDIR (or /tmp on macOS) and pass that path. Prefer --limit-sized batches, or the staged construction in references/staged-construction.md, over one oversized blueprint.

© 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 6 other files (scripts, references) in .agents/skills/mps-node-editing of JetBrains/MPS.

  • SKILL.md
  • references/json-format.md
  • references/staged-construction.md
  • references/troubleshooting.md
  • scripts/examples/courses.csv
  • scripts/examples/courses.map.json
  • scripts/table_to_bulk_insert.py

Open the folder on GitHubat commit a92f944

Compare with similar skills

Mps Node Editing 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 Node Editing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mps Node Editing this skillJetBrains/MPS1.7k—~4.7kAutomated safety check: PassApache-2.0
MCP Server Builderanthropics/skills180k64 repos~2.3kAutomated safety check: PassApache-2.0
MCP Server BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
MCP Integration for Pluginsanthropics/claude-plugins-official38k11 repos~3.1kAutomated safety check: PassApache-2.0
Figma use_figma Plugin API Ruleswarpdotdev/warp65k4 repos~4.4kAutomated safety check: PassAGPL-3.0
Stitch to Remotion Walkthrough Videosgoogle-labs-code/stitch-skills8.4k6 repos~3.2kAutomated safety check: NotesApache-2.0

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 64 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • MCP Integration for Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.

    38k GitHub starsUsed in 11 repos~3.1k tokens
    Agent WorkflowsAuto-check passed
  • Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Stitch to Remotion Walkthrough Videos

    google-labs-code/stitch-skills

    Official

    Builds walkthrough videos from Stitch design projects using Remotion, with transitions, zoom effects and text overlays on each screen.

    8.4k GitHub starsUsed in 6 repos~3.2k tokens
    Media & CreativeAuto-check: notes
  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed

More from JetBrains/MPS

All 40 skills in this repo
  • Official

    Analyze an MPS language by name — discover concepts, properties, references, children, aspects (editor/constraints/behavior), and metadata.

    1.7k GitHub stars~1.4k 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, validation, MPS MCP tool usage, and the index of companion skills.

    1.7k GitHub stars~5.8k 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

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

    1.7k GitHub stars~2.8k 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 Node Editing

What does Mps Node Editing do?

Add, update, or delete MPS nodes using JSON blueprints — covers the unified blueprint format, staged construction for large subtrees, validation, and reference repair. Mps Node Editing is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Add, update, or delete MPS nodes using JSON blueprints — covers the unified blueprint format, staged construction for large subtrees, validation, and reference repair.

When should I use Mps Node Editing?

Mps Node Editing fits situations like: restructuring nodes in any MPS model (structure; application code.

How do I install Mps Node Editing in Claude Code?

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

How do I install Mps Node Editing in Codex?

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

Can I use Mps Node Editing 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-node-editing -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-node-editing, .gemini/skills/mps-node-editing, .github/skills/mps-node-editing and .opencode/skills/mps-node-editing in your project.

What does Mps Node Editing need to run?

Going by SKILL.md and its folder, Mps Node Editing needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Mps Node Editing 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 Node Editing 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Mps Node Editing use?

Mps Node Editing 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 Node Editing use?

About 4.7k tokens (SKILL.md is roughly 19k 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 3k tokens, read only when the agent opens those files.

What are the alternatives to Mps Node Editing?

Skills that share tags, products or a category with Mps Node Editing: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mps Node Editing?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/MPS, which has 1,660 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 7, 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.