mcpField
C
Céu Natal

Céu Natal

Remote
mistico.gustavocancado.com.brGames & Entertainment0Updated 1d ago

About Céu Natal

Céu Natal is an open-source MCP server that calculates astrological charts using Swiss Ephemeris for AI assistants to interpret. It serves Portuguese results and covers natal charts, relationship comparisons, transits, progressions, and solar and lunar returns.

Key features

  1. 01Calculate natal charts and planetary positions
  2. 02Compare two charts with synastry
  3. 03Calculate transits and progressions
  4. 04Calculate solar and lunar returns
  5. 05Support multiple house systems

Use cases

  1. 01Obtain chart positions for AI interpretation
  2. 02Compare two people's astrological charts
  3. 03Check transits for a given date
  4. 04Calculate a solar or lunar return

MCP support

It exposes tools for chart calculations, aspect information, and server health to MCP clients. A free public Streamable HTTP endpoint is available, and the server can also run locally over stdio.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://astrologia-mcp.gustavocancado.com.br/mcp/
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

Céu Natal

Servidor MCP que calcula mapas astrais com efemérides suíças para o seu assistente de IA interpretar.

In English. Céu Natal is an open-source Model Context Protocol server that computes natal charts, synastry, transits, progressions and solar/lunar returns with the Swiss Ephemeris, answering in Portuguese. A free public endpoint runs at https://astrologia-mcp.gustavocancado.com.br/mcp/ (no sign-up). Licensed AGPL-3.0. Setup for Claude, ChatGPT, Claude Code and Cursor in English: https://mistico.gustavocancado.com.br/en. Quick start in Claude Code: claude mcp add --transport http --scope user ceu-natal https://astrologia-mcp.gustavocancado.com.br/mcp/.

CI Licença: AGPL-3.0 Python 3.11

Por que existe

Peça um mapa astral a um assistente de IA e ele responde com segurança, mas as posições costumam ser inventadas: o modelo não tem efemérides, então chuta o signo da Lua e o ascendente. Este servidor faz a conta de verdade e devolve os números; a IA só interpreta.

Use agora

Endpoint MCP público e gratuito (Streamable HTTP, sem login):

https://astrologia-mcp.gustavocancado.com.br/mcp/

Passo a passo para Claude, ChatGPT, Gemini, Manus, Cursor e n8n: https://mistico.gustavocancado.com.br/#conectar.

O que calcula

ToolO que faz
calcular_mapa_natalPosições, casas, ângulos, aspectos, nodos, Quíron e síntese de um mapa natal.
calcular_sinastriaAspectos cruzados entre duas pessoas e planetas de uma nas casas da outra.
calcular_transitosPosições numa data, aspectos com o mapa natal e destaque dos trânsitos lentos.
calcular_progressoesProgressões secundárias (1 dia = 1 ano), com Lua e Sol progredidos.
calcular_mapa_compostoMapa composto de duas pessoas pelo método de midpoints.
calcular_revolucao_solarMapa do retorno do Sol à posição natal num ano, com local da revolução.
calcular_revolucao_lunarPróximo retorno da Lua à posição natal a partir de uma data.
listar_aspectos_tiposAspectos suportados, com ângulos, orbes e natureza.
healthcheckStatus e versão do servidor.

Entrada de pessoa: data (DD/MM/YYYY, obrigatória), hora (HH:MM), local ("Cidade, UF" ou "Cidade, País"), nome, is_dst. No mapa natal sem hora, o cálculo usa 12:00 no horário local, a Lua vem marcada como incerta (posicao_incerta, signo_pode_mudar) e não saem casas nem ângulos. sistema_casas é opcional: P Placidus (padrão), K Koch, W Whole Sign, E Equal, R Regiomontanus, C Campanus, O Porphyrius, B Alcabitus, M Morinus, T Topocentric. GET /tools lista as tools e os nomes dos parâmetros; o inputSchema completo vem do tools/list do MCP (qualquer cliente MCP mostra).

Exemplo

Pedido (tools/call):

{
  "name": "calcular_mapa_natal",
  "arguments": {"nome": "Ana", "data": "12/03/1990", "hora": "14:30", "local": "Belo Horizonte, MG"}
}

Trecho da resposta:

{
  "planetas": {
    "sol": {"signo": "Peixes", "grau": "21°52'", "grau_decimal": 21.8779, "posicao_absoluta": 351.8779,
            "retrogrado": false, "elemento": "Agua", "qualidade": "Mutavel", "casa": 8},
    "lua": {"signo": "Libra", "grau": "6°19'", "grau_decimal": 6.329, "posicao_absoluta": 186.329,
            "retrogrado": false, "elemento": "Ar", "qualidade": "Cardinal", "casa": 3}
  },
  "angulos": {
    "ascendente": {"signo": "Cancer", "grau": "18°38'", "grau_decimal": 18.6412, "posicao_absoluta": 108.6412}
  },
  "aspectos": [
    {"planeta_a": "lua", "planeta_b": "venus", "tipo": "trigono", "orbe": 0.48,
     "aplicando": true, "exato": true, "natureza": "harmonico"}
  ],
  "local_resolvido": {"lat": -19.9167, "lng": -43.9333, "fuso": "America/Sao_Paulo"}
}

A resposta completa traz também os outros planetas, as 12 casas, meio do céu, descendente, fundo do céu, pontos sensíveis e a síntese (elementos, qualidades, hemisférios, stelliums).

Rodar local

Com Docker:

cp .env.example .env
docker compose up --build        # http://localhost:8000

Com pip (Linux ou macOS; no Windows, use o WSL, porque o pyswisseph não compila nele):

python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.server:app --port 8000

Por stdio, para cliente que só abre processo local: python -m app.stdio (mesmas variáveis de ambiente).

Rotas: /mcp/ (MCP Streamable HTTP), /health, /tools (lista de tools; pública quando MCP_API_KEY está vazia), /llms.txt, /mapa-rapido (formulário do site) e / (redireciona para PUBLIC_SITE_URL).

Para desenvolver, instale também requirements-dev.txt e rode ruff check ., mypy app e python -m pytest -q. Detalhes em CONTRIBUTING.md.

Variáveis de ambiente

VariávelDefaultDescrição
MCP_SERVER_NAMEceu-natalnome devolvido no initialize
MCP_SERVER_VERSION2.2.6versão exposta
MCP_API_KEY(vazio)se definida, exige Authorization: Bearer <chave>; vazia, libera tudo
MCP_ALLOWED_HOSTS(vazio)hosts aceitos no /mcp/ (anti-DNS rebinding), separados por vírgula; vazio = sem validação
RATE_LIMIT_SESSION_PER_MIN30chamadas de tool por minuto por sessão MCP (0 desliga)
RATE_LIMIT_GLOBAL_PER_MIN600chamadas de tool por minuto no total (0 desliga)
RATE_LIMIT_MAPA_RAPIDO_IP_PER_MIN6pedidos ao /mapa-rapido por minuto por IP (0 desliga)
RATE_LIMIT_MAPA_RAPIDO_GLOBAL_PER_MIN120pedidos ao /mapa-rapido por minuto no total (0 desliga)
PUBLIC_SITE_URLhttps://github.com/gucancado/ceu-nataldestino do redirect de / e do /llms.txt (vai para <site>/llms.txt)
CORS_ORIGINS(vazio = PUBLIC_SITE_URL)origens aceitas pelo CORS do /mapa-rapido, separadas por vírgula
GEONAMES_USERNAME(vazio) — sem ele só o Nominatim é usadoconta GeoNames da geocodificação (crie a sua, gratuita, em geonames.org)
NOMINATIM_USER_AGENTceu-natal-mcp/2.0User-Agent enviado ao Nominatim (OSM)
NOMINATIM_MIN_INTERVAL_S1.0intervalo mínimo (s) entre chamadas ao Nominatim
GEOCODER_MAX_CONCORRENTES4teto de chamadas simultâneas aos provedores de geocodificação
GEOCODER_ESPERA_MAX_S3.0espera máxima (s) por uma vaga nesse teto; depois, erro
GEOCODER_CACHE_PATH<tmp>/ceu-natal-geocode-cache.jsoncache persistente de coordenadas; no Docker, volume em /var/cache/ceu-natal
CONTATOS_PATHvazio (desliga o /contato)arquivo JSONL dos contatos para novidades deixados no site; em produção, /var/lib/ceu-natal/contatos.jsonl (volume persistente)
ESTATISTICAS_PATHvazio (desliga o /estatisticas)SQLite das estatísticas agregadas de uso (página de status); em produção, /var/lib/ceu-natal/estatisticas.sqlite3 (volume persistente)
HISTORICO_PATHvazio (nada é guardado)SQLite dos mapas feitos no formulário do site (data, hora, cidade), ligados ao id anônimo do navegador e ao contato; em produção, /var/lib/ceu-natal/historico.sqlite3
CONTATOS_ADMIN_TOKENvazio (/contatos responde 404)token Bearer das rotas GET /contatos (contatos com os mapas de cada um) e GET /historico (histórico por navegador); separado da MCP_API_KEY

Site (web/)

O site de apresentação (https://mistico.gustavocancado.com.br) é um app Next.js 16 separado, com imagem Docker própria (web/Dockerfile). Para rodar: cd web && pnpm install && pnpm dev; as URLs vêm de web/.env.example.

Precisão e limites

  • Efemérides: Swiss Ephemeris, da Astrodienst AG, via Kerykeion e pyswisseph. Zodíaco tropical.
  • Latitude acima de 66°: o cálculo de casas não é confiável perto dos polos. O mapa natal sai sem casas nem ângulos, com aviso; trânsitos, progressões e revoluções recusam.
  • Anos: datas de 1800 a 2399 (a faixa da efeméride de Quíron); revolução solar de 1800 a 2200.
  • Horário de verão: se a hora cai na transição (ambígua ou inexistente), o servidor devolve erro pedindo is_dst (true = horário de verão, false = padrão).
  • Sem hora de nascimento: cálculo às 12:00 locais; a Lua pode estar antes ou depois até metade do movimento diário dela (em geral de 6° a 7,6°, devolvido em margem_graus), e o resultado diz quando o signo dela pode mudar.
  • Limites do endpoint público: 30 chamadas por minuto por sessão e 600 por minuto no total. Nada do que chega pelo MCP é armazenado (os mapas do formulário do site ficam guardados); veja a política de privacidade.

Contribuir

Issues e pull requests são bem-vindos. Veja CONTRIBUTING.md; para falhas de segurança, SECURITY.md.

Licença

AGPL-3.0-or-later. A AGPL vale também para uso pela rede: quem oferecer este servidor como serviço modificado precisa publicar o código. O endpoint público roda exatamente o código deste repositório.

Copyright (C) 2026 Gustavo Cançado. Créditos e licenças de terceiros em NOTICE.

A escolha segue as dependências: o Kerykeion é AGPL-3.0, e o pyswisseph (Swiss Ephemeris) é distribuído sob AGPL-3.0 ou sob a licença profissional paga da Astrodienst. Um uso fora dos termos da AGPL exigiria a licença profissional da Swiss Ephemeris e trocar o Kerykeion. O site usa os pacotes @beeads/*, sob licença MIT, compatível com a AGPL.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.