# Impact Nova MCP — When to use which tool

Use this to choose the right tool or resource for the task.

| Task | Tool / Resource | Notes |
|------|-----------------|--------|
| **Design system mandate (MANDATORY)** | Resource **`impact-nova://design-system-mandate`** | All personas: Impact Nova only, no custom components. Table/grid → DataTable. **`validate_snippet`** before done. |
| **IA designer guide (Figma-trained)** | Resource **`impact-nova://ia-design-language`** | Shell, typography, colors from IA DS v3.1 + Item Smart + Baseprice. **Mandatory** for Figma URLs, designer persona, planning/pricing UI. |
| **Planning / Item Smart quality bar** | Resource **`impact-nova://product-quality-bar`** | Empty state → FilterPanel → KPI + DataTableToolbar + table settings. Mandatory for planning prototypes. |
| **Any user request (start here)** | **`interpret_user_request`** | Detects persona: product, designer, manager, backend, frontend. Returns tool order + reply style. Resource: **`impact-nova://user-prompts`**. Prompt: **route-user-request**. |
| **Product: workflow / prototype / user story** | **`interpret_user_request`** → **`scaffold_impact_nova_app`** (if greenfield) | Planning grids, KPIs, acceptance criteria — not "scaffold Vite". Prompt: **build-product-prototype**. |
| Designer: screenshot / Figma / match our UI | **`interpret_user_request`** → **`impact-nova://ia-design-language`** + **`suggest_components_for_ui`** + **`get_design_tokens`** | Visual fidelity, Layout chrome, Figma-trained tokens. |
| **Manager: executive demo / stakeholder overview** | **`interpret_user_request`** → scaffold or Dashboard (KPI + Chart) | Short non-technical replies. |
| **Backend: API admin / CRUD UI** | **`interpret_user_request`** → typed interfaces + DataTable/Form | Show API integration points. |
| **Frontend: components / scaffold / strict TS** | **`interpret_user_request`** → **`analyze_project_for_impact_nova`**, **`get_component_props`**, **`validate_snippet`** | Subpath imports, ag-grid-rules. Prompt: **scaffold-impact-nova-app** for new Vite app. |
| **Scaffold new Vite app** | **`scaffold_impact_nova_app`** or `npx create-impact-nova` | Auto: npm outside monorepo, `file:` inside. Override: `--from-npm` / `usePublishedPackages`. |
| **List all components** | `list_components` | Legacy flat list — prefer **`query_components`** for filtered discovery. |
| **Filter by capability / SSR / RSC** | `query_components` | `capabilities`, `ssrSupport`, `rscCompatibility`, `bundleTier`, `category`. |
| **Lightweight prop + runtime lookup** | `get_component_props` with `name` | Props, variants, deprecations, SSR/RSC fields — prefer over full `get_component`. |
| **Get one component spec** | `get_component` with `name` | Import, variants, sizes, subcomponents, runtime guidance, usage snippet. |
| **Deprecated prop aliases** | `get_deprecations` | Canonical names (`isDisabled` → `disabled`, etc.). |
| **Next.js / App Router placement** | Resource `impact-nova://ssr-rsc` | Client boundaries, `next/dynamic` for heavy components, serializable props. |
| **Design tokens** | `get_design_tokens` or resource `impact-nova://tokens` | Colors, spacing, radius, typography. |
| **Best practices** | `search_best_practices` or resource `impact-nova://best-practices` | Do's/don'ts, composition, tokens, i18n, classNames. |
| **Accessibility (optional)** | Resource `impact-nova://accessibility` | Optional a11y guidance: labels, keyboard, focus; use when you want to improve a11y. Not required. |
| **Troubleshooting** | Resource `impact-nova://troubleshooting` | Dual React/AG Grid, styles, font, Chart path, AG Grid license, i18n, React 19. |
| **App layout / architecture** | Resource `impact-nova://layout` or `get_real_world_patterns` with `topic: "layout"` | Layout patterns; manual fallback when scaffold is unavailable. |
| **Real-world patterns** | `get_real_world_patterns` with optional `topic` | Subpath imports, compound patterns (Filter, **DataTable+AG Grid**, Sheet, Empty, **Chart**, **layout**). Use `topic: "data-table"` or `topic: "chart"` or `topic: "layout"`. |
| **AG Grid / DataTable rules (mandatory)** | Resource `impact-nova://ag-grid-rules` | Use **only** AG Grid docs, **only** AG Grid API, **only** recommended patterns. When **ag-mcp** is installed, use it for AG Grid API/docs; use this MCP for Impact Nova wrappers. |
| **Suggest components for a UI** | `suggest_components_for_ui` with `description` (and optional `elements`) | Match screenshot or UI description to Impact Nova components; includes pattern hints (e.g. DataTable + AG Grid rules). |
| **Generate component usage** | `generate_component` with `name`, optional `variant`, `size`, `props` | For DataTable, still follow AG Grid rules (see `impact-nova://ag-grid-rules`). |
| **Generate page/section** | `generate_page` or prompt **Generate a page** | Full page with layout, i18n, a11y. |
| **Generate form** | Prompt **Generate a form** | Form with Impact Nova inputs and validation. |
| **Generate dashboard (table, filters, charts)** | Prompt **Generate a dashboard section** | DataTable/AG Grid, FilterPanel/FilterStrip, Chart, EmptyContainer. **Mandatory:** follow AG Grid rules; use ag-mcp for grid API when available. |
| **Charts** | `get_real_world_patterns` with `topic: "chart"` | Chart from impact-nova; for series/options use Highcharts docs. |
| **Command Palette / keyboard shortcuts** | Resource `impact-nova://command-palette` | Step-by-step guide: CommandPaletteProvider, useShortcut/useGlobalShortcut, scopes, multi-table, ShortcutSettings, Kbd. Implementation is more involved — always fetch this resource when implementing ⌘K palette or shortcuts. |
| **Validate a snippet** | **`validate_snippet`** with `snippet` | **Canonical** validation tool — imports, AST charter checks, tokens, i18n. Legacy alias: `validate_usage`. |
| **Consumer repo compliance** | `npx impact-nova-doctor` or `npm run doctor` | Scans `src/**` or `--diff origin/main` for mandate violations; see [doctor.md](../../../docs/guides/doctor.md). |
| **Install / configure Impact Nova** | `analyze_project_for_impact_nova` (pass `package.json` content) then `get_installation_and_config` | Versions, npm commands, CSS, font, i18n, optional ag-grid/highcharts. |
| **Migration from Impact UI** | Resource `impact-nova://migration` | Phases, component mapping, use with impact-ui-mcp-server. |
| **Query scaffold recipes** | `query_recipes` | Recipe-linked patterns for create-impact-nova (6 recipes). |
| **Generate Cursor rules** | `create_cursor_rules` | AGENTS.md-style rules from registry. |
| **Route user intent** | `interpret_user_request` | Persona detection + recommended tool order. |
| **Examples** | Resource `impact-nova://examples` | Copy-paste snippets (Button, Card, Dialog, setup). |

## Canonical agent workflow

1. **`query_patterns`** or **`query_recipes`** — composite UI patterns.
2. **`get_component_props`** — lightweight API + SSR/RSC lookup.
3. **`query_components`** — filter by capability or runtime placement.
4. **`get_deprecations`** — canonical prop names before codegen.
5. **`generate_component`** / **`generate_page`** — scaffold snippets.
6. **`validate_snippet`** — mandatory before shipping UI code.
7. **`npx impact-nova-doctor`** — consumer repo CI scan.

## DataTable / AG Grid — quick checklist

- Call **`get_real_world_patterns`** with `topic: "data-table"` for Impact Nova DataTable + column/cell-renderer patterns.
- Read **`impact-nova://ag-grid-rules`** for mandatory rules (AG Grid docs only, API only, no deviation).
- If **ag-mcp** is available: use its tools/resources for AG Grid API and column config; combine with this MCP for DataTable, `processBackendColumnDefs`, and cell renderers.
