A Model Context Protocol (MCP) plugin for analyzing UVL (Universal Variability Language) feature models. Provides operations for feature model analysis including atomic sets identification, configuration generation, complexity metrics, and constraint validation.
15 tools with complete input schemas and descriptions, but significant gaps in naming conventions and output documentation. Tool names lack action verbs (atomic_sets, average_branching_factor, commonality instead of analyze_atomic_sets, calculate_branching_factor, measure_commonality). Descriptions are adequate (100-200 chars) but generic, they explain WHAT without guiding WHEN to use each tool. No output schemas documented. Parameters are typed and described, but lack constraints (enums, ranges). Error handling and recovery guidance absent. Composition is sound (single responsibility per tool), but naming ambiguity forces LLM reasoning overhead.
This operation identifies atomic sets in a feature model. An atomic set is a group of features that always appear together across all configurations of the model. These sets help in simplifying and reducing the complexity of the model by grouping features that behave as a single unit.
This calculates the average number of child features per parent feature in the feature model. It provides insight into the complexity of the model.
Measures how often a feature appears in the configurations of a product line, usually expressed as a percentage. Features with high commonality are core features.
Generates all possible valid configurations of a feature model. Each configuration represents a valid product that can be derived from the feature model.
Returns the total number of valid configurations represented by the feature model.
Identifies features that are present in all valid configurations of the feature model. These are mandatory features that cannot be excluded.
Tool names lack action verbs. Names like 'atomic_sets', 'commonality', 'filter' do not start with verbs (get_, calculate_, analyze_, list_). LLMs infer intent from names before reading descriptions, ambiguous names cause wrong tool selection.
No output schemas documented. Tools return results but LLMs cannot plan downstream calls or extract fields without knowing response structure. Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
This operation counts the number of leaf features in a feature model. Leaf features are those that do not have any children.
Identifies features that cannot be included in any valid product configuration due to constraints and dependencies in the model. These are typically indicative of errors in the feature model.
Provides an estimate of the total number of different configurations that can be produced from a feature model by considering all possible combinations of features.
Identifies features that appear to be optional but, due to constraints and dependencies in the feature model, must be included in every valid product configuration. These features are typically indicative of modeling errors.
Identifies all ancestor features of a given feature in the feature model. Ancestors are features that are hierarchically above the given feature.
This operation filters and selects a subset of configurations based on specified criteria. It helps in narrowing down the possible configurations to those that meet certain requirements.
Identifies all leaf features in the feature model. Leaf features are those that do not have any child features and represent the most specific options in a product line.
This operation finds the maximum depth of the feature tree in the model, indicating the longest path from the root to a leaf.
Checks whether a given model is valid according to the constraints defined in the feature model.
Descriptions lack WHEN-to-use guidance. Descriptions explain WHAT each tool does but not when to call it vs. similar tools. E.g., 'core_features' vs 'false_optional_features' distinction unclear. Baseline: descriptions should answer What, When, and prerequisites.
No error handling or recovery guidance. Tools provide no error messages, validation rules, or recovery steps. If a tool fails, LLM has no guidance on what to try next.
Parameter constraints missing. 'content' and 'configFile' parameters lack format hints, length limits, or validation rules. LLMs cannot self-validate inputs before calling tools.