Open Components

com.uxfrontPublished by uxfront.comv1.0.0Updated Oct 24, 2026

Guidelines for UI components with a perfect UX, DX and AX, whether humans or AI agents write them.

VerifiedStreamable HTTPWeb executableKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

A remote MCP server that gives assistants the Open Components UI standard: component contracts, checklist rules, docs and reference implementations.

What you can do
List covered components, foundations and roadmap items, and search the whole standard for pages and rules by topic or ID. Read a component or foundation contract as YAML: API, DOM contract, tokens and every checklist rule with its ID, level and scope. Read docs pages as markdown, whole or by section, filtered to one framework's examples. List checklist rules filtered by component, ID, scope, layer, level or check. Fetch a shipped component's reference implementation with its tests, helpers and theme tokens.
When to use it
Use it when building or reviewing UI components that should follow the Open Components standard, or when you need the reasoning, a rule ID to cite, or a working reference implementation for a component such as Button.
Requirements
A remote endpoint at mcp.opencomponents.dev over streamable HTTP; the README says it is free and needs no sign-in. No packages, environment variables or headers are declared.
Before you install
Read-only access to published documentation and code; no credentials, payments or write actions are declared. Content returned is third-party guidance, so review it before applying it to your codebase.

Installation

In SourceWeft

  1. Open Open Components 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.uxfront%2Fopen-components/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": {
    "open-components": {
      "type": "http",
      "url": "https://mcp.opencomponents.dev/mcp"
    }
  }
}

README

[Open Components]

Open Components

Open Components is the standard for perfect UI components: guidelines for building UI components with a perfect user experience, developer experience and agentic experience, whether humans or AI agents write them.

Open Components is part of UXFront, written and maintained by @alexgrozav.


[Open Components - The standard for perfect UI components]


Homepage · Documentation · Changelog · llms.txt · Issue Tracker


[Website] [llms.txt] [Last commit]



Table of contents

The standard

The standard has three layers, one for each audience a component serves. A component meets the standard when it meets all three.

  • User experience (UX): components behave the way people expect them to, with any input, on any device and for every ability. Accessible, predictable, every state, adaptive.
  • Developer experience (DX): one clear API, learned once and used everywhere. Knowing one component means knowing them all. Consistent, type-safe, composable, controllable.
  • Agentic experience (AX): components that AI agents can read, reason about and build with, so their output meets the same bar as yours. Semantic, described, deterministic, verifiable.

Learn the guidelines once, then hold every component to the same high standards, whether you or your agents write it.

Reading the standard

Start with the Introduction, which walks through the three layers and what each one asks of a component. The guidelines live as markdown in content/docs/, so you can also read them right here on GitHub.

For agents

If your agent supports MCP, connect it to our MCP server at https://mcp.opencomponents.dev/mcp, free and with no sign-in. It gives agents the contracts, every rule and the docs a section at a time, as tools. The MCP Server page shows how to connect Claude, Codex, Cursor, VS Code, Gemini CLI, Grok, Hermes Agent and other clients.

Or install our agent plugin, in plugins/open-components, which connects the same server along with skills that build and review components the way the standard asks. It's an Agent Plugin, so it works in VS Code, GitHub Copilot, Cursor, Codex, Claude Code and other clients that support the format. The Agent Plugin page shows how to install it.

Every page of the documentation is also published as markdown, so agents can read the standard and check their work against it:

  • https://opencomponents.dev/raw/<path>.md holds one page, as in /raw/docs/getting-started/introduction.md for the introduction.
  • https://opencomponents.dev/raw/<path>.yaml holds a page's contract, with every rule from its checklist, as in /raw/docs/components/button.yaml. It's every requirement in a fraction of the page's length.
  • /schemas/contract.json is the JSON Schema every contract follows, so you can validate them, and contracts of your own. Each contract names it on its first line, so editors that use the YAML language server check it as you type.
  • /llms.txt lists every page and every contract.
  • /llms-full.txt holds them all in one file. Point your agent at it to give it the whole standard in one request.

Bugs and feature requests

Found a bug on the site, a gap in the guidelines or an idea for a new one? Please first search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

Contributing

Please read through our contributing guide. There you can find how to run the site locally, edit the guidelines and deploy. Everyone taking part in the project agrees to follow our Code of Conduct.

Thanks goes to these wonderful people!

Creator

Alex Grozav

If you use Open Components in your daily work and feel that it has made your life easier, please consider sponsoring me on GitHub Sponsors. 💖

Copyright and license

Copyright © 2026 UXFront. The site code is released under the MIT License. The guidelines in content/ and the agent plugin in plugins/open-components/ are released under the Creative Commons Attribution 4.0 License: you can share and adapt them, commercially too, as long as you credit Open Components.

Source: README.md at commit 95746d1

Tools

6

get-contract

Get Contract

Returns the contract of a component or a foundation, as YAML: its API (props, slots and events), its DOM contract (element, role, states, keyboard and parts), its tokens, and every rule in its checklist, each with a stable ID (like button/keep-focus), a level (must or should), a scope (component, usage or both) and how to check it. It holds every requirement in a fraction of the page's length, and it's the same file as https://opencomponents.dev/raw/docs/<path>.yaml. WHEN TO USE: first, before you build, review or explain a component or its tokens. WHEN NOT TO USE: for some of the rules only (by scope, layer, level or check), use list-rules. For the reasoning or the examples behind a rule, use get-page with its sections.

Parameterscomponentrequired

get-page

Get Page

Reads a docs page as markdown, whole or just the sections you name. Component pages explain why each rule exists, with examples in React, Vue, Svelte, Angular, Solid, Astro and Vanilla: pass a framework to keep only its examples. WHEN TO USE: for the reasoning, an example or the details behind a rule (like the sections ["Loading"] of the button's page), or for a page without a contract, like the introduction or the roadmap. WHEN NOT TO USE: for the requirements alone, use get-contract or list-rules, which are much shorter. To find which page or section covers a topic, use search-docs. A page longer than about 8,000 tokens, like the button's, returns its outline instead: every heading with its anchor and length, so you can ask for the sections you need. So do sections that are too long to return together.

Parameterspathrequiredsectionsframework

get-reference-implementation

Get Reference Implementation

Returns a shipped component's reference implementation: a Vue 3 component that meets every rule in its checklist, the tests that prove it, the helpers it shares with other components and its theme tokens. The live examples on the site run on this code. WHEN TO USE: to build a component that meets the standard, in Vue or by porting it and its tests to another framework, or to see how a rule is met in code. WHEN NOT TO USE: for the requirements, use get-contract. For how the component is used in another framework, use get-page with that framework.

Parametersfilescomponentrequired

list-components

List Components

Lists what the Open Components standard covers: the components that have shipped (like Button), the foundations every component follows (like Design Tokens), and the components planned on the Roadmap. WHEN TO USE: to check whether a component has a standard yet, to get the name the other tools take for it, or to see what's planned. WHEN NOT TO USE: if you already know the component, call get-contract directly. To find a topic in the docs, use search-docs. Shipped entries come with their page, their contract and how many rules they have. Planned ones have no page, contract or rules yet: hold them to the three layers and Design Tokens, following the Button's structure, as the build-component prompt does.

Parametersstatus

list-rules

List Rules

Lists checklist rules as records, filtered by component, ID, scope, layer, level or check. Each rule has a stable ID to cite in reviews and commits, its level (must or should), its scope, its requirement, how to check it (like a unit test, a review or axe's button-name rule) and a link to it. WHEN TO USE: to review code rule by rule, to get only the rules that apply to a task, to look rules up by ID, or to find the ones a tool can check. Pass scope ["component", "both"] to build or review a component, and ["usage", "both"] to review a screen that uses it. WHEN NOT TO USE: for a component's API, DOM contract and tokens, use get-contract, which has every rule too. It returns up to 50 rules at a time, and total counts every rule that matches. When there are more, pass nextOffset as offset, with the same filters, to get the next page. A component meets the standard when it meets every must rule. Each should rule is expected unless there's a good reason not to follow it.

Parametersidschecklayerlevellimitscopeoffsetautomatedcomponent

search-docs

Search Docs

Searches the whole standard, every section of every page and every checklist rule, and returns the best matches: where each one is, a short excerpt, and for rules, their ID, level and scope. WHEN TO USE: to find where a topic is covered when you don't know the page or the section, like "focus after delete", "spinner", "aria-pressed" or "dark mode". Then read a section with get-page, or rules with list-rules. WHEN NOT TO USE: to list a component's rules, use list-rules. To see which components there are, use list-components. Search for a few specific words rather than a whole question.

Parameterstypelimitqueryrequiredcomponent

Version history

1
  1. v1.0.0LatestOct 10, 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