# tesserai (npm · @tesserai/cli)

Your project's design system for coding agents: tokens, components, contrast checks, guidelines.

- Trust score: 83/100 (high trust)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `@tesserai/cli`: 83/100 (this document), [markdown](https://verifymcp.io/servers/design-tesserai-tesserai/tesserai-cli.md), [page](https://verifymcp.io/servers/design-tesserai-tesserai/tesserai-cli)

## Channel facts

- Registry: `npm`
- Package: `@tesserai/cli`
- Version: `0.2.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 38 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2486 tokens (~146/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 88/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 65% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the tesserai MCP server?

tesserai runs locally as an npm package, launched with npx -y @tesserai/cli. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add design-tesserai-tesserai -- npx -y @tesserai/cli
```

### Cursor

```json
{
  "mcpServers": {
    "design-tesserai-tesserai": {
      "command": "npx",
      "args": [
        "-y",
        "@tesserai/cli"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "design-tesserai-tesserai": {
      "command": "npx",
      "args": [
        "-y",
        "@tesserai/cli"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add design-tesserai-tesserai -- npx -y @tesserai/cli
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "design-tesserai-tesserai": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@tesserai/cli"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add design-tesserai-tesserai --command npx --arg -y --arg @tesserai/cli
```

### Hermes

```yaml
mcp_servers:
  design-tesserai-tesserai:
    command: "npx"
    args: ["-y", "@tesserai/cli"]
```

### Netclaw

```json
{
  "McpServers": {
    "design-tesserai-tesserai": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@tesserai/cli"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add design-tesserai-tesserai -t stdio -c npx -a -y @tesserai/cli
```

### Other

```json
{
  "mcpServers": {
    "design-tesserai-tesserai": {
      "command": "npx",
      "args": [
        "-y",
        "@tesserai/cli"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-03 (score 83, +1)

- [security] Stability: 0.97 → pass

### 2026-11-02 (score 82, −1)

- [functional regression] Security disclosure: unverified → fail
- [functional] Stability: pass → 0.97

### 2026-11-01 (score 83, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-10-27 (score 83, +1)

- [security] Stability: 0.97 → pass

### 2026-10-25 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-18 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (17)

### `import_design_system` (~1049 tokens)

Import a design system

Bring this project's existing design system (its look: colors for light and dark, fonts, body text size, corners, spacing, shadows) into tesserai as a new system. It never changes the project. Read the project first, then call this once with what you found.

This tool already reads stylesheets (CSS variables, Tailwind v4 @theme, Sass/Less variables, plain rules), design-token files, next/font and Tailwind v3 configs by itself. Add what lives in code:
\- antd: the ConfigProvider theme / ThemeConfig.token (colorPrimary, colorError, colorSuccess, colorWarning, colorBgBase, colorTextBase, colorBorder, borderRadius, fontFamily, fontSize).
\- MUI: createTheme palette (primary.main, primary.contrastText, error.main, background.default and .paper, text.primary, divider, per mode), typography.fontFamily/fontSize, shape.borderRadius, spacing.
\- Chakra: extendTheme colors, fonts, radii, semanticTokens (default / _dark), and components' defaultProps colorScheme: a solid button is the scheme's 500 with white text in light, 200 with gray.800 text in dark.
\- Tailwind v3: tailwind.config theme.extend (colors, fontFamily, borderRadius) and the CSS variables it points at.
\- styled-components, Emotion, Theme UI: the theme objects given to ThemeProvider; follow imports to the palette they name.
\- Homegrown: color constants and the inline styles of buttons, cards, inputs and the page body.
\- Fluent UI v9: createLightTheme(brand) / createDarkTheme(brand) take a 16-step ramp; the primary button is brand[80] in light and brand[70] in dark (cite those ramp entries), plus any overrides spread over the theme.
\- Radix Themes: <Theme accentColor grayColor radius>; the primary is the accent scale's step 9 with --<accent>-contrast on it, text is gray-12, secondary text gray-a11; a custom palette file overrides those scales. Radix's own panel and surface colors aren't the app's card: leave card out unless the app sets one.
\- Angular Material (M3): mat.theme / a generated palette file gives tonal pa…

Input parameters:

- `dryRun` (boolean): Only report what would come across
- `into` (string): A system imported before (its link, /systems/<id>): update it with what the code changed, for the person to review, instead of making a new one
- `name` (string): The system's name (default: from package.json)
- `notes` (array): What the person should know that isn't a value, e.g. 'Dark mode comes from antd's darkAlgorithm, so it's filled in.'
- `tokens` (object, required): A DTCG document of the look you found, every token with $extensions['tesserai.source'] = 'path:line'

### `outline` (~68 tokens)

Design system outline

A compact outline of the design system: palettes, meanings (intents), surfaces, type, spacing, radius, and every component with its parts and options.

Input parameters:

- `refresh` (boolean): Wait for a fresh remote check (up to 5s). Omit for immediate local context and background freshness.

### `get_tokens` (~52 tokens)

Get tokens

Read the tokens under a path prefix: values, per-mode values, and whether they were set by hand.

Input parameters:

- `prefix` (string, required): Path prefix, e.g. color.brand, intent.primary, space, button

### `get_component` (~31 tokens)

Get a component

Read one component's full definition: parts, axes, and every recipe layer.

Input parameters:

- `component` (string, required)

### `explain` (~51 tokens)

Explain a token

Follow a token's references to its final value, in light or dark.

Input parameters:

- `path` (string, required): A token path, e.g. intent.primary.solid or button.height.md
- `scheme` (string)

### `usage` (~31 tokens)

Token usage

What depends on a token: the tokens that reference it and the components it styles.

Input parameters:

- `path` (string, required)

### `check_contrast` (~21 tokens)

Check contrast

Run the contrast checks and list failing pairs with suggested fixes.

### `list_overrides` (~21 tokens)

List overrides

What has been customised compared with tesserai's defaults.

### `guidelines` (~275 tokens)

Design guidelines

Design guidelines on a topic (WCAG, Apple, Material and settled practice, with sources): the rule, why it matters, where it comes from. Read it before answering how a design system should do something, or making a change a guideline speaks to.

Input parameters:

- `topic` (string, required): color: Palettes, color roles and scale steps, meaning colors, color alone; contrast: Text and UI contrast ratios, in light and dark; type: Type scale, sizes, line height, line length, weights; spacin…

### `list_operations` (~52 tokens)

List operations

Every operation apply_changes accepts, by group, with what it does. describe_operation gives one operation's exact input.

Input parameters:

- `group` (string): Only this group, e.g. palette, intent, type, component

### `describe_operation` (~24 tokens)

Describe an operation

One operation's input, as JSON Schema.

Input parameters:

- `name` (string, required)

### `apply_changes` (~98 tokens)

Apply changes

Change the design system with operations, applied in order, all or nothing, and checked before anything is written. Then the theme CSS and components are regenerated; files the developer edited are kept and the new version is written beside them. With preview: true, nothing is written and the result says what would change.

Input parameters:

- `ops` (array, required)
- `preview` (boolean)
- `summary` (string): One sentence saying what the change does

### `scan` (~141 tokens)

Scan the project

How the app uses the design system: each component's uses and files, most used first, with each option's uses (a use without it counts for the default); components never used; options no use sets; overrides (className, class, style or sx restyling a component, by what they change; placement isn't counted); suggestions where the same override repeats; generated files edited by hand; and hard-coded colors and sizes with the token to use. Act on it: a suggestion is a change to propose to the system (a variant, a size, the component's corners), not to the app; confirm with the person before removing options or components.

### `upload_scan` (~80 tokens)

Upload a scan

Scan the app and keep the result with its design system in the builder (Pro), where the team sees usage beside the system and how it changes over time. Sends counts, kinds and class names only: no source, no paths but edited generated files. Needs the project to follow its system's account link and a CLI login. Only when the person asks.

### `sync` (~92 tokens)

Sync the design system

Bring the project up to date with its design system: for a project that follows a tesserai link, pull the latest version first (the latest release of a private system); then regenerate the theme CSS and components. Files the developer edited are kept; the new version goes beside them. Call it before building UI when outline says the design changed.

Input parameters:

- `dryRun` (boolean): Show the planned file changes without writing.

### `component_guide` (~97 tokens)

Component guide

How to build with the system's components. Without a component: each one with what it's for and its import. With one: its import, its props and their allowed values, and an example written for this project (its library and class prefix). Use it before writing UI, so new code uses the components rather than hand-styled elements.

Input parameters:

- `component` (string): A component id, e.g. button, field, select

### `example_page` (~63 tokens)

Example page

A whole page written with this system's components, for this project (its library and class prefix): a pattern to follow when building similar UI. Pages: sign-in, settings, dashboard, data-list (sign-in and settings are forms).

Input parameters:

- `page` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/design-tesserai-tesserai/tesserai-cli#diagnostics

## Score history

- 2026-11-05: 83
- 2026-11-04: 83
- 2026-11-03: 83
- 2026-11-02: 82
- 2026-11-01: 83
- 2026-10-31: 83
- 2026-10-30: 83
- 2026-10-29: 83
- 2026-10-28: 83
- 2026-10-27: 83
- 2026-10-26: 82
- 2026-10-25: 82
- 2026-10-24: 81
- 2026-10-23: 81
- 2026-10-22: 80
- 2026-10-21: 80
- 2026-10-20: 80
- 2026-10-19: 79
- 2026-10-18: 79
- 2026-10-17: 78
- 2026-10-16: 78
- 2026-10-15: 77
- 2026-10-14: 77
- 2026-10-13: 76
- 2026-10-12: 76
- 2026-10-11: 75
- 2026-10-04: 69
- 2026-10-03: 69
- 2026-10-02: 69
- 2026-10-01: 69

## Common questions

### What is the tesserai MCP server?

tesserai is an MCP server listed in the public MCP registry as design.tesserai/tesserai. Your project's design system for coding agents: tokens, components, contrast checks, guidelines. This page covers its npm package (@tesserai/cli).

### Is the tesserai MCP server safe to use?

tesserai scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the tesserai MCP server expose?

tesserai exposes 17 tools: import_design_system, outline, get_tokens, get_component, explain, and 12 more. Their descriptions and schemas cost roughly 2,246 tokens of context every time the server is loaded.

### Is the tesserai MCP server still maintained?

tesserai is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the tesserai MCP server under?

tesserai declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@tesserai/cli
- Socket report: https://socket.dev/npm/package/@tesserai/cli
- Repository: https://github.com/tesseraihq/tesserai
- Website: https://tesserai.design/docs
- Changelog RSS feed: https://verifymcp.io/servers/design-tesserai-tesserai/tesserai-cli.xml
- Changelog JSON feed: https://verifymcp.io/servers/design-tesserai-tesserai/tesserai-cli.json
- HTML version of this page: https://verifymcp.io/servers/design-tesserai-tesserai/tesserai-cli
