loading…
Search for a command to run...
loading…
Exposes SigmaUI Design System components to AI assistants, providing tools for component documentation, search, usage examples, and design tokens to accelerate
Exposes SigmaUI Design System components to AI assistants, providing tools for component documentation, search, usage examples, and design tokens to accelerate Vue 3 and Nuxt 3 UI development.
Servidor MCP (Model Context Protocol) que expõe os componentes do SigmaUI DS para assistentes de IA consultarem durante o desenvolvimento de telas Vue 3 e Nuxt 3.
| Tecnologia | Papel |
|---|---|
Bun >= 1.1 |
Runtime, bundler, test runner e gerenciador de pacotes |
| Hono + @hono/mcp | Framework HTTP + adaptador MCP |
@modelcontextprotocol/sdk ^1.29 |
SDK MCP (tools, resources, prompts) |
AI SDK (ai, @ai-sdk/google, @ai-sdk/anthropic, @ai-sdk/openai) |
Curadoria automática provider-agnostic |
Zod ^4.0 |
Validação de schemas |
| Prettier | Formatação de SFC (Vue) e TypeScript gerado |
| @vue/compiler-sfc | Parser oficial para extração de slots via AST |
git clone <url-do-repositorio>
cd sigmaui-ds-mcp-server
bun install
cp .env.example .env
bun run dev
O servidor sobe em http://localhost:3333.
docker compose up -d
O script
catalog:generateprecisa de acesso ao repositóriopd-sigmaui-ds— rode-o localmente antes de buildar a imagem.
| Script | Descrição |
|---|---|
bun run dev |
Desenvolvimento com hot-reload (HTTP) |
bun run start |
Produção (HTTP) |
bun run stdio |
Integração local com IDEs/CLIs (stdio) |
bun run inspect |
MCP Inspector |
bun run catalog:generate |
Gera e curada componentes no catálogo |
bun run test |
Executa testes |
bun run test:watch |
Testes em modo watch |
bun run test:coverage |
Testes com cobertura |
| Variável | Padrão | Descrição |
|---|---|---|
PORT |
3333 |
Porta do servidor HTTP |
ALLOWED_ORIGINS |
http://localhost |
Origens CORS (separadas por vírgula) |
SIGMAUI_DS_PATH |
../pd-sigmaui-ds |
Caminho para o repositório do DS |
SKIP_CURATE |
false |
Pula curadoria IA |
CURATE_PROVIDER |
google |
Provider: google, anthropic ou openai |
CURATE_MODEL |
gemini-2.5-flash |
Modelo do provider |
GOOGLE_GENERATIVE_AI_API_KEY |
— | API key Google AI Studio |
ANTHROPIC_API_KEY |
— | API key Anthropic |
OPENAI_API_KEY |
— | API key OpenAI |
| Ferramenta | Parâmetros | Descrição |
|---|---|---|
list_components |
category? |
Lista componentes com filtro por categoria |
get_component |
name |
Documentação completa: props, eventos, slots, exemplo |
search_components |
query |
Busca textual por nome, descrição ou categoria |
get_usage_example |
name, framework? |
Exemplo SFC completo (vue/nuxt) |
get_design_tokens |
— | Variantes de cor e tamanhos |
get_form_pattern |
fields, mode? |
Padrão de formulário com vee-validate + Zod |
suggest_components |
description |
Sugere componentes para um caso de uso |
compare_components |
component_a, component_b |
Compara dois componentes lado a lado |
get_data_table_columns |
columns |
Gera definição de colunas para DataTable |
| URI | Descrição |
|---|---|
sigmaui://catalog |
Catálogo resumido (nome, categoria, descrição) |
sigmaui://component/{name} |
Detalhes JSON de um componente |
| Prompt | Descrição |
|---|---|
implement_screen |
Gera prompt para implementar uma tela |
create_form |
Gera prompt para formulário com vee-validate + Zod |
review_component_usage |
Revisa uso correto dos componentes |
curate_catalog_entry |
Guia curadoria de uma entrada do catálogo |
O argumento framework aceita "vue" (padrão) ou "nuxt".
claude mcp add sigmaui-ds bun /caminho/absoluto/para/sigmaui-ds-mcp-server/src/stdio.ts
bun run dev
claude mcp add sigmaui-ds --transport http http://localhost:3333/mcp
O source of truth é src/data/catalog.json. O arquivo src/data/catalog.ts é derivado (gerado automaticamente).
export GOOGLE_GENERATIVE_AI_API_KEY=sua-chave
bun run catalog:generate
O pipeline:
@vue/compiler-sfc (props, emits, slots via AST) e Storybook storiessingleAttributePerLine)catalog.ts com Prettier (TypeScript parser)Componentes já curados são preservados — SKIP_CURATE=true não sobrescreve dados enriquecidos.
CURATE_PROVIDER=openai CURATE_MODEL=gpt-4.1-mini bun run catalog:generate
bun run test
| Arquivo | Cobertura |
|---|---|
src/app.test.ts |
Health check, middleware origin validation |
src/tools/get-component.test.ts |
Markdown output, lookup, sugestões |
src/tools/search-components.test.ts |
matchesQuery, integração com catálogo |
src/prompts/templates.test.ts |
Branching vue/nuxt, formulários, curadoria |
scripts/generate-catalog.test.ts |
Utils do pipeline (toPascalCase, poolMap, hash) |
scripts/lib/utils.test.ts |
resolveComponentName, parseSubComponents |
scripts/lib/serialize.test.ts |
formatSfcExample (Prettier) |
scripts/lib/curate.test.ts |
Curadoria IA (MockLanguageModelV3) |
sigmaui-ds-mcp-server/
├── src/
│ ├── index.ts # Entry HTTP (Bun.serve + graceful shutdown)
│ ├── stdio.ts # Entry stdio (stderr logging)
│ ├── app.ts # Hono (CORS, origin validation, transport)
│ ├── mcp.ts # Orquestrador McpServer
│ ├── config.ts # Constantes (PORT, CORS)
│ ├── types.ts # ComponentInfo interface
│ ├── data/
│ │ ├── catalog.json # Source of truth (71 componentes)
│ │ └── catalog.ts # Derivado (gerado por Prettier)
│ ├── tools/ # 9 ferramentas MCP
│ ├── resources/ # Resources MCP (sigmaui://)
│ └── prompts/ # 4 prompts MCP
├── scripts/
│ ├── generate-catalog.ts # Orquestrador do pipeline
│ └── lib/
│ ├── extractors.ts # Parsing via @vue/compiler-sfc + Storybook
│ ├── curate.ts # AI SDK (provider-agnostic, .nullable() schema)
│ ├── serialize.ts # JSON.stringify + Prettier (Vue + TS)
│ ├── hashes.ts # SHA-256 change detection
│ ├── utils.ts # toPascalCase, poolMap, readSafe
│ └── preload.ts # Bun plugin (mock .vue/.css)
├── Dockerfile
├── docker-compose.yml
└── .env.example
Run in your terminal:
claude mcp add sigmaui-ds-mcp-server -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.