Skip to main content
Glama

GovBR DS MCP

Servidor Model Context Protocol (MCP) open source para o Design System do Governo Federal Brasileiro (GovBR-DS).

O govbr-ds-mcp fornece a agentes de IA acesso estruturado à documentação do GovBR-DS, seus componentes, orientações de acessibilidade, busca, Resources e workflows reutilizáveis para desenvolvimento.

O objetivo é permitir que ferramentas como Codex, Claude Code, Kiro e outros clientes compatíveis com MCP compreendam e utilizem o GovBR Design System com base em sua documentação oficial sincronizada, em vez de depender apenas do conhecimento prévio do modelo.

O pacote está publicado no npm como govbr-ds-mcp e pode ser executado diretamente com:

npx -y govbr-ds-mcp

Este é um projeto comunitário e independente. Não é um projeto oficial do Governo Federal Brasileiro nem da equipe responsável pelo GovBR-DS.


Por que este projeto?

Agentes de IA conseguem gerar código de frontend rapidamente, mas nem sempre sabem:

  • qual componente GovBR-DS deve ser utilizado;

  • como determinado componente deve se comportar;

  • quais recomendações de acessibilidade se aplicam;

  • quais padrões de uso são recomendados;

  • onde uma informação específica está localizada na documentação do GovBR-DS.

O govbr-ds-mcp busca resolver esse problema disponibilizando a documentação do GovBR-DS por meio do Model Context Protocol.

Agente de IA
    │
    ▼
govbr-ds-mcp
    │
    ├── Tools
    ├── Resources
    ├── Prompts
    └── Busca
          │
          ▼
   Dados estruturados locais
          ▲
          │
   Sincronização da documentação
          ▲
          │
 Repositório oficial GovBR-DS

O servidor MCP não utiliza um LLM internamente e não realiza requisições externas durante sua execução normal.


Related MCP server: PortOne Global MCP Server

Funcionalidades

Sincronização da documentação

A documentação é obtida do repositório oficial do GovBR-DS e transformada em dados estruturados locais.

GitLab GovBR-DS
      │
      ▼
   GitLab API
      │
      ▼
 Parser Markdown
      │
      ▼
Componentes estruturados
      │
      ▼
components.generated.ts

Os dados gerados são armazenados localmente, permitindo que o servidor MCP funcione sem acesso à internet depois da sincronização.

Atualmente, o projeto sincroniza 37 componentes documentados do GovBR-DS.


Tools MCP

list_components

Lista os componentes GovBR-DS disponíveis no índice local da documentação.

Exemplo:

{}

Resposta:

[
  {
    "name": "Button",
    "slug": "button",
    "description": "..."
  },
  {
    "name": "Input",
    "slug": "input",
    "description": "..."
  }
]

get_component

Retorna a documentação estruturada completa de um componente específico do GovBR-DS.

Exemplo:

{
  "name": "button"
}

A busca não diferencia letras maiúsculas e minúsculas.

As chamadas abaixo são equivalentes:

button
Button
BUTTON

search_docs

Pesquisa dentro da documentação GovBR-DS sincronizada localmente.

Exemplo:

{
  "query": "como usar um botão",
  "limit": 5
}

O mecanismo de busca possui suporte a:

  • busca case-insensitive;

  • busca sem diferenciação de acentos;

  • remoção de stopwords em português;

  • aliases de componentes;

  • canonicalização de variações morfológicas;

  • priorização do componente identificado;

  • ranking por relevância de seções;

  • geração de snippets relevantes;

  • filtro por componente.

Exemplo:

{
  "query": "acessibilidade aria",
  "component": "button",
  "limit": 5
}

A busca acontece inteiramente em memória.

Não são utilizados:

  • embeddings;

  • banco vetorial;

  • Elasticsearch;

  • LLM;

  • serviços externos de busca.


Resources MCP

A documentação do GovBR-DS também é disponibilizada através de MCP Resources.

Catálogo de componentes

govbr-ds://catalog

Disponibiliza um índice de todos os componentes sincronizados.


Documentação de componente

govbr-ds://components/{slug}

Exemplo:

govbr-ds://components/button

Retorna a documentação completa do componente em Markdown.


Documentação de acessibilidade

govbr-ds://components/{slug}/accessibility

Exemplo:

govbr-ds://components/button/accessibility

Retorna as orientações de acessibilidade disponíveis para o componente.

Nem todos os componentes do GovBR-DS possuem documentação específica de acessibilidade.

Os Resources são gerados inteiramente a partir dos dados sincronizados localmente.


Prompts MCP

O servidor disponibiliza Prompts reutilizáveis para workflows comuns de desenvolvimento com GovBR-DS.

implement_govbr_component

Fornece a documentação oficial sincronizada de um componente e instruções para auxiliar sua implementação.

Exemplo:

{
  "component": "button",
  "requirements": "Preciso de uma ação principal para confirmar o formulário."
}

O Prompt fornece ao modelo a documentação relevante do componente para que a implementação seja fundamentada no GovBR-DS.


review_govbr_component

Fornece a documentação do componente juntamente com um trecho de código que deve ser revisado.

Exemplo:

{
  "component": "button",
  "code": "<button class=\"br-button\">Enviar</button>"
}

A revisão pode então comparar a implementação fornecida com as orientações disponíveis na documentação sincronizada.


check_govbr_accessibility

Fornece as orientações de acessibilidade de um componente para auxiliar na revisão de uma implementação.

Exemplo:

{
  "component": "button",
  "code": "<button class=\"br-button circle\"><i class=\"fas fa-plus\"></i></button>"
}

O servidor MCP não executa nem interpreta o código recebido.

O código é tratado somente como texto e disponibilizado como contexto para o modelo conectado.


Arquitetura

src/
├── data/
│   ├── components.ts
│   └── components.generated.ts
│
├── ingestion/
│   ├── gitlab-client.ts
│   ├── component-parser.ts
│   └── component-sync.ts
│
├── services/
│   ├── component.service.ts
│   └── search.service.ts
│
├── tools/
│   ├── list-components.ts
│   ├── get-component.ts
│   └── search-docs.ts
│
├── resources/
│   ├── register-resources.ts
│   ├── component.resource.ts
│   └── accessibility.resource.ts
│
├── prompts/
│   ├── register-prompts.ts
│   ├── implement-component.prompt.ts
│   ├── review-component.prompt.ts
│   └── accessibility-review.prompt.ts
│
├── formatters/
│   └── component-markdown.ts
│
├── types/
│
└── index.ts

scripts/
└── sync-components.ts

O fluxo principal da aplicação é:

                    Cliente MCP
                        │
                        ▼
                  govbr-ds-mcp
                        │
          ┌─────────────┼─────────────┐
          │             │             │
        Tools       Resources       Prompts
          │             │             │
          └─────────────┼─────────────┘
                        ▼
                 Services locais
                        │
                        ▼
              Dados sincronizados
                        ▲
                        │
               sync:components
                        ▲
                        │
               GovBR-DS oficial

Uso rápido

  • Node.js 22+

  • npm

Não é necessário clonar ou instalar o pacote globalmente. Clientes MCP podem iniciar o servidor publicado diretamente via npx:

npx -y govbr-ds-mcp

O servidor utiliza o transporte MCP stdio e funciona com os dados GovBR-DS incluídos no pacote, sem chamadas HTTP durante as consultas.

Configuração nos clientes MCP

Claude Desktop

Adicione o servidor ao arquivo de configuração do Claude Desktop:

{
  "mcpServers": {
    "govbr-ds": {
      "command": "npx",
      "args": ["-y", "govbr-ds-mcp"]
    }
  }
}

Depois de salvar o arquivo, reinicie o Claude Desktop.

Consulte também a documentação MCP do Claude.

Claude Code

Registre o servidor pelo terminal:

claude mcp add govbr-ds -- npx -y govbr-ds-mcp

Use claude mcp list para confirmar o registro.

Codex

Adicione ao arquivo ~/.codex/config.toml:

[mcp_servers.govbr-ds]
command = "npx"
args = ["-y", "govbr-ds-mcp"]

Também é possível registrar pelo terminal:

codex mcp add govbr-ds -- npx -y govbr-ds-mcp

Reinicie o Codex depois de alterar manualmente a configuração.

Consulte também a documentação MCP do Codex.

Kiro

No Kiro, abra ou crie .kiro/settings/mcp.json no workspace. Para disponibilizar o servidor globalmente, use ~/.kiro/settings/mcp.json:

{
  "mcpServers": {
    "govbr-ds": {
      "command": "npx",
      "args": ["-y", "govbr-ds-mcp"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Após salvar, abra o painel MCP do Kiro e confirme que govbr-ds está conectado.

Consulte também a documentação MCP do Kiro.


Desenvolvimento local

Clone o repositório e instale as dependências:

git clone https://github.com/FelipeVergaraChico/govbr-ds-mcp.git
cd govbr-ds-mcp
npm install

Executando o servidor MCP

Inicie o servidor em modo de desenvolvimento:

npm run dev

O servidor utiliza o transporte MCP stdio.

Como o stdout é reservado para a comunicação do protocolo MCP, logs da aplicação devem ser enviados para stderr.

Evite:

console.log("Servidor iniciado");

Prefira:

console.error("Servidor iniciado");

MCP Inspector

O projeto pode ser testado utilizando o MCP Inspector.

Execute:

npx @modelcontextprotocol/inspector npx -y govbr-ds-mcp

No Inspector é possível testar as funcionalidades disponíveis.

Tools

list_components
get_component
search_docs

Resources

govbr-ds://catalog
govbr-ds://components/{slug}
govbr-ds://components/{slug}/accessibility

Prompts

implement_govbr_component
review_govbr_component
check_govbr_accessibility

Sincronizando a documentação do GovBR-DS

Para atualizar o índice local:

npx tsx scripts/sync-components.ts

O processo de sincronização:

  1. acessa o repositório público do GovBR-DS através da API do GitLab;

  2. identifica os componentes documentados;

  3. baixa os arquivos Markdown de cada componente;

  4. baixa a documentação de acessibilidade quando disponível;

  5. interpreta os arquivos Markdown;

  6. normaliza os dados;

  7. gera o dataset local utilizado pelo MCP.

Os dados gerados são armazenados em:

src/data/components.generated.ts

O arquivo é gerado automaticamente e não deve ser editado manualmente.

Durante a execução normal, o servidor MCP não consulta o GitLab.

Isso permite utilizar as Tools, Resources, Prompts e busca mesmo sem conexão com a internet.


Executando os testes

Execute:

npm test

A suíte de testes cobre áreas como:

  • parsing de Markdown;

  • busca de componentes;

  • busca case-insensitive;

  • normalização de acentos;

  • aliases;

  • canonicalização;

  • ranking da busca;

  • geração de snippets;

  • MCP Tools;

  • MCP Resources;

  • MCP Prompts;

  • formatação da documentação;

  • tratamento de componentes inexistentes.

Os testes unitários não dependem da disponibilidade do GitLab.


Desenvolvimento

Instale as dependências:

npm install

Execute o servidor:

npm run dev

Execute os testes:

npm test

Atualize a documentação local:

npx tsx scripts/sync-components.ts

Abra o MCP Inspector:

npx @modelcontextprotocol/inspector npx tsx src/index.ts

Fonte dos dados

A documentação utilizada por este projeto é obtida do repositório oficial do GovBR Design System:

GovBR-DS

O processo atual de ingestão utiliza principalmente:

ds/componentes/

A documentação dos componentes normalmente possui uma estrutura semelhante a:

ds/componentes/button/
├── button.md
├── button-access.md
└── imagens/

O arquivo principal geralmente contém informações como:

  • descrição;

  • uso;

  • anatomia;

  • tipos;

  • comportamento;

  • especificações.

Quando disponível, o arquivo *-access.md contém as orientações específicas de acessibilidade.

Nem todos os componentes possuem exatamente o mesmo conjunto de arquivos.

O processo de sincronização foi desenvolvido para lidar com essas diferenças sem interromper a geração do dataset.


Princípios do projeto

Documentação oficial primeiro

Sempre que possível, as informações fornecidas pelo MCP devem estar fundamentadas na documentação oficial sincronizada do GovBR-DS.

O objetivo é reduzir situações em que um agente de IA inventa uma regra ou comportamento que não existe no Design System.


Independente de LLM

O servidor MCP não depende de:

  • OpenAI;

  • Anthropic;

  • Google;

  • modelos locais;

  • qualquer outro fornecedor de IA.

O modelo é responsabilidade do cliente MCP conectado.


Runtime local

Requisições externas são utilizadas durante a sincronização da documentação, e não durante consultas normais ao MCP.

npx tsx scripts/sync-components.ts
        │
        └── Internet necessária

npm run dev
        │
        └── Documentação local

Busca simples antes de infraestrutura complexa

A busca atual utiliza ranking textual determinístico.

O projeto não depende de:

  • embeddings;

  • banco vetorial;

  • infraestrutura de RAG;

  • serviço externo de pesquisa.

Para a quantidade atual de documentação, uma busca local bem estruturada mantém o projeto mais simples, previsível e leve.


Respostas pequenas

A Tool search_docs retorna snippets relevantes em vez de enviar documentos inteiros para o modelo.

Isso ajuda a reduzir:

  • quantidade de contexto;

  • consumo de tokens;

  • informações irrelevantes;

  • respostas excessivamente grandes.

Quando o documento completo for necessário, o agente pode utilizar get_component ou os MCP Resources.


Roadmap

Concluído

  • servidor MCP com transporte stdio

  • listagem de componentes

  • consulta individual de componentes

  • sincronização da documentação GovBR-DS

  • parser estruturado de Markdown

  • geração automática do dataset local

  • busca local na documentação

  • ranking de relevância

  • normalização de consultas em português

  • MCP Resources

  • Resources de acessibilidade

  • catálogo de componentes

  • MCP Prompts

  • autocomplete de componentes nos Prompts

Planejado

  • exemplos oficiais de implementação HTML e CSS

  • integração com @govbr-ds/core

  • documentação dos GovBR Web Components

  • documentação dos GovBR React Components

  • exemplos de implementação por componente

  • validação de código GovBR-DS

  • helpers para validação de acessibilidade

  • publicação no npm

  • publicação no MCP Registry

  • transporte HTTP


Projeto relacionado

Este MCP foi desenvolvido para complementar a skill govbr-design-system.

Os dois projetos possuem responsabilidades diferentes:

govbr-design-system
        │
        └── Instruções, regras e boas práticas
            para orientar agentes de IA

govbr-ds-mcp
        │
        └── Documentação, busca, Resources,
            Tools e Prompts

Eles podem ser utilizados juntos por agentes compatíveis.

Conceitualmente:

                    Agente de IA
                         │
             ┌───────────┴───────────┐
             │                       │
           Skill                    MCP
             │                       │
     Como se comportar       O que a documentação diz
     Boas práticas           Componentes
     Regras de uso           Acessibilidade
     Orientações             Busca
                             Resources

Como contribuir

Contribuições são bem-vindas.

Algumas áreas interessantes para contribuição:

  • melhoria do parser de documentação;

  • melhoria da relevância da busca;

  • criação de novos testes;

  • suporte a novas fontes oficiais do GovBR-DS;

  • melhoria da compatibilidade com clientes MCP;

  • suporte às bibliotecas oficiais;

  • identificação de componentes não documentados;

  • correção de dados interpretados incorretamente.

Antes de enviar um Pull Request:

npm test

Também confirme que o projeto continua passando pelo typecheck/build utilizado no repositório.


Aviso

O govbr-ds-mcp é um projeto open source independente.

Ele não é mantido, endossado ou oficialmente suportado pelo Governo Federal Brasileiro ou pela equipe responsável pelo GovBR Design System.

A documentação e os recursos do GovBR-DS utilizados pelo projeto continuam sujeitos às licenças e termos de seus respectivos projetos originais.


Licença

Consulte o arquivo LICENSE para informações sobre a licença deste projeto.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol implementation that enables AI-powered access to documentation resources, featuring URI-based navigation, template matching, and structured documentation management.
    9
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and reading of PortOne documentation, including OpenAPI schemas and product guides, through the Model Context Protocol. It allows AI agents to easily access and integrate payment-related technical specifications into their workflows.
    11
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    Provides AI assistants with direct access to the complete Godot Engine documentation, including classes, tutorials, and features. It enables developers to retrieve and analyze official documentation through natural language interfaces using the Model Context Protocol.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to automate web tasks such as browsing, clicking, typing, and taking screenshots via the Model Context Protocol.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Search @imqueue docs and scaffold typed services & clients from your AI coding agent.

  • Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…

  • The best web search for your AI Agent

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/FelipeVergaraChico/gov-ds-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server