get_baseline_rules
Retrieve the complete rule set of a baseline to identify compliance gaps and hardening requirements.
Instructions
[READ] Return all rules of a given baseline.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| baseline_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- vmware_harden/mcp/tools.py:138-152 (handler)Core implementation of get_baseline_rules. Loads a baseline by ID via load_builtin() and returns a list of {id, title, severity, category} dicts for each rule.
@vmware_tool(risk_level="low") def get_baseline_rules(baseline_id: str) -> list[dict]: """[READ] Return all rules of a given baseline.""" from vmware_harden.baselines.loader import load_builtin b = load_builtin(baseline_id) return [ { "id": r.id, "title": r.title, "severity": r.severity, "category": r.category, } for r in b.rules ] - mcp_server/server.py:39-43 (registration)Registers the tool named 'get_baseline_rules' on the FastMCP server, delegating to the handler in vmware_harden.mcp.tools.
@server.tool(name="get_baseline_rules") def _get_baseline_rules_impl(baseline_id: str) -> list[dict]: """[READ] Return all rules of a given baseline.""" return t.get_baseline_rules(baseline_id) - Helper function load_builtin() called by the handler. Resolves the baseline name to a .yaml file (user dir first, then built-in) and loads/parses it into a Baseline model.
def load_builtin(name: str) -> Baseline: """Load a baseline by name (without `.yaml` suffix). Searches user dir (~/.vmware-harden/baselines) first, then the package's built-in directory. """ return load_baseline(_resolve_baseline_path(name)) - The Rule and Baseline Pydantic models that define the structure of the data returned by get_baseline_rules. Rule.id, .title, .severity, .category are used in the handler's output.
class Rule(BaseModel): """A single compliance rule within a baseline.""" model_config = ConfigDict(extra="forbid") id: str title: str severity: Severity category: str rationale: str | None = None check: Check = Field(discriminator="type") remediation: Remediation review_policy: ReviewPolicy = Field(default_factory=ReviewPolicy) class Baseline(BaseModel): """A complete baseline of compliance rules.""" model_config = ConfigDict(extra="forbid") id: str name: str version: str source: str | None = None extends: str | None = None applies_to: list[NodeType] rules: list[Rule]