Skip to main content
Glama
emerson-rossi

cep-viacep

CEP Claude Plugin

Plugin que integra o Claude à API pública ViaCEP, permitindo consultar endereços brasileiros a partir de um CEP — ou o inverso, o CEP a partir de UF + cidade + logradouro — diretamente na conversa, sem sair do Claude.

Origem. Este repositório é um template de referência, construído deliberadamente no mesmo padrão arquitetural observado nos plugins Claude Code de heitorrapcinski — em especial GovBR-Claude-Plugin (servidor MCP + skill por domínio, núcleo genérico reaproveitável, empacotamento .mcpb/.plugin, observabilidade desde o dia 1). O domínio aqui (ViaCEP) foi escolhido por ser público, simples e sem autenticação — ideal para servir de esqueleto para o seu próximo domínio.

O servidor MCP é a camada de acesso aos dados (sabe chamar a API); a skill /cep é a camada de interpretação (entende o pedido em português e escolhe a ferramenta e os parâmetros). Ao instalar o plugin, tudo é registrado automaticamente.


API base

API

Base URL

Documentação

ViaCEP

https://viacep.com.br/ws

viacep.com.br

REST/JSON, GET, sem autenticação.


Related MCP server: Brazilian ZIP Code Lookup

Requisitos

  • Node.js 22 ou superior — para compilar o plugin (gerar os bundles). O plugin já compilado roda sem node_modules.

  • App do Claude com suporte a plugins (Claude Code, ou Claude Desktop com a área de plugins em Customize).


Instalação

git clone https://github.com/emerson-rossi/cep-claude-plugin.git
cd cep-claude-plugin
npm install        # instala deps e compila os bundles (script "prepare")
npm run package     # gera build/cep-claude-plugin.plugin

O npm run package compila o servidor num bundle autossuficiente (build/viacep.cjs, com todas as dependências embutidas), empacota como MCPB (build/cep-viacep.mcpb) e monta o build/cep-claude-plugin.plugin — pronto para upload, sem node_modules.

No app do Claude, abra Personalizar → "Fazer upload de plugin local" e selecione build/cep-claude-plugin.plugin. O Claude lê o .claude-plugin/plugin.json e registra o servidor MCP (cep-viacep) e a skill /cep.


Desenvolvimento

npm install          # instala deps e gera o bundle
npm run dev:viacep   # roda o servidor direto do TypeScript (tsx), sem empacotar
npm run build        # regenera o bundle com esbuild
npm run mcpb         # gera o bundle MCPB (build/cep-viacep.mcpb)
npm run package      # gera build/cep-claude-plugin.plugin (mcpb embutido)
npm run typecheck    # checagem de tipos (tsc --noEmit)
npm test             # testes unitários (vitest)

Para iterar sem reinstalar o .plugin, rode npm run dev:viacep e inspecione com o MCP Inspector.

Estrutura

cep-claude-plugin/
├── .claude-plugin/plugin.json   # manifesto do plugin
├── skills/
│   └── cep/SKILL.md             # skill /cep (interpretação em linguagem natural)
├── src/
│   ├── core/                    # framework genérico (reaproveitável para qualquer API)
│   │   ├── types.ts             #   ApiDefinition, ToolDef, ParamDef
│   │   ├── http.ts              #   cliente HTTP + tratamento de erros
│   │   ├── logger.ts            #   observabilidade (stderr + arquivo, configurável)
│   │   ├── server.ts            #   gera o servidor MCP a partir de uma definição
│   │   └── version.ts
│   └── apis/
│       └── viacep/              # domínio de exemplo — troque por outro API aqui
│           ├── definition.ts    #   contrato das tools expostas
│           ├── domain.ts        #   regras específicas (validação de CEP, UFs)
│           └── index.ts         #   entrypoint do servidor MCP
├── test/                        # testes unitários (vitest)
├── build.mjs                    # esbuild (bundle do servidor)
├── mcpb.mjs                     # empacotamento (.mcpb)
├── package.mjs                  # empacotamento (.plugin, mcpb embutido)
├── .github/workflows/ci.yml     # typecheck + test + build em cada push/PR
└── build/                       # gerado, gitignored

Como trocar o domínio de exemplo por um seu

  1. Duplique src/apis/viacep/ para src/apis/<seu-dominio>/ e ajuste definition.ts (tools/params) e domain.ts (regras locais, se houver).

  2. Adicione a entrada em build.mjs (entries) e em mcpb.mjs (server).

  3. Crie skills/<seu-dominio>/SKILL.md descrevendo quando/como usar as tools.

  4. Ajuste .claude-plugin/plugin.json (nome, descrição, keywords) e este README.

  5. npm run typecheck && npm test && npm run build antes de empacotar.

Nada em src/core/ deveria precisar mudar — é o framework genérico que o padrão original (GovBR/CAD) também mantém estável entre domínios.


Observabilidade (logs)

O servidor MCP registra suas chamadas de ferramenta para diagnóstico (latência, taxa de erro, timeouts). Como o servidor se comunica por stdio — onde o stdout é reservado ao protocolo JSON-RPC —, os logs vão para o stderr (capturado pelo Claude Code; visível com claude --debug ou no painel /mcp) e, opcionalmente, para um arquivo.

Variável

Valores

Padrão

Efeito

CEP_LOG_LEVEL

silent · error · info · debug

info

error: só falhas. info: + chamadas bem-sucedidas e boot. debug: + params. silent: desliga o arquivo.

CEP_LOG_FORMAT

json · text

json

Formato das linhas.

CEP_LOG_DIR

caminho absoluto

vazio = padrão

Pasta dos arquivos. Vazio usa ~/.cep-claude-plugin/logs.

O arquivo fica fora do diretório de instalação do plugin (que é sobrescrito a cada update), com rotação simples ao passar de 5 MB. Se a pasta não puder ser criada, o servidor segue só com stderr — logging nunca derruba o servidor.


Licença

MIT — veja LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/emerson-rossi/cep-claude-plugin'

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