Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/jetbrains/mps/mps-consolenpx skills add JetBrains/MPS --skill mps-consolegit 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.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00317 | $0.03140 |
| Opus 5 | $0.00159 | $0.01570 |
| Sonnet 5 | $0.00063 | $0.00628 |
| Haiku 4.5 | $0.00032 | $0.00314 |
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 4d 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 — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MPS Console and the smodel query language
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. - 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 see the printed output. 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 via #5 (mps_mcp_get_console_historywithincludeResponses = true) or from the Console tool window, 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.
What ships with it
3 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.
- 4d 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,657 stars, last pushed yesterday), licensed Apache-2.0. It adds 317 tokens to every session and 3,140 once invoked, about $0.0016 per session on Opus 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.
Other skills, from other repositories
langium
A comprehensive skill to understanding how Langium-based projects work — from grammar definition through code generation, runtime parsing, linking, validation, and LSP integration.
lai-gen-evals
Expand and refine the evaluation suite for a Langium DSL project. Generates comprehensive eval files that cover syntactic correctness, semantic validity, user intent matching, edge cases, and language understanding.
lai
Guide for using the langium-ai (LAI) CLI to generate language descriptors, synthesize system prompts, run evaluations, and iteratively refine AI-powered tooling in Langium projects. Use when working with lai commands, descriptors, or evaluation files.
lai-gen-descriptor
Generate or refine a language descriptor for a Langium DSL project. Bootstraps a new descriptor via lai gen descriptor if none exists, then guides refinement of paths, services, examples, documentation, and structure.
lai-gen-mcp
Generate a Model Context Protocol (MCP) server that exposes a Langium DSL's parser and validator as an MCP tool, allowing any MCP-compatible client to validate DSL code and receive diagnostics.
lai-gen-language-skill
Skill for generating a skill for understanding a specific Langium-based DSL. Used in cooperation with the lai & langium skills for understanding.