Skip to main content
Glama

Shell MCP Server

by odysseus0
server.cpython-312.pyc5.73 kB
� Yg� ��&�ddlmZddlZddlmZddlZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlmZddlZej(ej*d � �ej,e�ZGd �d ee�ZGd �de�ZGd�d�Zdd�Zy)�)�EnumN)�Sequence)�Server)� stdio_server)�Tool� TextContent� ImageContent�EmbeddedResource)�McpError)� BaseModelz)%(asctime)s - %(levelname)s - %(message)s)�level�formatc��eZdZdZy)� ShellTools�execute_commandN)�__name__� __module__� __qualname__�EXECUTE_COMMAND���I/Users/tengjizhang/projects/mcp/cli-server/src/mcp_server_shell/server.pyrrs��'�Orrc�,�eZdZUeed<eed<eed<y)� CommandResult�command�output� return_codeN)rrr�str�__annotations__�intrrrrrs�� �L� �K��rrc��eZdZdedefd�Zy)� ShellServerr�returnc��tjd|��� tj|ddd��}tj d|j |j z���t||j |j z|j��S#t$r=}tjdt|����tdt|�����d}~wwxYw)z-Execute a shell command and return the resultzExecuting command: T)�shell�capture_output�textzCommand output: )rrrzCommand execution failed: N) �logger�info� subprocess�run�debug�stdout�stderrr� returncode� Exception�errorrr )�selfr�result�es rrzShellServer.execute_commands���� � �)�'��3�4� B��^�^���#�� �F� �L�L�+�F�M�M�F�M�M�,I�+J�K� L� ���}�}�v�}�}�4�"�-�-�� �� � B� �L�L�5�c�!�f�X�>� ?��7��A��x�@�A� A�� B�s�A6B� C�8C�CN)rrrrrrrrrr"r"s��B�s�B�}�Brr"c ��V�K�tjd�td�}t��|j �dt t fd��}|j�dtdtdtttztzf�fd� �}tjd�|j�}t�4�d{���\}}tjd �|j!|||��d{���ddd��d{���y7�H7�7� #1�d{���7swYyxYw�w) NzStarting MCP shell server...z mcp-shellr#c ��K�tjd�ttjj ddddddd�idgd �� �gS�w) zList available shell tools.zListing available toolszExecute Shell Commandz-Execute a shell command and return its output�objectr�stringzShell command to execute)�type� description)r9� properties�required)�name� display_namer:� inputSchema)r(r,rrr�valuerrr� list_toolszserve.<locals>.list_tools4s^���� � � �.�/� ��/�/�5�5�4�K�$�!�$,�+E�$�#� "+� � �  � � �s�AA r=� argumentsc���K�tjd|�d|��� |tjjk(r`|j d�}|s t d���j|�}tdtj|j�d����gSt d |����#t$r}t d t|�����d }~wwxYw�w) z.Handle tool calls for shell command execution.zTool call received: z with arguments: rz"Missing required argument: commandr'�)�indent)r9r'zUnknown tool: zError executing shell command: N)r(r)rrr@�get� ValueErrorrr�json�dumps� model_dumpr0r)r=rBrr3r4� shell_servers �r� call_toolzserve.<locals>.call_toolJs������ � � �*�4�&�0A�)��M�N� I��z�1�1�7�7�7�#�-�-� �2���$�%I�J�J�%�5�5�g�>���V�$�*�*�V�=N�=N�=P�YZ�2[�\���!�>�$��!8�9�9��� I��>�s�1�v�h�G�H� H�� I�s/�C�A<B+�C�B+�+ C�4C � C�CzInitializing server...z+Server started and ready to handle requests)r(r)rr"rA�listrrLr�dictrrr r �create_initialization_optionsrr+)�serverrArL�options� read_stream� write_streamrKs @r�serverT/s����� �K�K�.�/� �K� �F��=�L� ���� �d�4�j� �� �* ����I��I�"�I� �+� �,�/?�?� @�I��I�* �K�K�(�)��2�2�4�G��~�=�=�!<�+�|�� � �A�B��j�j��l�G�<�<�<�=�=�=��<��=��=�=�=�sZ�CD)�D�D)� /D�8D�9D�= D)�D� D)�D�D)�D&�D �D&�"D))r#N)�enumrrH�typingrr*� mcp.serverr�mcp.server.stdior� mcp.typesrrr r �mcp.shared.exceptionsr �pydanticr �logging� basicConfig�INFO� getLoggerrr(rrrr"rTrrr�<module>r`s��� ����)�G�G�*������� �,�,� 6�� �� � �8� $��(��d�(��I�� B�B�*5=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/odysseus0/mcp-server-shell'

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