Skip to main content
Glama
pshempel

MCP Time Server Node

by pshempel
stress_test.cpython-311.pyc5.9 kB
� m��h$��D�dZddlZddlZddlZddlZGd�d��ZdS)zY Simple MCP Stress Tester - KISS Implementation Starting with minimal code to pass tests �Nc�@�eZdZdZd�Zd�Zd�Zd�Zd d�Zd�Z d d �Z d S)�SimpleStressTesterz$Simple stress tester for MCP serversc�"�||_d|_dS)N)� server_cmd�process)�selfrs �B/home/pshempel/src/local/time-node_tdd/tests/stress/stress_test.py�__init__zSimpleStressTester.__init__s��$����� � � �c��tj|jtjtjtjdd���|_t jd��dS)zStart the MCP serverTr)�stdin�stdout�stderr�text�bufsize�N)� subprocess�Popenr�PIPEr�time�sleep�rs r � start_serverzSimpleStressTester.start_serversH��!�'� �O��/��?��?���  � � �� � � �1� � � � � r c��|jr|j����dS tj|jj��}|���jdz dz S#tjtjf$rYdSwxYw)zCheck server memory usage in MBNgi) r�poll�psutil�Process�pid� memory_info�rss� NoSuchProcess� AccessDenied)r�procs r � check_memoryzSimpleStressTester.check_memory s����|� �t�|�0�0�2�2�>��3� ��>�$�,�"2�3�3�D��#�#�%�%�)�D�0�4�7� 7���$�f�&9�:� � � ��3�3� ���s�<A!�!B�?Bc�x�|jr�|jjr|jj���|jjr|jj���|jjr|jj���|j���|j���dSdS)zStop the serverN)rr �closerr� terminate�waitrs r � stop_serverzSimpleStressTester.stop_server*s��� �<� ��|�!� +�� �"�(�(�*�*�*��|�"� ,�� �#�)�)�+�+�+��|�"� ,�� �#�)�)�+�+�+� �L� "� "� $� $� $� �L� � � � � � � � � r ��?c��||z |z }||kS)a<Check if memory growth indicates a leak Args: initial_memory: Starting memory in MB final_memory: Ending memory in MB threshold: Growth factor threshold (default 0.5 = 50%) Returns: True if memory growth exceeds threshold �)r�initial_memory� final_memory� threshold� growth_factors r �is_memory_leakz!SimpleStressTester.is_memory_leak9s��&��6�.�H� ��y�(�(r c�z�|jr|j����dS |jj�t j|��dz��|jj���|jj���}|rt j |��SdS#t$rYdSwxYw)z*Send a single MCP request and get responseN� ) rrr �write�json�dumps�flushr�readline�loads� Exception)r�request� response_lines r � send_requestzSimpleStressTester.send_requestGs����|� �t�|�0�0�2�2�>��4� � �L� � $� $�T�Z��%8�%8�4�%?� @� @� @� �L� � $� $� &� &� &�!�L�/�8�8�:�:�M�� 1��z�-�0�0�0��4��� � � ��4�4� ���s�BB,�, B:�9B:�<c�t�|jr|j����dStj��}|���}ddd|ddd�}d}tj��|z |krzdd|dd d id �d �}|�|��}|d xxdz cc<|�d|vr|dxxdz cc<|dz }tjd��tj��|z |k�ztj��|z |d<|���|d<|�||d��|d<|S)z6Hammer the server with requests for specified durationNrF)�total_requests�errors�duration� memory_start� memory_end�memory_leak_detected�z2.0z tools/call�get_current_time�timezone�UTC)�name� arguments)�jsonrpc�method�id�paramsr@�errorrAg{�G�z�?rBrDrE)rrrr$r=rr1)r�seconds� start_time� start_memory�results� request_idr;�responses r � hammer_serverz SimpleStressTester.hammer_serverYs����|� �t�|�0�0�2�2�>��4��Y�[�[� ��(�(�*�*� � ���(��$)�  � ��� ��i�k�k�J�&��0�0� �&� �.�",�e�!4��� ��G��(�(��1�1�H� �$� %� %� %�� *� %� %� %���7�h�#6�#6���!�!�!�Q�&�!�!�!� �!�O�J� �J�t� � � �'�i�k�k�J�&��0�0�,#�i�k�k�J�6�� �� $� 1� 1� 3� 3�� ��*.�*=�*=� �'�,�/�+ �+ ��&�'��r N)r*)r>) �__name__� __module__� __qualname__�__doc__r rr$r)r1r=rWr,r r rr s�������.�.���� � � ����  �  �  � )� )� )� )����$/�/�/�/�/�/r r)r[rrrr5rr,r r �<module>r\st���� ���� � � � � � � � � � � � �{�{�{�{�{�{�{�{�{�{r

Latest Blog Posts

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/pshempel/mcp-time-server-node'

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