JetBrains MPS is a development environment for creating domain-specific languages, which are programming languages designed for a particular field or task. It provides editors with features such as completion, semantic checks, and type checking, and can generate code in languages including Java and XML.
Borrowing it
Nothing to install: this file belongs to JetBrains/MPS. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/JetBrains/MPS/master/.agents/skills/mps-console/SKILL.mdgit clone --depth 1 https://github.com/JetBrains/MPSWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jetbrains/mps/mps-console)<a href="https://agentmods.dev/skills/jetbrains/mps/mps-console"><img src="https://agentmods.dev/badge/skills/jetbrains/mps/mps-console/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jetbrains/mps/mps-console"><img src="https://agentmods.dev/badge/skills/jetbrains/mps/mps-console.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00072 | $0.04195 |
| Opus 5.5 | $0.00029 | $0.01678 |
| Sonnet 5.5 | $0.00014 | $0.00839 |
| Haiku 4.5 | $0.00007 | $0.00419 |
Grade A, and why
mps-console scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MPS Console and the smodel query language
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 MPS Console runs DSL code against the live models of the open project: query and mutate nodes, run find-usages, gather statistics, make/clean models, reload classes. Code is typed line-by-line, generated by the MPS generator, and executed in the IDE context. Most console-specific constructs start with # and completion (Ctrl+Space) inserts them.
The smodel query language (jetbrains.mps.lang.smodel.query) exposes the same queries (#nodes, #instances, #usages, …) for use in ordinary model code — intentions, behavior methods, actions, migration/refactoring scripts — wrapped in a with (<scope>) { … } statement. Reach for it whenever code needs to enumerate nodes/models/modules or find instances/usages across a scope.
Ways this skill gets used
- Type code in the Console tool window (Tools ▸ Console, or the Console tool window). One command per input. See
references/console-languages.md. - Write
smodel.queryqueries inside model code (an intention, behavior method, generator query, script). Importjetbrains.mps.lang.smodel.queryand wrap queries inwith (<scope>) { … }. Seereferences/smodel-query.md. - Insert code into the Console from an agent via
mps_mcp_insert_console_command_from_json— builds a command from a JSON blueprint and drops it into the console input without executing it (the user reviews and runs it with Ctrl+Enter). Seereferences/mcp-insertion.md, which also has a generator script for a query with.where(…)/.select(…)closures. - Read the current Console command from an agent via
mps_mcp_get_current_editor_root_nodewithsource = "console"— returns the node-info envelope of the command currently in the console input (one an agent inserted, or the user typed). Feed itsreferencetomps_mcp_print_nodefor the JSON blueprint (format = "JSON") or the notational printout (format = "PLAIN TEXT"/"HTML"), or tomps_mcp_check_root_node_problemsto see the problems MPS's model checker reports for it (way #8). The reference is only valid until the next console interaction (execute / clear / history navigation), so print it promptly and do not cache it. - Browse the Console history from an agent via
mps_mcp_get_console_history— lists previously executed commands in order, each with a one-linepreview, a history-entryreference, and aneffectiveCommandReference. Pass the entryreferenceto recall; passeffectiveCommandReferencetomps_mcp_print_node. UseincludeResponses = trueto also list each command's printed output as akind:responseentry right after it, with a one-linepreview; see "Reading a command's output" below for the full text and for the node references inside it. Same reference-validity caveat as #4. - Recall a history command into the input via
mps_mcp_recall_console_command(historyNodeReference)— deep-copies a history entry (from #5) back into the input slot without executing it. Pass the history entry'sreference, not itseffectiveCommandReference. There is no MPS "recall" API to call directly; this mirrors what the Console's own up/down history navigation does (copy+ insert). - Run the current Console command from an agent via
mps_mcp_run_console_command— executes whatever command is currently in the input (placed there by #3 or #6, or typed by the user), exactly as Ctrl+Enter, and only when a command is present. It executes code with side effects. The response is not returned by the tool; read it afterwards as "Reading a command's output" below describes, and note that long-running commands (make/generate) complete asynchronously. - Check a Console command for problems from an agent via
mps_mcp_check_root_node_problems— pass thereferencefrom way #4 (or aneffectiveCommandReferencefrom way #5) and it runs MPS's full checker set (structure, constraints, reference scopes, typesystem, and checking rules), surfacing the same errors/warnings the Console editor underlines and the Model Checker reports. Two caveats: (a) root-scoped — the tool checks the command'scontainingRoot, which for console code is the singleConsoleRootholding the current input and the entire history, so results can include problems from earlier commands; with the defaultonlyNodesWithProblems = trueyou get a flat list of problem nodes, so match each one'srootName/subtree to the command you mean. (b) Same reference-validity window as #4 — resolve and check before the next console interaction. - Import models into the Console from an agent via
mps_mcp_model_dependencyandmps_mcp_model_used_languagewithmodelReference: "console"— needed before typed Java inserted withmps_mcp_parse_java_and_insert(insert.mode: "console") can resolve an MPS class that the console history does not already reach. Imports last until Console ▸ Clear or a plugin reload. Seereferences/console-imports.md. - Clear the Console from an agent via
mps_mcp_clear_console— the toolbar's Clear: it deletes the user's console history, and Ctrl+Z does not restore it, so look first withmps_mcp_get_console_historyand check withdryRun. The input stays unlessclearInput = true. Clear re-derives the console's imports from what is left, soclearInput = truegives a clean check of which imports a command needs. Every console reference except the kept input is stale afterwards.
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago Changed · +4 lines 37556096b493
- 29d ago Changed · +1 lines df9ed534c5dd
- 1mo ago Changed · +29 lines · -245 tokens per session 98dd5256c48d
- 2mo ago First seen · 82 lines · 317 tokens per session scan A 56e118afaf46
mps-console is a skill published in the GitHub repository JetBrains/MPS (1,666 stars, last pushed yesterday), licensed Apache-2.0. It adds 72 tokens to every session and 4,195 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
mps-console compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| mps-consoleJetBrains/MPS | Skill | 1.7k | yesterday | Apache-2.0 | A | 72 | Claude Code, Codex |
| langiumeclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 33 | Claude Code |
| lai-gen-evalseclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 42 | Claude Code |
| laieclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 52 | Claude Code |
| lai-gen-descriptoreclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 49 | Claude Code |
| lai-gen-mcpeclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 43 | Claude Code |
| lai-gen-language-skilleclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 33 | Claude Code |