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/mcpO 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_municipalitiesDetalhar 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").
================================================================================