Normatia
Plataforma nativa de IA que automatiza a conformidade com códigos de construção e regulamentações técnicas espanholas para o setor AECO.
Documentação
Normatia
Kit de ferramentas de desenvolvedor de código aberto para conformidade com o código de construção espanhol.
Site principal: normatia.com Documentação da API: docs.normatia.com Base da API: api.normatia.com
O que é a Normatia?
A Normatia é uma plataforma de conformidade com códigos de construção para o setor AECO da Espanha (arquitetura, engenharia, construção e operações). Este repositório contém o kit de ferramentas de desenvolvedor de código aberto: um servidor MCP para assistentes de IA, um SDK TypeScript, exemplos de uso da API e habilidades de IA reutilizáveis.
Servidor MCP
A Normatia fornece um servidor MCP remoto que dá aos assistentes de IA acesso às regulamentações de construção espanholas no contexto de um projeto específico — sem necessidade de instalação.
https://mcp.normatia.com/mcp
Tudo é limitado a um projeto
O escopo regulatório da Normatia é definido por projeto: cada projeto em normatia.com carrega seu município, suas regulamentações aplicáveis (nacionais, regionais, municipais), seus documentos enviados, os fatos registrados sobre o edifício e quaisquer cálculos salvos.
Isso significa que o assistente nunca precisa perguntar pela cidade, zona climática ou qual edição do CTE se aplica — a resposta chega com esses valores já resolvidos. E um município sem projeto não tem resposta: o servidor informa isso e aponta para a criação de um, porque as ordenanças municipais diferem completamente entre câmaras municipais.
Ferramentas disponíveis
Três ferramentas, todas somente leitura. Nada na superfície do MCP grava em seus projetos.
| Ferramenta | Descrição | Custo |
|---|---|---|
ask(query, project_id?) | Faça uma pergunta em linguagem natural sobre as regulamentações que se aplicam a um projeto. A única ferramenta que retorna texto regulatório citável. | 1 crédito |
get_project_info(project_id?) | Contexto completo do projeto: localização, dados técnicos do território, regulamentações aplicáveis com sua edição atual, arquivos, documentos gerados, memória e cálculos. | Grátis |
list_projects() | Projetos que o usuário pode consultar, com seu project_id, localização e qual está ativo. | Grátis |
ask executa o mesmo loop de agente do chat em normatia.com, não uma busca de disparo único: ele encadeia várias buscas, lê a memória do projeto e cálculos salvos, consulta documentos enviados e cita cada fonte com marcadores [N] validados. Como a chamada é síncrona, ela roda com orçamentos mais curtos — 6 rodadas de raciocínio, 6 buscas, 120 segundos — então defina o tempo limite de chamada de ferramenta do seu cliente para 150 segundos ou mais.
Cada ferramenta aceita um project_id opcional, resolvido como explicit project_id → the user's active project. Para perguntar sobre outro município, chame list_projects() e passe o id correspondente: vários projetos podem ser consultados na mesma conversa, e o projeto ativo do usuário no site nunca muda por baixo deles.
Configuração
Claude
Conecte a Normatia ao claude.ai como um conector personalizado. Disponível nos planos Free (limitado a 1 conector), Pro, Max, Team e Enterprise. Atualmente em beta.
Planos Free, Pro e Max:
- Navegue até Customize > Connectors
- Clique em "+" e depois em "Add custom connector"
- Insira a URL do servidor:
https://mcp.normatia.com/mcp - Selecione
OAuthcomo autenticação - Clique em "Add"
Planos Team e Enterprise (proprietário):
- Navegue até Organization settings > Connectors
- Clique em "Add" → passe o mouse sobre "Custom" → selecione "Web"
- Insira a URL do servidor:
https://mcp.normatia.com/mcp - Selecione
OAuthcomo autenticação - Clique em "Add"
Depois de adicionado pelo proprietário, os membros se conectam a partir de Customize > Connectors.
Após a configuração, habilite a Normatia por conversa via botão "+" no canto inferior esquerdo → "Connectors".
ChatGPT
Conecte a Normatia ao ChatGPT como um aplicativo MCP personalizado. Disponível nos planos Free, Plus, Pro, Business e Enterprise/Edu. Atualmente em beta.
- Ative o modo de desenvolvedor: vá em Settings → Apps → Advanced Settings e alterne Developer mode
- Vá em Settings → Apps → Create
- Insira a URL do servidor:
https://mcp.normatia.com/mcp - Selecione
OAuthcomo autenticação - Clique em Create
Depois de criado, ative o aplicativo em qualquer conversa via botão "+" e selecione Normatia.
Para planos Business e Enterprise/Edu, os administradores do workspace devem configurar e publicar o aplicativo em Workspace Settings → Apps antes que os membros possam usá-lo.
Pré-requisitos
Os seguintes clientes exigem uma chave de API. Obtenha uma em normatia.com/es/api. As chaves usam o formato sk-normatia-....
Claude Desktop
Adicione à sua configuração (~/Library/Application Support/Claude/claude_desktop_config.json no macOS, %APPDATA%\Claude\claude_desktop_config.json no Windows):
{
"mcpServers": {
"normatia": {
"type": "streamable-http",
"url": "https://mcp.normatia.com/mcp",
"headers": {
"Authorization": "Bearer sk-normatia-..."
}
}
}
}
Claude Code
claude mcp add normatia --transport streamable-http https://mcp.normatia.com/mcp \
-h "Authorization: Bearer sk-normatia-..."
VS Code / GitHub Copilot
Adicione a .vscode/mcp.json no seu workspace:
{
"servers": {
"normatia": {
"type": "streamable-http",
"url": "https://mcp.normatia.com/mcp",
"headers": {
"Authorization": "Bearer sk-normatia-..."
}
}
}
}
Ou adicione às suas User Settings (JSON) para acesso global:
{
"mcp": {
"servers": {
"normatia": {
"type": "streamable-http",
"url": "https://mcp.normatia.com/mcp",
"headers": {
"Authorization": "Bearer sk-normatia-..."
}
}
}
}
}
Cursor
Adicione às configurações MCP do Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"normatia": {
"type": "streamable-http",
"url": "https://mcp.normatia.com/mcp",
"headers": {
"Authorization": "Bearer sk-normatia-..."
}
}
}
}
Windsurf
Adicione às configurações MCP do Windsurf:
{
"mcpServers": {
"normatia": {
"type": "streamable-http",
"url": "https://mcp.normatia.com/mcp",
"headers": {
"Authorization": "Bearer sk-normatia-..."
}
}
}
}
Zed
Adicione às configurações do Zed (~/.config/zed/settings.json):
{
"context_servers": {
"normatia": {
"transport": "streamable-http",
"url": "https://mcp.normatia.com/mcp",
"headers": {
"Authorization": "Bearer sk-normatia-..."
}
}
}
}
Qualquer Cliente MCP
Use estes detalhes de conexão com qualquer cliente compatível com MCP:
| Configuração | Valor |
|---|---|
| Transporte | streamable-http |
| URL | https://mcp.normatia.com/mcp |
| Cabeçalho de autenticação | Authorization: Bearer sk-normatia-... |
Para instruções completas de configuração para mais de 30 clientes MCP, veja docs.normatia.com/mcp.
Exemplos de Prompts
Depois de conectado, experimente estes prompts no seu assistente de IA:
- "Quais regulamentações estão ativas no meu projeto e qual edição de cada uma?"
- "Qual é o valor U máximo de janela que posso usar no meu projeto?"
- "Revise o cronograma de carpintaria anexado e me diga se os valores estão em conformidade"
- "Qual altura livre mínima a ordenança municipal exige no projeto de Sevilla?"
- "Compare os requisitos de acessibilidade do meu projeto de Madrid com o de Bilbao"
- "O que o código diz sobre ventilação de garagem, dados os cálculos que já salvei?"
SDK TypeScript
npm install normatia
import { NormatiaClient } from 'normatia';
const client = new NormatiaClient({ apiKey: 'sk-normatia-...' });
const location = await client.getLocation('ES-41091');
console.log(location.tech_data.climate_zone); // "B4"
Veja packages/sdk-typescript/README.md para documentação completa.
Exemplos
| Diretório | Descrição |
|---|---|
| examples/curl | Exemplos de cURL para todos os principais endpoints da API |
| examples/python | Exemplos em Python usando httpx |
| examples/typescript | Exemplos em TypeScript usando o SDK |
Habilidades de IA
O diretório skills contém prompts de sistema reutilizáveis para agentes de IA que trabalham com a Normatia:
- Building Codes — Navegação especializada em regulamentações espanholas (CTE, RITE, LOE)
- Compliance — Fluxos de trabalho estruturados de verificação de conformidade
- Location-Aware — Orientação regulatória com contexto geográfico
Visão Geral da API
| Endpoint | Método | Descrição |
|---|---|---|
/api/v1/location/search | GET | Buscar localizações geográficas |
/api/v1/location/{geo_id} | GET | Obter detalhes da localização + dados climáticos |
/api/v1/codes/search | GET | Buscar códigos de construção |
/api/v1/codes/{slug} | GET | Obter detalhes do código |
/api/v1/codes/{slug}/versions | GET | Listar versões do código |
/api/v1/codes/{slug}/versions/{version} | GET | Obter detalhes da versão + seções |
/api/v1/projects | GET | Listar os projetos que o usuário pode consultar |
/api/v1/project/info | GET | Contexto completo de um projeto |
/api/v2/ask | POST | Perguntas e respostas regulatórias agênticas sobre um projeto |
/api/v1/verify | POST | Verificação de conformidade |
POST /api/v1/ask (o antigo endpoint RAG de disparo único) está congelado e oculto do esquema público. Ele ainda funciona para integrações existentes, mas novas devem usar /api/v2/ask.
Documentação
Referência completa da API e guias de integração em docs.normatia.com.
Contribuindo
Contribuições são bem-vindas. Por favor, leia CONTRIBUTING.md antes de abrir uma issue ou pull request.
Licença
MIT — veja LICENSE.