c2n Web Components

io.github.code2nguyen由 GitHub 账号 code2nguyen 发布v1.0.23更新于 Nov 7, 2026

Exact APIs, examples, theme tokens and markup validation for the c2n (c2-*) Lit web components.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

本地 MCP 服务器,为助手提供 c2n(c2-*)Lit Web 组件的 API、示例、主题令牌与标记校验。

可以做什么
  • 列出并搜索组件,含标签、包、分类、描述与已安装版本
  • 查看单个组件的完整 API:属性、插槽、事件、原生 CSS 部件及带主题令牌的 CSS 变量
  • 浏览用法示例与画廊样式,并跨所有组件搜索样式
  • 获取精选预设与 --c2-theme--* 令牌,含安装与映射片段
  • 根据覆盖项、预设或画廊卡片生成 CSS 类、HTML 加样式、Lit 子类或 JSON 形式的变体代码
  • 通过工具或命令行,按已安装组件 API 校验标记与 CSS
适用场景
在使用 c2n Web 组件构建或定制界面时适用:希望助手引用准确的组件 API、复制画廊样式、生成变体,或检查标记中未知的标签、属性、插槽、事件与变量。
运行要求
以 stdio 在本地运行,通常通过 npx 启动 @c2n/mcp npm 包,因此需要 Node.js 与 npm。应在项目目录中运行;可选环境变量 C2N_PROJECT_ROOT 指定报告哪个项目已安装的 @c2n/* 包。注册表已随包打包,安装后调用工具无需网络。
安装前请注意
该服务器只提供组件事实,不会安装包或直接修改应用。校验会读取项目源文件;钩子模式还会从标准输入读取载荷,并把结果写入标准错误、以退出码 2 返回。安装可选的 skill 包会在项目设置中注册 Claude Code 钩子。

安装

在 SourceWeft 中

  1. 打开 控制台中的 c2n Web Components,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@c2n/mcp

Model Context Protocol server that exposes the c2n web components to AI agents: component APIs (attributes, slots, events, native CSS parts, CSS variables with their theme tokens), usage and gallery examples, curated presets, the @c2n/theme tokens, variant code generation and the application workflow guides. Everything is bundled in data/registry.json, so it works offline in any project.

[c2n Web Components MCP server]

Use

The server uses stdio and can be launched by any MCP host:

bash
npx -y @c2n/mcp

Claude Code project .mcp.json:

json
{ "mcpServers": { "c2n": { "type": "stdio", "command": "npx", "args": ["-y", "@c2n/mcp"] } } }

Codex project .codex/config.toml:

toml
[mcp_servers.c2n]command = "npx"args = ["-y", "@c2n/mcp"]

Google Antigravity project .agents/mcp_config.json uses the same mcpServers command/args structure as the Claude example. The @c2n/skill package can install the skill and merge these configurations automatically.

Run the server from a project directory: it reports which @c2n/* packages are installed and serves the bundled API when the installed version differs. The registry is packaged locally, so tool calls do not require network access after installation.

Use c2n-mcp --version to inspect the installed server version and c2n-mcp --help for CLI usage.

The MCP server supplies structured component facts; it does not install component packages or edit an application by itself. Pair it with @c2n/skill when you also want the agent to follow c2n's application, theming and variant conventions. See the AI tools guide for the complete setup and example prompts.

Verify the connection

Restart the agent after adding its MCP configuration, then ask it to use the c2n MCP server to list components or inspect c2-button. A connected client should expose the tools below and report @c2n/* packages installed in the current project. If the server cannot start, run npx -y @c2n/mcp --version in that project to distinguish an npm/runtime problem from an MCP client configuration problem.

Tools

ToolPurpose
list_componentsEvery component with tag, package, category, description, installed version
search_componentsFree-text search across names, descriptions, attributes, slots, events, examples, icons
get_componentFull API of one component, CSS variables grouped by part/state with their theme token
get_examplesUsage rows and gallery cards; view: "index" lists every look (summary, screenshot)
search_examplesFind a look across every component's gallery ("glass", "pill", "underline")
get_presetsCurated presets as CSS variable values
get_themeThe --c2-theme--* tokens, install/mapping snippets; per-component mapping with tag
generate_variantCSS class / HTML + style / Lit subclass / JSON from overrides, a preset or a gallery card
validate_markupChecks markup/CSS you wrote: native controls to replace, unknown tags/attributes/slots/events/variables
get_workflow_guideworkflow, theming, variant-components, frameworks

Gallery cards are served with a generated summary of what they change and CSS whose colours follow the --c2-theme--* tokens wherever a literal equals a token's value (var(--c2-theme--color-outline, #d4d4d8)), so a copied card follows the application's theme and dark mode. Each card also links light and dark PNG captures hosted with the docs site (gallery-shots/<component>/<slug>.<theme>.png, written by apps/ui/scripts/gallery-shots.mjs in the Pages deploy).

Validate from the command line

validate_markup is also a CLI, for CI and editor hooks. It reads HTML, JSX/TSX, Vue, Svelte, Astro, Angular and Lit templates and CSS, and checks them against the API of the @c2n/* packages the project has installed:

bash
npx -y @c2n/mcp validate src            # exit 1 on errorsnpx -y @c2n/mcp validate src --strict   # warnings fail too (native controls, box styling on a c2 host)npx -y @c2n/mcp validate --hook         # Claude Code PostToolUse hook: reads the payload on stdin

It reports native <button>/<input>/<select>/<textarea>/<dialog>/<details>/<progress> elements that a c2-* element replaces, unknown c2-* tags, attributes, slots and --c2-* variables (with "did you mean"), events a c2-* element does not fire (with its event list), a static camelCase attribute the element ignores (rowKey for row-key), and box styling on a c2-* host (border, padding, background, box-shadow, outline; a radius alone is fine). A line holding c2n-ignore, or the line after a comment holding it, is skipped. In hook mode the findings go to stderr with exit code 2, which Claude Code hands back to the agent; npx -y @c2n/skill install registers that hook in .claude/settings.json.

Resources: c2n://components, c2n://components/{tag}, c2n://theme, c2n://guide/{topic}.

Development

  • data/registry.json is an ignored build artifact. npm run build:tools (repo root) regenerates it from the component manifests, docs content, presets and theme, then compiles dist/ and refreshes the committed skill fallback.
  • dev, inspect, smoke and npm pack automatically build the registry when needed.
  • npm run smoke -w packages/tools/mcp spawns the server over stdio and checks every tool.
  • npm run inspect -w packages/tools/mcp opens the MCP Inspector against the source entry (node src/cli.ts, Node 24 type stripping).

来源:packages/tools/mcp/README.md,提交 14ff619

工具

10

list_components

List components

Lists every c2n component (tag, package, category, one-line description, installed version in the current project).

输入参数formatkeywordcategoryinstalledOnly

get_component

Get component API

Full API of one component: install/import lines, attributes, slots, events, native CSS parts, CSS variables grouped by semantic target and state (with the theme token each follows), composition and preset names. Examples are served by get_examples.

输入参数tag必填formatinclude

search_components

Search components

Free-text search across component names, descriptions, attributes, slots, events, example labels and icon names. Use it to find the component for a UI need ("dropdown", "dialog", "avatar with status", "arrow icon").

输入参数limitquery必填

get_examples

Get examples

Markup examples of a component: usage rows from the docs, styled gallery cards (the looks shown on the docs site, each with a summary of what it changes and light/dark screenshots) and the landing preview. Start with `view: "index"` to see every look on one page, then fetch the chosen card by its slug.

输入参数tag必填kindviewlabellimitqueryformatoffsetsection

search_examples

Search gallery looks

Search every component's gallery for a look or a use case ("compact", "glass", "pill", "danger", "underline input", "KPI"): returns matching cards across components with their summary and screenshot. Fetch one with get_examples `label: <slug>`.

输入参数taglimitquery必填

get_presets

Get presets

Curated presets of a component ("inspiration" looks): base markup plus each preset as CSS variable values and attributes.

输入参数tag必填nameformat

get_theme

Get theme tokens

The @c2n/theme design tokens (--c2-theme--*) with light/dark defaults, how to install and map your own tokens, and dark mode. With `tag`: which of that component's variables follow which token.

输入参数tagformat

generate_variant

Generate a variant component

Turns CSS variable / attribute overrides of a component into copy-paste code: a CSS class, HTML + <style>, a Lit subclass registered under your own tag, or JSON. Validates variable and attribute names against the component API. Start from a curated preset with `preset`, or from a gallery card with `example` (its slug or label).

输入参数csstag必填htmlname必填formatpresetexampleattributes

validate_markup

Validate markup

Checks HTML, JSX, Vue, Svelte, Astro, Angular or Lit markup and CSS you wrote against the installed c2n API: native controls a c2-* element replaces (<button>, <input>, <select>, <textarea>, <dialog>, <details>, <progress>), unknown c2-* tags, attributes, slots, events and --c2-* variables (with "did you mean"), and box styling on a c2-* host. Lists the imports that register the elements used. Call it on every file you write before finishing.

输入参数code必填formatfilename

get_workflow_guide

Get workflow guide

The c2n application workflow guides: `workflow` (theme once, use tags, name what repeats), `theming`, `variant-components`, `frameworks` (plain HTML, Lit, Astro, React, Vue, SSR).

输入参数topic

版本历史

7
  1. v1.0.23最新Nov 7, 2026
  2. v1.0.22Nov 7, 2026
  3. v1.0.21Nov 5, 2026
  4. v1.0.20Nov 3, 2026
  5. v1.0.19Nov 3, 2026
  6. v1.0.18Oct 29, 2026
  7. v1.0.17Oct 25, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分