Skip to main content
Glama

Malaysia Prayer Time MCP Server

main.cpython-311.pyc11.7 kB
� �$�g � ���dZddlmZmZmZddlZddlZddlZddlZej � ej � ej � e ����d��Zej �e��ddlmZddlmZddlmZmZed��Zd eed efd �Ze���dd ed efd���Ze��� ddededed efd���Ze��� ddededed efd���Ze���d efd���Z e!dkre�"d���dSdS) z Malaysia Prayer Time UVX Plugin.�)�Any�List�DictN�src)�FastMCP)�client)� PrayerTimes�Zonezmalaysia-prayer-time� prayer_times�returnc��K�|sdS|d}g}dD]K}t||d��}|r6|���}|dkrd}|�|�d|�����Ld�|��}d |j�d |j�d |��S) z0Format prayer times data into a readable string.zNo prayer times availabler)�imsak�fajr�syuruk�dhuhr�asr�maghrib�ishaNr�Sunrise�: � zPrayer Times for � (z): )�getattr� capitalize�append�join�date�day)r � prayer_time�formatted_times�field�value� field_name�time_strs �?/Users/aman/2) personal/mcp-server-malaysia-prayer-time/main.py�format_prayer_timesr&s����� �+�*�*��q�/�K��O�O�=�=��� �U�D�1�1�� � =��)�)�+�+�J��� � �&� � � "� "�j�#;�#;�E�#;�#;� <� <� <���y�y��)�)�H� V��!1� V� V�[�_� V� V�(� V� V�V��SGR03� zone_codec��K� t4�d{V��}|�dd|�����d{V��}ddd���d{V��n#1�d{V��swxYwYt|t��r�d|vr�t |d��}|dkr|ddnd}d|�d|�d ���d |�d ���d |�d ���d|�d���d|�d|�d�Sd|��S#t $rF}dt|���dt|��j �dt|j ����cYd}~Sd}~wwxYw)z}Debug the raw API response for a specific zone. Args: zone_code: Zone code (e.g., 'SGR03') (default: SGR03) N�GETz /v2/solat/�prayersrz No prayerszAPI Response for zone z: Zone: �zonez Year: �yearz Month: �monthz Last Updated: � last_updatedz Number of prayers: z First prayer: rzRaw API response: zError debugging API: � Type: ) � waktu_client�_request� isinstance�dict�len�get� Exception�str�type�__name__� __traceback__)r)r�data� prayers_count� first_prayer�es r%�debug_api_responserA-st����b�� J� J� J� J� J� J� J�6�����0H�Y�0H�0H�I�I�I�I�I�I�I�I�D� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J� J���� J� J� J� J� �d�D� !� !� /�i�4�&7�&7���Y��0�0�M�1>��1B�1B�4� �?�1�-�-� �L��i��� �x�x������ �x�x������ ���������x�x��'�'� �� "� �� � ��� �/��.�.� .�� �b�b�b�a�s�1�v�v�a�a�t�A�w�w�7G�a�a�3�q��K_�K_�a�a�a�a�a�a�a�a�����b���sF� D� A�D� A � D�A �B*D�<D� E� ;E �E� E� kuala lumpur�malaysia�today�city�countryrc��K� ttjd|����}|r|}n�|������}t 4�d{V��}|����d{V��}ddd���d{V��n#1�d{V��swxYwYd}|D]!}||j���vr|}n�"|s"td�|D��d��}|sd|�d�S|j }t 4�d{V��}|� |���d{V��} ddd���d{V��n#1�d{V��swxYwY| st|���d{V��} d|�d| ��St| ���d{V��S#t$rL} ddl} | ���} d t!| ���d t#| ��j�d | ��cYd} ~ Sd} ~ wwxYw) a Get prayer times for a specific city in Malaysia. Args: city: Name of the city or zone code (e.g., 'SGR03') (default: kuala lumpur) country: Country name (default: malaysia) date: Date in YYYY-MM-DD format or 'today' (default: today) z^[A-Z]{3}\d{2}$Nc3�PK�|]!}d|j���v�|V��"dS)rBN)�name�lower)�.0�zs r%� <genexpr>z#get_prayer_times.<locals>.<genexpr>qs6����J�J�1��1�6�<�<�>�>�)I�)I�Q�)I�)I�)I�)I�J�Jr'z'Error: Could not find prayer times for z%. Try using a major city in Malaysia.zNo prayer times available for �. Debug info: rzError fetching prayer times: r1r)�bool�re�matchrJ�stripr2� get_zonesrI�next�code�get_prayer_timesrAr&r8� traceback� format_excr9r:r;)rErFr� is_zone_coder)r�zones� zone_matchr-r � debug_infor@rW�tbs r%rVrVMs�����/X��B�H�%7��>�>�?�?� � � (��I�I��:�:�<�<�%�%�'�'�D�$� 1� 1� 1� 1� 1� 1� 1�v�$�.�.�0�0�0�0�0�0�0�0�� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1���� 1� 1� 1� 1��J�� � ���4�9�?�?�,�,�,�,�!%�J��E�-�� q�!�J�J��J�J�J�D��� �"�q�p�T�p�p�p�p�"��I� � D� D� D� D� D� D� D�6�!'�!8�!8��!C�!C�C�C�C�C�C�C�L� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D���� D� D� D� D�� ^�1�)�<�<�<�<�<�<�<�<�J�]�I�]�]�Q[�]�]� ]�(��6�6�6�6�6�6�6�6�6�� �X�X�X����� � !� !� #� #��W�s�1�v�v�W�W�t�A�w�w�?O�W�W�SU�W�W�W�W�W�W�W�W����� X���st�AE-�B �9E-� B�E-�B�A E-�&E-�:D(�E-�( D2�2E-�5D2�6!E-�E-�- G�7AF>�8G�>G�latitude� longitudec��K� ddddddddd d d d d dd�}d}td��}|���D]&\}\}}||z dz||z dzzdz} | |kr| }|}�'|pd}t4�d{V��} | �|���d{V��} ddd���d{V��n#1�d{V��swxYwY| s#t |���d{V��} d|�d|�d|�d| ��St | ���d{V��S#t $rL} ddl}|���}dt| ���dt| ��j �d|��cYd} ~ Sd} ~ wwxYw)z�Get prayer times for a specific location using coordinates. Args: latitude: Latitude of the location longitude: Longitude of the location date: Date in YYYY-MM-DD format or 'today' (default: today) )g�St$�@ga��+aY@)g� �0�� @g`Y@)g��K7�A @g6<�R�mY@)g@gpY@)g �-�`@g�W�2�EY@)g@g�z6�:Y@)gp_�@g<�R�!BY@)��_�LU@g �c�.Y@)g�� �r�@g�u��Y@)g��+e��?gHP�s�Y@)g��m4�w@g]�FxY@)rag������Y@)g*:���@g�Y@)g��ނ@g���Y@)�SGR01�SGR02r(�SGR04�PRK01�PRK02�PRK03�PRK04�PNG01�JHR01�KDH01�TRG01�KTN01�MLK01N�inf�g�?r(z+No prayer times available for coordinates (z, z ) using zone rNrz,Error fetching prayer times by coordinates: r1r) �float�itemsr2rVrAr&r8rWrXr9r:r;)r^r_r�zone_coordinates� closest_zone� min_distancer)�zone_lat�zone_lon�distancerr r\r@rWr]s r%�get_prayer_times_by_coordinatesry�s�����3g�(�'�'�'�'�'�'�'�'�'�'�'�'�'� � ��$� ��U�|�|� �/?�/E�/E�/G�/G� )� )� +�I�+��(�"�H�,��2�i�(�6J�q�5P�P�UX�X�H��,�&�&�'� �(� ��!�+�G� � � D� D� D� D� D� D� D�6�!'�!8�!8��!C�!C�C�C�C�C�C�C�L� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D� D���� D� D� D� D�� O�1�)�<�<�<�<�<�<�<�<�J�O��O�O�Y�O�O�en�O�O�CM�O�O� O�(��6�6�6�6�6�6�6�6�6�� �g�g�g����� � !� !� #� #��f�c�!�f�f�f�f�d�ST�g�g�N^�f�f�bd�f�f�f�f�f�f�f�f����� g���sI�A.C+�2B �C+� B*�*C+�-B*�.'C+�C+�+ E�5AD<�6E�<Ec ��K� t4�d{V��}|����d{V��}ddd���d{V��n#1�d{V��swxYwYg}t|d����D]/}|�|j�d|j�d|j�d����0d�|��S#t$r}dt|����cYd}~Sd}~wwxYw) z1List all available prayer time zones in Malaysia.Nc��|j|jfS)N)�negerirU)rLs r%�<lambda>zlist_zones.<locals>.<lambda>�s����1�6�0B�r')�keyrr�)rzError fetching zones: ) r2rS�sortedrrUrIr|rr8r9)rrZ�formatted_zonesr-r@s r%� list_zonesr��s����� 1�� -� -� -� -� -� -� -�6� �*�*�,�,�,�,�,�,�,�,�E� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -� -���� -� -� -� -����5�&B�&B�C�C�C� P� P�D� � "� "�d�i�#N�#N�4�9�#N�#N�� �#N�#N�#N� O� O� O� O��y�y��)�)�)�� �1�1�1�0��A���0�0�0�0�0�0�0�0�����1���s>� B(�>�B(� A�B(� A� AB(�( C�2C �C� C�__main__�stdio)� transport)r()rBrCrD)rD)#�__doc__�typingrrr�asyncio�sys�osrP�pathr�dirname�abspath�__file__�src_pathr� mcp.serverr�waktu_solat.clientrr2�waktu_solat.modelsr r � mcp_serverr9r&�toolrArVrqryr�r;�run�r'r%�<module>r�so��&�&�"�"�"�"�"�"�"�"�"�"����� � � � � � � � � � � � � �7�<�<����������(A�(A�B�B�E� J� J����������������5�5�5�5�5�5�0�0�0�0�0�0�0�0��W�+� ,� ,� �W�D��,=�W�#�W�W�W�W�0 �����b�b��b�#�b�b�b���b�> �����GN�9X�9X� �9X�),�9X�AD�9X��9X�9X�9X���9X�x �����3:�=g�=g��=g� %�=g�-0�=g��=g�=g�=g���=g�@ �����1�#�1�1�1���1�" �z����N�N�W�N�%�%�%�%�%��r'

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/amanasmuei/mcp-server-malaysia-prayer-time'

If you have feedback or need assistance with the MCP directory API, please join our Discord server