CtrlK
BlogDocsLog inGet started
Tessl Logo

mps-language-analysis

Analyze 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.

79

Quality

100%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

MPS Language Analysis

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 via mps_mcp_get_project_structure.
  • For the qualifiedName returned by mps_mcp_get_concept_details, use it as the concept field in JSON blueprints. It is unambiguous.

Analyzing a Language by Name

  1. Verify Language: call mps_mcp_get_project_structure with the language name as a filter (startingPoint: My_Language). This confirms existence and provides the UUID.
  2. Retrieve Concepts: use mps_mcp_get_concept_details with the language name in languageRefs. Both conceptRefs and languageRefs accept either one value or a JSON-array string; omit the unused selector.
  3. Extract Data: the response includes:
    • Name: concept FQN.
    • Description: found in shortDescription.
    • Metadata: isRootable, isAbstract, and the conceptReference ID.
    • Structure: properties, children, and references are detailed here.
  4. Drill Down:
    • Declaration: use the sourceNode reference with mps_mcp_open_node to open the definition.
    • Examples: use mps_mcp_query_nodes with FIND_INSTANCES (sampleOnly: true) to get a sample node. Then use mps_mcp_print_node to see its canonical JSON structure for use as a template.
    • Inheritance: load the mps-language-inheritance skill for deeper hierarchy analysis.

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: true to include aspects from ancestors (superconcepts/interfaces).
  • Editor Analysis:
    • ConceptEditorDeclaration: defines the full editor for the targetsConcept.
    • EditorComponentDeclaration: defines reusable presentation pieces.
    • Check the editor model in the response to identify available editors.

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.md for the mps_mcp_search_concepts matching algorithm — haystack composition, subtoken splitting, fallback ranking, modelReference scoping, and the sub-2-char failure mode.
  • Open references/concept-details.md for the mps_mcp_get_concept_details result schema and the unresolved-ref policy (all-failed vs partial-success envelopes and the suggestion heuristic).
Repository
JetBrains/MPS
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.