MPS Language Analysis
SkillDev toolsAnalyze an MPS language by name — discover concepts, properties, references, children, aspects (editor/constraints/behavior), and metadata. Use when investigating an unfamiliar language, exploring concept structure, or finding sample nodes to use as templates for JSON blueprints.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the MPS Language Analysis skill
What this skill tells your AI
The instructions your AI receives, as published by jetbrains/mps in .agents/skills/mps-language-analysis/SKILL.md and read by ahel’s review.
Workflow for inspecting an MPS language from a name (e.g. jetbrains.mps.lang.core). Returns concepts, metadata, structural info, and pointers to declarations and sample nodes.
Critical Directives
- Use the fully qualified language name (e.g.
jetbrains.mps.lang.core) — single-letter shorthand (j.m.l.core) requires resolution first viamps_mcp_get_project_structure. - For the
qualifiedNamereturned bymps_mcp_get_concept_details, use it as theconceptfield in JSON blueprints. It is unambiguous.
Analyzing a Language by Name
- Verify Language: call
mps_mcp_get_project_structurewith the language name as a filter (startingPoint: My_Language). This confirms existence and provides the UUID. - Retrieve Concepts: use
mps_mcp_get_concept_detailswith the language name inlanguageRefs. BothconceptRefsandlanguageRefsaccept either one value or a JSON-array string; omit the unused selector. - Extract Data: the response includes:
- Name: concept FQN.
- Description: found in
shortDescription. - Metadata:
isRootable,isAbstract, and theconceptReferenceID. - Structure: properties, children, and references are detailed here.
- Drill Down:
- Declaration: use the
sourceNodereference withmps_mcp_open_nodeto open the definition. - Examples: use
mps_mcp_query_nodeswithFIND_INSTANCES(sampleOnly: true) to get a sample node. Then usemps_mcp_print_nodeto see its canonical JSON structure for use as a template. - Inheritance: load the
mps-language-inheritanceskill for deeper hierarchy analysis.
- Declaration: use the
Inspecting Concept Aspects
Use mps_mcp_query_structure with LIST_CONCEPT_ASPECTS to find associated definitions (Editor, Constraints, Behavior):
- Direct Aspects: returns roots targeting the specific concept.
- Inherited Aspects: set
includeInherited: trueto include aspects from ancestors (superconcepts/interfaces). - Editor Analysis:
- ConceptEditorDeclaration: defines the full editor for the
targetsConcept. - EditorComponentDeclaration: defines reusable presentation pieces.
- Check the
editormodel in the response to identify available editors.
- ConceptEditorDeclaration: defines the full editor for the
Related Skills
mps-language-inheritance— load when you need extended-language / superconcept / subconcept analysis.mps-aspect-structure-concepts— load when defining or modifying concepts (not just reading them).mps-language-aspects-overview— overview of which aspects exist and what each owns.
Reference Index
- Open
references/search-concepts.mdfor themps_mcp_search_conceptsmatching algorithm — haystack composition, subtoken splitting, fallback ranking,modelReferencescoping, and the sub-2-char failure mode. - Open
references/concept-details.mdfor themps_mcp_get_concept_detailsresult schema and the unresolved-ref policy (all-failed vs partial-success envelopes and the suggestion heuristic).
Signals
- GitHub stars
- 2k
- Forks
- 309
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
mps-language-analysis- Source
- github.com/jetbrains/mps