SCSS/Sass — 127 Operations for AI Agents
This page is the canonical reference an AI coding agent uses to refactor, query, and analyze SCSS/Sass code through the act MCP server. 127 operations available: 53 refactor, 18 query, 42 analysis, 14 verification. Each operation is callable from Claude Code, Cursor, Codex, OpenCode, or any MCP-compatible agent host. Click any operation for a stable anchor link suitable for citation.
Query
18 query tools, the same on every supported language. Descriptions live in the shared reference: /docs/query-tools.
callers control_flow data_flow definition diagnostics effect_closure effect_summary fix_auto get_type graph import_organize interface mutations references repo_outline skeleton symbols symbols_batch
Refactor
| Operation | Description |
|---|---|
add-extend-directive-scss |
Add @extend for selector inheritance |
add-forward-statement-scss |
Add @forward for re-exporting modules |
add-global-variable-scss |
Add !global flag to variable |
add-interpolation-scss |
Add #{} interpolation |
add-list-variable-scss |
Add list variable ($list: val1, val2) |
add-map-variable-scss |
Add map ($map: (key: val)) |
add-mixin-default-param-scss |
Add default value to mixin parameter |
add-mixin-parameter-scss |
Add parameter to existing @mixin |
add-module-config-scss |
Add module configuration with @use |
add-use-statement-scss |
Add @use import for modules |
consolidate-mixins-scss |
Merge similar mixins |
convert-at-import-to-at-use-scss |
Migrate @import to @use |
convert-each-to-loop-scss |
Convert @each to explicit loop |
convert-if-to-ternary-scss |
Convert @if to ternary when possible |
convert-list-to-map-scss |
Convert list to map structure |
convert-nested-to-flat-scss |
Convert nested selectors to flat CSS |
extract-function-scss |
Extract expression to @function |
extract-mixin-scss |
Extract repeated code to a @mixin |
extract-to-nested-selector-scss |
Extract to nested selector pattern |
extract_function |
Extract a code selection into a new function — automatically infers parameters, return types, and inserts the call site. Use instead of manually cutting/pasting code. Works without LSP; LSP improves type inference. Params: file (string), new_name (string), start_line (u32), start_column (u32), end_line (u32), end_column (u32) [, preview (bool), receipt (bool)] |
extract_variable |
Extract an expression into a named variable — inserts the declaration and replaces the expression with the variable name. Works without LSP. Params: file (string), new_name (string), start_line (u32), start_column (u32), end_line (u32), end_column (u32) [, preview (bool)] |
generate-animation-mixin-scss |
Generate animation @keyframes mixin |
generate-breakpoint-mixin-scss |
Generate responsive breakpoint mixin |
generate-button-mixin-scss |
Generate button component mixin |
generate-card-mixin-scss |
Generate card component mixin |
generate-color-map-scss |
Generate color palette map |
generate-flex-mixin-scss |
Generate flexbox mixin |
generate-form-mixin-scss |
Generate form element mixin |
generate-function-scss |
Generate @function skeleton with @return |
generate-grid-mixin-scss |
Generate CSS grid mixin |
generate-media-query-scss |
Generate @media query mixin |
generate-mixin-scss |
Generate @mixin skeleton with parameters |
generate-spacing-map-scss |
Generate spacing scale map |
generate-variable-declaration-scss |
Generate SCSS variable ($name: value;) |
inline |
Inline a variable, function, or method — replace every usage with its definition body, then remove the original. The inverse of extract. Works without LSP (single-file); LSP enables cross-file inlining. Params: file (string), symbol (string) [, line (u32), preview (bool), receipt (bool)] |
inline-function-scss |
Inline function call back to expression |
inline-mixin-scss |
Inline a @include back to the original code |
inline-variable-scss |
Replace variable usage with its value |
insert_body |
Replace a function's implementation body with new code. AST-validated — rejects if the result has parse errors, so you can't accidentally break syntax. Use instead of manual text editing for function rewrites. Params: file (string), symbol (string), code (string) [, commit (bool)] |
move_symbol |
Move a function, class, or type to a different file and automatically update all imports across the codebase. Use instead of manually cut/paste + fixing imports. Works without LSP (single-file); LSP enables cross-file import updates. Params: file (string), symbol (string), destination (string) [, preview (bool), receipt (bool)] |
nest-rule-scss |
Nest rule inside parent selector |
organize-mixins-by-category-scss |
Organize mixins by category |
organize-mixins-scss |
Group mixins by functionality |
organize-variables-scss |
Group related variables together |
recipe_run |
Run a codemod recipe: declarative match → transform → optional verify across modeled grammars. Preview lists matches; apply writes with optional E7 receipts and all-or-nothing rollback. Returns a per-site report. |
remove-duplicate-mixin-scss |
Remove duplicate mixin definitions |
remove-unused-variable-scss |
Remove variables that aren't used |
rename |
Rename a symbol and automatically update ALL references across the codebase. Safer and faster than find-and-replace — AST-aware, won't rename strings or comments. Works without LSP (single-file); LSP enables cross-file renames. Params: file (string), old_name (string), new_name (string) [, line (u32), column (u32), preview (bool), receipt (bool)] |
rename-mixin-scss |
Rename @mixin and update @include calls |
rename-scss-variable |
Rename SCSS variable ($var) across all references |
simplify-mixin-logic-scss |
Simplify conditional logic in mixins |
simplify-nested-rules-scss |
Flatten unnecessary nesting |
unnest-rule-scss |
Unnest rule to flat selector |
Analysis
42 analysis tools, the same on every supported language. Descriptions live in the shared reference: /docs/analysis-tools.
analyze_api_diff analyze_chokepoints analyze_clones analyze_clusters analyze_cohesion analyze_conformance analyze_coupling analyze_cycle_risk analyze_cycles analyze_dead_code analyze_depth analyze_entry_points analyze_export analyze_extraction analyze_fan_balance analyze_features analyze_hotspots analyze_impact analyze_inconsistencies analyze_inheritance analyze_interface_bloat analyze_interfaces analyze_layers analyze_orphan_types analyze_patterns analyze_platform_deps analyze_readiness analyze_roles analyze_seams analyze_stability analyze_surface analyze_test_gaps analyze_thickness analyze_type_completeness churn_hotspots co_change_clusters coverage_overlay ownership_map profile_overlay simulate split_module trace_overlay
Verify
14 verify tools, the same on every supported language. Descriptions live in the shared reference: /docs/verification.
bisect_regression gate generate_test_harness scan secret_surface summarize_pr taint_flow unsafe_surface verify_behavioral_equivalence verify_contract_preserved verify_diff_semantics verify_port_parity verify_side_effects verify_test_impact