Salaah MCP

Serviço FastAPI e MCP que fornece horários de oração islâmicos e outros cálculos úteis.

Documentação

Salaah MCP (Horários de Oração da Comunidade Muçulmana)

Um serviço FastAPI e MCP que fornece cálculos de horários de oração islâmicos usando a biblioteca islamic_times.

Screenshot

Dependências

Este projeto depende das seguintes dependências principais:

  • FastAPI: Framework web para construção de APIs
  • FastAPI MCP: Protocolo de Controle de Modelos
  • islamic_times: Motor de cálculo principal para horários de oração
  • Pydantic: Validação de dados

Instalação

  1. Clone o repositório:
git clone https://github.com/yourusername/salaah-mcp.git
cd salaah-mcp
  1. Instale o uvv e as dependências:
pip install uv
uv install

Uso

uv run run.py

A API estará disponível em:

Endpoints da API

Calcular Horários de Oração

POST /prayer_times

Calcule os horários de oração para um local e data específicos.

Exemplo de solicitação:

{
  "latitude": -26.1528113,
  "longitude": 28.0049996,
  "method": "EGYPTIAN"
}

Exemplo de resposta:

{
  "method": "Egyptian General Authority of Survey (Egypt)",
  "fajr": "2025-06-01T05:19:11.373053+02:00",
  "sunrise": "2025-06-01T06:47:44.369263+02:00",
  "zuhr": "2025-06-01T12:05:43.358460+02:00",
  "asr": "2025-06-01T15:23:52.560113+02:00",
  "sunset": "2025-06-01T17:23:52.560113+02:00",
  "maghrib": "2025-06-01T17:23:52.560113+02:00",
  "isha": "2025-06-01T18:43:09.341111+02:00",
  "midnight": "2025-06-02T00:06:02.228763+02:00"
}

Obter Direção da Qibla

POST /qiblah

Obtenha a direção e a distância da Qibla a partir de qualquer local.

{
  "latitude": -26.1528113,
  "longitude": 28.0049996,
  "date": "2025-06-01T00:00:00Z"
}

Exemplo de resposta:

{
  "distance_km": 5452,
  "distance_mi": 3388,
  "direction": "NNE",
  "angle_decimal": 14.647,
  "angle_dms": "014° 38′ 49.84″"
}

Obter Informações do Sol

POST /sun

Obtenha informações detalhadas sobre a posição e os horários do sol.

Exemplo de resposta:

{
  "sunrise": "2025-06-01T06:47:40",
  "transit": "2025-06-01T12:05:33",
  "sunset": "2025-06-01T17:23:36",
  "apparent_altitude": -42.659,
  "apparent_azimuth": 276.796,
  "distance_au": 1.014106,
  "apparent_declination": 22.166,
  "apparent_right_ascension": "04h 39m 56.17s",
  "greenwich_hour_angle": 99.904,
  "local_hour_angle": 127.951
}

Obter Informações da Lua

POST /moon

Obtenha informações detalhadas sobre a posição e as fases da lua.

Exemplo de resposta:

{
  "moonrise": "2025-06-01T11:39:22",
  "transit": "2025-06-01T16:25:15",
  "moonset": "2025-06-01T22:54:19",
  "illumination": 36.38,
  "apparent_altitude": 25.803,
  "azimuth": 305.203,
  "distance_km": 388391,
  "parallax": 0.941,
  "topocentric_declination": 15.892,
  "topocentric_right_ascension": "09h 52m 04.77s",
  "greenwich_hour_angle": 21.198,
  "local_hour_angle": 49.245
}

Calcular Visibilidade da Lua

POST /moon/visibility

Calcule a visibilidade da lua nova usando o critério de Yallop.

{
  "latitude": -26.1528113,
  "longitude": 28.0049996,
  "date": "2025-05-27T00:00:00Z",
  "days": 3,
  "criterion": 1
}

Exemplo de resposta:

[
  {
    "criterion": "Yallop",
    "date": "2025-05-27T15:28:52",
    "value": -0.788,
    "description": "F: Not visible; below the Danjon limit."
  },
  {
    "criterion": "Yallop",
    "date": "2025-05-28T15:56:44",
    "value": 0.958,
    "description": "A: Easily visible."
  }
]

Métodos de Cálculo Disponíveis

  • ISNA: Sociedade Islâmica da América do Norte
  • MWL: Liga Mundial Muçulmana
  • UMM_AL_QURA: Universidade Umm al-Qura, Makkah
  • EGYPTIAN: Autoridade Geral Egípcia de Levantamento
  • KARACHI: Universidade de Ciências Islâmicas, Karachi
  • TEHRAN: Instituto de Geofísica, Universidade de Teerã
  • JAFARI: Instituto de Pesquisa Shia Ithna Ashari, Leva, Qom

Integração com Claude Desktop

Para usar o serviço de horários de oração com o Claude Desktop:

  1. Crie um arquivo de configuração:
{
  "mcpServers": {
    "Salaah Times": {
      "command": "/Users/yusuf/.local/bin/mcp-proxy",
      "env": {
        "SSE_URL": "http://localhost:8000/mcp"
      }
    }
  }
}
  1. Salve-o como claude_desktop_config.json no diretório de configuração do Claude Desktop.

  2. Certifique-se de que o serviço MCP esteja em execução:

uv run run.py
  1. Inicie o Claude Desktop e agora você pode fazer perguntas sobre horários de oração, como:
  • "Que horas é a oração de Asr hoje?"
  • "Quando é Fajr amanhã em Joanesburgo?"
  • "Mostre-me todos os horários de oração para Londres"

A IA usará o serviço MCP para calcular horários de oração precisos com base nas suas consultas.