Integração de IA

Mapcast MCP

Conecte seu assistente de IA e consulte livremente dados sociodemográficos de municípios brasileiros, sem planilhas, sem código.

Endereço do servidor

https://mapcast.app/mcp

O acesso atual é público: não é necessário token nem login. Todas as ferramentas são apenas para leitura e cálculo.

Ferramentas disponíveis

  • Listar municípios

    Busca na base de 5.570 municípios por região, UF, segmentação ou nome.

    list_municipalities
  • Detalhar município

    Perfil sociodemográfico completo a partir do código IBGE: idade, classes, tipologia, renda e domicílios.

    get_municipality

Exemplos de perguntas

  • Liste os municípios do Nordeste com mais domicílios.
  • Mostre o perfil sociodemográfico de Campinas (IBGE 3509502).
  • Liste os municípios de SP e compare a renda total entre eles.
  • Quais municípios da segmentação Mercados Regionais têm mais moradores de 20 a 29 anos?

Como conectar

ChatGPT

Configurações → Conectores → Adicionar conector personalizado (MCP remoto). Cole a URL acima, escolha “Sem autenticação” e salve. Depois ative o conector na conversa.

Codex / Claude / Cursor e outros clientes

Adicione um servidor MCP remoto (transporte HTTP) apontando para a URL acima, sem cabeçalho de autenticação. Em arquivos de configuração, normalmente basta:

{
  "mcpServers": {
    "mapcast": { "url": "https://mapcast.app/mcp" }
  }
}

Dados e limites

Fonte
Censo IBGE 2022 (Projeção Mapfry)
Versão
2025
Cobertura
5.570 municípios brasileiros

Os números retornados são estimativas para apoio à decisão, baseadas em médias censitárias e parâmetros informados pelo usuário. Não substituem pesquisa de campo nem análise de viabilidade específica do ponto.

Instruções para recriar o app

Prompt mestre usado para gerar o Mapcast do zero. Cole em um assistente de IA compatível.

================================================================================
PROMPT MESTRE: MAPCAST — RANKING BUILDER & PLANO DE EXPANSÃO (MVP)
================================================================================

Objetivo: Construir um web app completo de geomarketing que gera rankings de 
municípios brasileiros com potencial para abertura de unidades de varejo/franquias.

Stack Tecnológica:

- Framework: TanStack Start + React 19 + TypeScript
- Estilização: Tailwind CSS + shadcn/ui (Fonte: Inter, Visual: Sóbrio e corporativo)
- Estado Global: Zustand (com persistência no localStorage)
- Gráficos & Mapas: Recharts + MapLibre GL / react-map-gl (Estilo: OpenFreeMap Positron)
- Arquitetura de Dados: Base municipal embarcada em JSON no bundle (sem chamadas de API externa)

================================================================================

Você é um Engenheiro de Software Fullstack Senior e especialista em produtos de Geomarketing.

Sua tarefa é criar o aplicativo web "Mapcast — Ranking Builder" seguindo rigorosamente a especificação abaixo.

--------------------------------------------------------------------------------
BLOCO 1: DESIGN SYSTEM, UX & MOCK DE DADOS
--------------------------------------------------------------------------------

1. VISUAL E UX:

   - Apreciação estética: Design soberbo, limpo e focado em dados (estilo executivo/analytics).
   - Proibido usar gradientes roxos/neon genéricos. Use tokens semânticos neutros (slate/zinc/gray).
   - Responsividade: Menu hambúrguer para mobile e componentes adaptáveis.
   - UX Flow: Setup imediato em menos de 60 segundos, sem onboarding ou cadastro obrigatório.

2. ESTRUTURA DE DADOS EMBARCADA (JSON Mock dos Top Municípios IBGE / ABF):

   type Municipality = {
     ibgeCode: string;
     name: string;
     uf: string;
     segmento: string; // Categoria de segmentação
     lat: number;
     lng: number;
     // Domicílios
     totalHouseholds: number;
     households1Person: number;
     households2People: number;
     households3People: number;
     households4People: number;
     households5PlusPeople: number;
     // Tipologia Habitacional
     householdsHouses: number;
     householdsApartments: number;
     householdsVillageCondo: number;
     // População & Faixas Etárias
     totalPopulation: number;
     pop0to9: number;
     pop10to19: number;
     pop20to29: number;
     pop30to39: number;
     pop40to49: number;
     pop50to64: number;
     pop65Plus: number;
     // Classes Sociais (Quantidade de Domicílios)
     classE: number;
     classD: number;
     classC: number;
     classB: number;
     classA: number;
     classAA: number;
     // Indicadores Financeiros
     totalIncome: number;
     avgHouseholdIncome: number;
   };

--------------------------------------------------------------------------------
BLOCO 3: MOTOR DE RANKING BUILDER (/ /setup /ranking)
--------------------------------------------------------------------------------

Purpose: Estimar o potencial de mercado por município.

// REGRAS DE CÁLCULO DO MOTOR:
// 0. Cada atributo tem type = "base" (volume absoluto) ou "adherence" (indicador relativo).
// 1. Pesos: normalizados para somar 100 dentro de cada grupo (base e aderência separadamente).
// 2. Base de mercado (market_base) = sum(valor_bruto_base_i * peso_normalizado_i / 100)
// 3. Fator de aderência (adherence_factor) = média ponderada de (valor_municipio / média_geral)
//    dos atributos de aderência, travado entre 0.3 e 2.5. Sem atributos de aderência = 1.
// 4. Mercado efetivo (effective_market) = market_base * adherence_factor
// 5. Corte de Exibição: Manter apenas quem tem effective_market > 0.

// ORDENAÇÃO DO RANKING (CRITÉRIOS DE DESEMPATE):
// 1º effective_market (DESC)
// 2º Renda Total (DESC)


// COMPONENTE DE CENÁRIOS SAVED:
// Permitir salvar, carregar e alternar entre diferentes cenários (ex: "Farmácia Premium", "Academia Popular").

--------------------------------------------------------------------------------
BLOCO 4: VISUALIZAÇÃO EM MAPA (/map ou Aba Mapa)
--------------------------------------------------------------------------------

Purpose: Exibir a distribuição espacial dos municípios do ranking.

// COMPORTAMENTO E BIBLIOTECAS:
// - Usar MapLibre GL com estilo OpenFreeMap Positron (sem necessidade de API Key).
// - Exibir Clusters em zoom baixo e Pontos Individuais em zoom alto.
// - Tamanho do marcador proporcional ao potencial de mercado (escala em raiz quadrada).
// - Popups interativos ao clicar em um município (mostrando posição, potencial e top drivers).
// - Popup de Cluster agregando a soma de potencial e o Top 5 municípios do cluster.

--------------------------------------------------------------------------------
BLOCO 5: DETALHES DO MUNICÍPIO (/municipality/$ibge)
--------------------------------------------------------------------------------

Purpose: Exibir a ficha técnica profunda do município selecionado.

// CONTEÚDO DA TELA:
// - Comparação tripla de indicadores: Município vs. Média da UF vs. Média do segmento.
// - Renda média domiciliar e Renda Total.
// - Gráficos com Recharts: Pirâmide etária e distribuição de Classes Sociais (ordem invertida: AA no topo, E na base).
// - Lista dos atributos do cenário ativo que mais contribuíram para o Score (Top Drivers).

--------------------------------------------------------------------------------
BLOCO 7: PROTOCOLO MCP & INTERFACE (/mcp e /conectar)
--------------------------------------------------------------------------------

Purpose: Expor as regras e dados do sistema via Model Context Protocol para LLMs.

// 1. Rota `/mcp`: Servidor MCP público e sem autenticação com as ferramentas:
//    - list_municipalities
//    - get_municipality
//    (Ler dados do JSON embarcado, incluir tratamento de erro com log interno).

// 2. Rota `/conectar`: Página humana documentando a URL do MCP, exemplos de prompts para ChatGPT/Claude/Cursor, botão "Copiar Endpoint" e disclaimers sobre dados do IBGE.

--------------------------------------------------------------------------------
DIRETRIZ DE FINALIZAÇÃO DA IA:
--------------------------------------------------------------------------------

Gere os componentes modulares em arquivos limpos, tipados com TypeScript, com tratamento para estados de Empty State, Loading e No Results ("Nenhum município encontrado").

================================================================================