Skip to main content
Glama

Agentic AI with MCP

by dev484p
server.cpython-313.pyc9.77 kB
� �, h� ��SSKJr SSKrSSKJr SSKrSSKJr SSKrSSK r \ R"\ RS9 \ R"\ 5r\"SSSS 9rS rS rS rS rSr\(d\R+S5 \"S5eS!S\S\S\S\S\\\4S-4 Sjjr\R55S"S\S\S\4Sjj5r\R55S#S\S\S\S\4Sjj5r\R55S$S\S\S\4Sjj5r\ S:Xa#\RAS5 \RC5 gg!\"ar#\R+S \#35 eSr#C#ff=f)%�)�AnyN)�FastMCP)�datetime)�levelzsearch-services�<�)�server_timeout�request_timeoutz"https://en.wikipedia.org/w/api.phpzhttps://api.tavily.comz2https://query1.finance.yahoo.com/v8/finance/chart/zsearch-app/1.0z)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+TAVILY_API_KEY environment variable not set�url�params�headers�json�returnc��# �[SS.nU(aURU5 [R"SS9IShv�N nU(aUR XUS9IShv�N nOUR XUS9IShv�N nUR 5 UR5sSSS5IShv�N $NnNPN9N ![Ra%n[RSUS U35 SnAOlSnAf[Ra%n[RS US U35 SnAO5SnAf[a%n[RS US U35 SnAOSnAff=fSSS5IShv�N g!,IShv�N (df  g=f7f) z6Make a generic API request with proper error handling.zapplication/json)z User-Agent�Acceptg>@)�timeoutN)rr )r r zHTTP error for z: zRequest failed for zUnexpected error for ) � USER_AGENT�update�httpx� AsyncClient�post�get�raise_for_statusr�HTTPStatusError�logger�error� RequestError� Exception)r r r r�default_headers�client�response�es �?C:\Users\devhp\OneDrive\Documents\Pro-Jet\MCP_PROJECT\server.py�make_api_requestr$ s7���!�$��O� ����w�'�� � ��.�.�&� =��!'���S�_��!U�U��!'���C���!X�X�� � %� %� '��=�=�?�/�.�.�V�X� /���$�$� 7� �L�L�?�3�%�r�!��5� 6� 6���!�!� ;� �L�L�.�s�e�2�a�S�9� :� :��� =� �L�L�0���R��s�;� <� <�� =���/�.�.�.�.�.�s��:F�B+�F�E&�B3�B-�B3�5B/�6#B3� F�%B1�&F�-B3�/B3�1F�3E�C'�"E&�'E�>D�E&� E�+E �E&� E�E&� F�E"� F�&E=�,E/ �- E=�9F�query�limitc ��# �SSUSUS.n[[US9IShv�N nU(aSU;d USS(dg/nUSSHynUSnUS RS S 5RS S 5nS [RR URSS553nUR SUSUSU35 M{ SRU5$N�![a"n [RSU 35 Sn A gSn A ff=f7f)zSearch Wikipedia for articles.r%�searchr)�action�list�srsearch�format�srlimit�r Nz+No Wikipedia articles found for your query.�title�snippetz<span class="searchmatch">�z</span>zhttps://en.wikipedia.org/wiki/� �_zTitle: z Summary: z URL: � zError in wiki_search: z4Failed to search Wikipedia due to an internal error.) r$� WIKI_API_BASE�replace�urllib�parse�quote�append�joinrrr) r%r&r �data�results�itemr/r0r r"s r#� wiki_searchr?:s���F������  ��&�m�F�C�C���w�d�*�$�w�-��2I�@�����M�(�+�D���M�E��9�o�-�-�.L�b�Q�Y�Y�Zc�eg�h�G�2�6�<�<�3E�3E�e�m�m�TW�Y\�F]�3^�2_�`�C� �N�N�W�U�G�;�w�i�w�s�e�L� M� ,� �{�{�7�#�#�D�� �F�� � �-�a�S�1�2�E��F�sI�D�C�C�C�D�BC�D�C� D�!C>�9D�>D�D�include_raw_contentc ��# �[USSUSUS.n[[S3US9IShv�N nU(dg/nURS 5(aUR S US 35 URS 5(a{[ US SUS 5HeupgUS URSS5SURSS53nURS5(aUSUSSSS3- nUR U5 Mg URS5(a,UR S5 UR SUS55 U(aSRU5$S$GN)![a"n [RSU 35 Sn A gSn A ff=f7f)z%Search the internet using Tavily API.�basicTF)�api_keyr%� search_depth�include_answerr@�include_images� max_resultsz/search)rNz:Failed to perform internet search. Please try again later.�answerzQuick Answer: r=�z. r/zNo titlez URL: r zNo URL�contentz Content: i�z...�follow_up_questionsz Suggested follow-up questions:c3�,# �UH nSU3v� M g7f)z- N�)�.0�qs r#� <genexpr>�"internet_search.<locals>.<genexpr>xs���I�-H��R��s�8�-H�s�r4zNo results found.zError in internet_search: z;Failed to perform internet search due to an internal error.) �TAVILY_API_KEYr$�TAVILY_API_BASErr:� enumerate�extendr;rrr) r%r&r@� request_datar<r=�idx�result� result_strr"s r#�internet_searchrZWs����#M�%��#�"�#6�#� � � �&��(9��&A� �U�U���O��� �8�8�H� � � �N�N�^�D��N�+;�<� =� �8�8�I� � �(��i���%�)@�!�D� �� #�u�B�v�z�z�'�:�'F�&G�z�RX�R\�R\�]b�dl�Rm�Qn�o� ��:�:�i�(�(��N�6�)�3D�T�c�3J�2K�3�"O�O�J����z�*� E� �8�8�)� *� *� �N�N�=� >� �N�N�I�T�2G�-H�I� I�'.�v�{�{�7�#�G�4G�G�+V��, �M�� � �1�!��5�6�L��M�sU�F�"E�E� E�F�DE� F� E�F�E� E>�E9�4F�9E>�>F�symbol�periodc ���# �/SQnX;aSSRU53$UUSSS.n[[U3US9IShv�N nU(aS U;d US S (dS U3$US S S nUS nUSSS nUSnUV s/sH(n [R"U 5R S5PM* n n Sn X�n USU n USU nUSU nUSU nUSU nSUSSUSS3SUS3SUS 3S!US"3S#S$U 3S%U 3S&U3S'U3S(U3S)U3/ nS*RU5$N�s sn f![ a(n[RS+U35 S,US-3sSnA$SnAff=f7f).z)Get stock information from Yahoo Finance.)�1d�5d�1mo�3mo�6mo�1y�5yz Invalid period. Must be one of: z, r^�false)r[�range�interval�includePrePostr.N�chartrXz#Could not retrieve data for symbol r�meta� indicatorsr9� timestampz%Y-%m-%d������open�high�low�close�volumezStock: r[z (� exchangeName�)z Currency: �currencyzCurrent Price: �regularMarketPricezPrevious Close: �chartPreviousClosez Latest Trading Day:zDate: zOpen: zHigh: zLow: zClose: zVolume: � zError in yahoo_finance_search: z$Failed to retrieve finance data for z due to an internal error.) r;r$�YAHOO_FINANCE_BASEr� fromtimestamp�strftimerrr)r[r\� valid_periodsr r<rXrjrk� timestamps�ts�dates� latest_idx� latest_date� latest_open� latest_high� latest_low� latest_close� latest_volumer!r"s r#�yahoo_finance_searchr�s(���1Y�E� � � &�5�d�i�i� �6N�5O�P� P����%�  ��&�);�(<�V�H�&E�f�U�U���w�d�*�$�w�-��2I�8���A� A��g��x�(��+���f�~���L�)�'�2�1�5� ��K�(� �KU�V�:�R��'�'��+�4�4�Z�@�:��V�� ��'� � ��(��4� � ��(��4� ���&�z�2� �!�'�*�:�6� �"�8�,�Z�8� ��d�8�n�%�R��^�(<�'=�Q� ?���j�)�*� +��d�#7�8�9� :��t�$8�9�:� ;� #��[�M� "��[�M� "��[�M� "��J�<� ��l�^� $��}�o� &�  ���y�y��"�"�EV��W��2 �Y�� � �6�q�c�:�;�5�f�X�=W�X�X��Y�sm�E/�D:�E/�D:�D3�"D:� E/�!$D:�/D5�4A>D:�2E/�3D:�5D:�: E,�E'�!E,�"E/�'E,�,E/�__main__zStarting MCP server...zFailed to start server: )NNN)�)r�F)r`)$�typingrr�mcp.server.fastmcpr� urllib.parser7r�os�logging� basicConfig�INFO� getLogger�__name__r�mcpr5rSryrrRr� ValueError�str�dictr$�tool�intr?�boolrZr��info�runrr"rM�r#�<module>r�s���� �&��� �����'�,�,�'� � � �8� $��������5� �*��I�� � �=��� �L�L�>�?� �B� C�C����T��4��VZ��fj�kn�ps�ks�ft�w{�f{��4����F�S�F��F�S�F� �F�8����%M��%M�S�%M�4�%M�\_�%M� �%M�N����3Y�s�3Y�C�3Y�C�3Y� �3Y�j �z���� � �,�-� ��� ��� ��� � �/��s�3�4� ���s�!D&�&E�,E�E

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/dev484p/AgenticAI_MCP'

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