MCP tools

mastercss_css_compare

Compare generated CSS for before/after class lists, HTML fragments, or source buffers.

Contract

Compare two class selections using the same active manifest. The result explains generated CSS differences; it does not establish visual equivalence.

Input

context
stringOptional

Semantic context. Defaults to project; entry discovery or compilation failures are reported without falling back. Select preset explicitly for standalone preset queries. Values: project, preset.

beforeClassList
stringOptional

Whitespace-separated classes before the change. Takes precedence over the before HTML and source buffer.

afterClassList
stringOptional

Whitespace-separated classes after the change. Takes precedence over the after HTML and source buffer.

beforeHtml
stringOptional

Before HTML fragment, used when beforeClassList is absent.

afterHtml
stringOptional

After HTML fragment, used when afterClassList is absent.

beforeContent
stringOptional

Before source buffer, used when both other before inputs are absent.

afterContent
stringOptional

After source buffer, used when both other after inputs are absent.

filePath
stringOptional

Virtual workspace-relative path used to infer the source language; the buffer does not need to exist on disk. Defaults to index.html.

Complete input schema
JSON
{  "$schema": "http://json-schema.org/draft-07/schema#",  "type": "object",  "properties": {    "context": {      "type": "string",      "enum": [        "project",        "preset"      ]    },    "beforeClassList": {      "type": "string"    },    "afterClassList": {      "type": "string"    },    "beforeHtml": {      "type": "string"    },    "afterHtml": {      "type": "string"    },    "beforeContent": {      "type": "string"    },    "afterContent": {      "type": "string"    },    "filePath": {      "type": "string"    }  }}

Example

Call mastercss_css_compare from a connected MCP client with these arguments:

Arguments
{  "beforeClassList": "p-sm",  "afterClassList": "p-md"}

Compare two spacing values under the same manifest.

Output

classes and rules describe additions and removals, invalid lists rejected classes, and css includes before/after text and a diff. The current bytes and bytesDelta fields count UTF-16 code units with JavaScript string lengths, not UTF-8 bytes or compressed transfer sizes.

Every tool returns an object with version: 3, metadata, diagnostics and result. Success payload fields described above live in result.data; failure has result.status: "error" and a required { code, message } error. JSON text equals structuredContent. Tool errors set isError. Metadata records actual context, package/language/binding versions, manifest fingerprint, entries and dependencies; unavailable information is null or an empty array.

Complete output schema
JSON
{  "$schema": "http://json-schema.org/draft-07/schema#",  "type": "object",  "properties": {    "version": {      "type": "number",      "const": 3    },    "metadata": {      "type": "object",      "properties": {        "versions": {          "anyOf": [            {              "type": "object",              "properties": {                "languageVersion": {                  "type": "number"                },                "bindingAbiVersion": {                  "type": "number"                },                "packageVersion": {                  "type": "string"                }              },              "required": [                "languageVersion",                "bindingAbiVersion",                "packageVersion"              ],              "additionalProperties": {}            },            {              "type": "null"            }          ]        },        "context": {          "anyOf": [            {              "type": "string",              "enum": [                "project",                "preset"              ]            },            {              "type": "null"            }          ]        },        "manifestFingerprint": {          "type": [            "string",            "null"          ]        },        "entries": {          "type": "array",          "items": {            "type": "string"          }        },        "dependencies": {          "type": "array",          "items": {            "type": "string"          }        }      },      "required": [        "versions",        "context",        "manifestFingerprint",        "entries",        "dependencies"      ],      "additionalProperties": false    },    "diagnostics": {      "type": "array",      "items": {        "type": "object",        "properties": {          "code": {            "type": "string"          },          "phase": {            "type": "string"          },          "severity": {            "type": [              "string",              "number"            ]          },          "message": {            "type": "string"          },          "notes": {            "type": "array",            "items": {              "type": "string"            }          },          "alternatives": {            "type": "array",            "items": {              "type": "string"            }          },          "source": {            "type": "string"          },          "range": {            "anyOf": [              {                "type": "object",                "properties": {                  "start": {                    "type": "number"                  },                  "end": {                    "type": "number"                  }                },                "required": [                  "start",                  "end"                ],                "additionalProperties": false              },              {                "type": "object",                "properties": {                  "start": {                    "type": "object",                    "properties": {                      "line": {                        "type": "number"                      },                      "character": {                        "type": "number"                      }                    },                    "required": [                      "line",                      "character"                    ],                    "additionalProperties": false                  },                  "end": {                    "type": "object",                    "properties": {                      "line": {                        "type": "number"                      },                      "character": {                        "type": "number"                      }                    },                    "required": [                      "line",                      "character"                    ],                    "additionalProperties": false                  }                },                "required": [                  "start",                  "end"                ],                "additionalProperties": false              }            ]          }        },        "required": [          "message"        ],        "additionalProperties": {}      }    },    "result": {      "oneOf": [        {          "type": "object",          "properties": {            "status": {              "type": "string",              "const": "success"            },            "data": {              "type": "object",              "properties": {                "manifest": {                  "type": "object",                  "properties": {                    "context": {                      "type": "string",                      "enum": [                        "project",                        "preset"                      ]                    },                    "status": {                      "type": "string",                      "enum": [                        "loaded",                        "error"                      ]                    },                    "fingerprint": {                      "type": [                        "string",                        "null"                      ]                    },                    "entries": {                      "type": "array",                      "items": {                        "type": "string"                      }                    },                    "dependencies": {                      "type": "array",                      "items": {                        "type": "string"                      }                    },                    "versions": {                      "type": "object",                      "properties": {                        "languageVersion": {                          "type": "number"                        },                        "bindingAbiVersion": {                          "type": "number"                        },                        "packageVersion": {                          "type": "string"                        }                      },                      "required": [                        "languageVersion",                        "bindingAbiVersion",                        "packageVersion"                      ],                      "additionalProperties": {}                    }                  },                  "required": [                    "context",                    "status",                    "fingerprint",                    "entries",                    "dependencies"                  ],                  "additionalProperties": {}                },                "classes": {                  "type": "object",                  "properties": {                    "added": {                      "type": "array",                      "items": {                        "type": "string"                      }                    },                    "removed": {                      "type": "array",                      "items": {                        "type": "string"                      }                    },                    "unchanged": {                      "type": "array",                      "items": {                        "type": "string"                      }                    }                  },                  "required": [                    "added",                    "removed",                    "unchanged"                  ],                  "additionalProperties": false                },                "css": {                  "type": "object",                  "properties": {                    "changed": {                      "type": "boolean"                    },                    "before": {                      "type": "object",                      "properties": {                        "bytes": {                          "type": "number"                        },                        "text": {                          "type": "string"                        }                      },                      "required": [                        "bytes"                      ],                      "additionalProperties": {}                    },                    "after": {                      "type": "object",                      "properties": {                        "bytes": {                          "type": "number"                        },                        "text": {                          "type": "string"                        }                      },                      "required": [                        "bytes"                      ],                      "additionalProperties": {}                    },                    "bytesDelta": {                      "type": "number"                    },                    "diff": {                      "type": "string"                    }                  },                  "required": [                    "changed",                    "before",                    "after",                    "bytesDelta",                    "diff"                  ],                  "additionalProperties": false                },                "rules": {                  "type": "object",                  "properties": {                    "added": {                      "type": "array",                      "items": {                        "type": "string"                      }                    },                    "removed": {                      "type": "array",                      "items": {                        "type": "string"                      }                    },                    "unchanged": {                      "type": "number"                    }                  },                  "required": [                    "added",                    "removed",                    "unchanged"                  ],                  "additionalProperties": false                },                "summary": {                  "type": "object",                  "propertyNames": {                    "type": "string"                  },                  "additionalProperties": {                    "$ref": "#/definitions/__schema0"                  }                }              },              "required": [                "manifest",                "classes",                "css",                "rules",                "summary"              ],              "additionalProperties": {}            }          },          "required": [            "status",            "data"          ],          "additionalProperties": false        },        {          "type": "object",          "properties": {            "status": {              "type": "string",              "const": "error"            },            "error": {              "type": "object",              "properties": {                "code": {                  "type": "string"                },                "message": {                  "type": "string"                }              },              "required": [                "code",                "message"              ],              "additionalProperties": false            }          },          "required": [            "status",            "error"          ],          "additionalProperties": false        }      ]    }  },  "required": [    "version",    "metadata",    "diagnostics",    "result"  ],  "additionalProperties": false,  "definitions": {    "__schema0": {      "anyOf": [        {          "type": "string"        },        {          "type": "number"        },        {          "type": "boolean"        },        {          "type": "null"        },        {          "type": "array",          "items": {            "$ref": "#/definitions/__schema0"          }        },        {          "type": "object",          "propertyNames": {            "type": "string"          },          "additionalProperties": {            "$ref": "#/definitions/__schema0"          }        }      ]    }  }}

Project context and lifecycle

This operation does not write workspace files.

The local stdio server uses the workspace passed to --root. Confirm the root and intended CSS entries with mastercss_workspace_info before relying on project-dependent values.

See the MCP workflow guide for client setup and the preview/apply workflow.


© 2026 Aoyue Design LLC.MIT License
Trademark Policy