Echo UI

com.echo-uiPublished by echo-ui.comOfficial publisherv0.3.5Updated Nov 7, 2026

A tactile React component library, and the design system that keeps your AI agent on-brand.

VerifiedStreamable HTTPWeb executableDeveloper ToolsMedia & Design

Overview

AI-generated overview

Echo UI's MCP server lets a coding agent look up Echo React components, check code against Echo's rules, and pick a visual style before writing UI.

What you can do
  • Search and read components: find the right component for a job, or fetch one component's full record, examples, props and anti-patterns
  • Look up design tokens: colour roles, sound names and motion vocabulary
  • Check code: run Echo's rules over a snippet and get findings with the Echo way to fix each
  • Check accessibility: the rules a consumer can still get wrong, plus a component's own test record
  • Find and apply styles: list Echo's styles, rank them against a product profile, validate a style file, and get the commands or theme CSS to wear one
When to use it
Use it when building a UI with Echo UI's React component library and you want the agent to consult the real registry instead of guessing props, tokens or accessibility rules. Also useful in web-only chat clients that cannot run the CLI, since the hosted endpoint offers the same checks.
Requirements
Either the hosted remote endpoint at mcp.echo-ui.com (no account, nothing to install) or the local npm package run through npx, which needs Node.js 20 or later. No API keys or environment variables are required; optional ECHO_CATALOG and ECHO_REGISTRY variables point it at a fork or local build.
Before you install
check_code sends the code you pass to the hosted server; the README says it is not stored and request logs keep only path, status and timing, but the hosting provider retains those logs with the caller's address for up to 7 days. The hosted endpoint rate-limits requests and refuses oversized code. Installing components and styles changes the user's project, so review the printed commands before running them.

Installation

In SourceWeft

  1. Open Echo UI in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.echo-ui%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "echo-ui": {
      "type": "http",
      "url": "https://mcp.echo-ui.com/mcp"
    }
  }
}

README

echo-ui-mcp

An MCP server for Echo UI. It gives a coding agent ten tools over the Echo UI registry, so the agent can look up a component's props, usage, accessibility notes and anti-patterns before it writes code with it, check what it wrote, and find and wear a style.

Install

Every client runs the same command:

json
{  "mcpServers": {    "echo-ui": {      "command": "npx",      "args": ["-y", "echo-ui-mcp"]    }  }}
  • Claude Code: claude mcp add echo-ui -- npx -y echo-ui-mcp
  • Codex: add it to ~/.codex/config.toml as [mcp_servers.echo-ui], with command = "npx" and args = ["-y", "echo-ui-mcp"].
  • Cursor: add the block above to .cursor/mcp.json.
  • VS Code: add it to .vscode/mcp.json, under servers instead of mcpServers.
  • Other clients: any client that runs a stdio MCP server takes the same command.

Requires Node.js 20 or later.

Hosted

For tools that only connect to a server on the web (ChatGPT, claude.ai, Lovable, v0, Bolt, Claude Design), the same tools run at https://mcp.echo-ui.com/mcp: nothing to install, no account. Add it as a custom connector (a remote MCP server) with that address, or:

  • Claude Code: claude mcp add --transport http echo-ui https://mcp.echo-ui.com/mcp
  • Cursor: { "mcpServers": { "echo-ui": { "url": "https://mcp.echo-ui.com/mcp" } } }

It reads the same published documents as the package, and keeps nothing it's sent: check_code reads your code and forgets it, and its request logs hold the path, the status and the timing, never a body. Cloudflare, which hosts it, keeps those logs, with the address a request came from, for up to 7 days (privacy policy). check_code takes up to 200,000 characters, a request past what that needs is refused with 413 before it's read, and one address can send 300 requests in ten seconds and about 2 MB of large code a minute, each whole 16 KB of a request counting (429 past either, with Retry-After).

In Claude and ChatGPT, with Echo's skills

Echo's plugin carries the hosted server and Echo's three skills (Echo UI, Design Eye and Style Fit) in one install: echo-ui.com/docs/plugin. In ChatGPT it's in the plugin directory. Until Claude's directory lists it too, it installs from the docs: the Claude ZIP for claude.ai and Claude Code, and the Codex ZIP for Codex and ChatGPT desktop.

Tools

ToolTakesAnswers with
search_componentsquery?The item for a job ("a settings toggle", "confirm a delete"), or a plain "Echo has nothing for this yet", then one line per matching component with its install command. The same answer as the CLI's which. With no query, every component.
get_componentnameThe full record: description, install command, usage, composition, examples, accessibility, motion & sound, props and anti-patterns. Accepts echo-hardware-button, hardware-button or HardwareButton.
get_tokens—The colour roles (--echo-*), sound names and motion names.
get_examplesnameJust the examples for one component.
get_accessibilityname?The rules a consumer of Echo can still get wrong. With a name, that component's own record of what was tested and what is not.
check_codecode, file?Echo's check on a piece of code: the same rules as npx echo-ui-cli check, against the default theme, each finding with the Echo way to fix it. For a tool with no terminal to run the CLI in.
list_stylesname?Echo's own styles, each with its one line and fingerprint; with a name, that style in full.
fit_stylesprofile, tolerance?, yours?Echo's styles and the builder's own (by fingerprint), ranked against where the product sits on the seven axes. The same arithmetic as npx echo-ui-cli style fit.
check_stylestyleWhether a style.json is one Echo can apply, as npx echo-ui-cli style check says it.
wear_stylename or style, files?A link that makes the Echo site wear the style (one of Echo's whole, your own in its colours), the command that puts it in a project, and, for a project with no terminal, its theme CSS and DESIGN.md.

When it connects, the server also sends instructions: how to set the project up, how to wire the theme and sound, and the corrections agents most often need (Base UI's package is @base-ui/react; Echo components are installed with npx echo-ui-cli add, not npm install).

get_component returns the same text as the component's page in the Echo UI docs and its entry in llms-full.txt, plus what the component ships as: its version, the echo-ui-core range it needs, and its accessibility record. That half is read from the same registry echo-ui-cli installs from, with the same client, so the two cannot disagree.

Configuration

The server reads two published documents and re-reads them after five minutes: the catalog at https://echo-ui.com/r/catalog.json and the registry at https://echo-ui.com/e. To point it at a fork or a local build, set either:

json
{  "mcpServers": {    "echo-ui": {      "command": "npx",      "args": ["-y", "echo-ui-mcp"],      "env": {        "ECHO_CATALOG": "/absolute/path/to/catalog.json",        "ECHO_REGISTRY": "https://example.com/e"      }    }  }}

If the registry cannot be reached the server still answers from the catalog, with the versions the catalog was built at. A copy it has already read keeps answering while its source can't be read, and is tried again every minute. If a file does not match the hash the registry published for it, the server says so rather than answering.

License

MIT

Source: mcp/README.md at commit 9f8a4fc

Tools

10

search_components

Search Echo UI components

Find the Echo UI item for a job ("a settings toggle", "confirm a delete") or by name. Leads with the best fit, or says plainly that Echo has nothing for the job yet, then lists every match with its install command. The cheapest way to find out what exists, and the first call before writing Echo code.

Parametersquery

get_component

Get an Echo UI component

The full record for one component: description, install command, usage (imports + smallest working snippet), composition (part tree), examples, accessibility, motion & sound, prop table and anti-patterns. It's for before writing code that uses the component: the anti-patterns are the part a model gets wrong from priors.

Parametersnamerequired

get_tokens

Get Echo UI tokens

The token families: Layer-3 semantic colour roles (--echo-*), sound names, motion's whole vocabulary — the motion tokens, the spring presets, the morph feels and the CSS duration and ease steps — and the shadow recipes. Any name a component's record lists under Motion is here. Echo components are styled and moved only through these: a hex, a duration or a shadow written by hand, or a token name that isn't here, is off Echo's system.

Takes no parameters.

get_examples

Get usage examples

Just the usage examples for one component, without the rest of its record. For when the component is already chosen and only its calling convention is needed.

Parametersnamerequired

get_accessibility

Get Echo UI accessibility rules

The accessibility rules a consumer of Echo can still get wrong — names on controls, form errors, announcements, focus and target size — and, with a name, what that component's accessibility was actually tested against. Echo guarantees WCAG 2.2 AA; this is the part the guarantee cannot cover for you. It's for before building a form, a dialog or anything icon-only.

Parametersname

check_code

Check code against Echo

Echo's check on a piece of code you've written or are about to write: colours, spacing, radii, shadows and timing off Echo's scales, raw elements where Echo has the component, props a component doesn't take, controls without a name, markup a keyboard or screen reader can't use, restyling Echo from outside, and the screen rules one file can show. The same rules as `npx echo-ui-cli check`, which runs on a whole project with its own theme; this one uses the default theme. Each finding says the Echo way to fix it.

Parameterscoderequiredfile

list_styles

List Echo UI styles

Echo's own styles, the looks Echo publishes, each with its one line and its fingerprint on the seven axes styles are placed on; or, with a name, one of them in full: its settings, rules, refusals, fonts, decisions and the slop police's word. The builder's own styles aren't here: they're in their library or the conversation, and fit_styles weighs them with Echo's.

Parametersname

fit_styles

Rank styles for a product

Style Fit's shortlist: Echo's styles, and the builder's own passed in, measured against where a product sits on the seven axes (warmth, volume, density, formality, era, craft, ornament) and put in order: a style that misses a locked axis last, then least past tolerance first, then nearest. The same arithmetic as `npx echo-ui-cli style fit`. It orders; it doesn't pick.

Parametersyoursprofilerequiredtolerance

check_style

Check a style

Whether a style.json is one Echo can apply, as `npx echo-ui-cli style check` says it: what stops it, the device it makes (light or dark), what the theme corrects for AA contrast, what the slop police stops (with the question for the builder) or the builder kept, and the decisions it leaves open.

Parametersstylerequired

wear_style

Wear a style

What a style gives a project: a link that makes the whole Echo site wear its colours, the commands that put it in a project, and, for a project without a terminal, its theme CSS and a DESIGN.md with its rules. One of Echo's styles by name, or the builder's own style.json. A style the slop police stops isn't worn; the answer says what to ask the builder.

Parametersnamefilesstyle

Version history

1
  1. v0.3.5LatestNov 7, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts