�
���gF � � � d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlZ dZ
e
� � � ZdZ
ej ej dej �� � ej e� � Z ee
� � Zdd lmZ dd
lmZ dd lmZ dd
lmZ ddgeed
�gZd� Zd� Z e� � � e� � e�! � � e� � d� Z"edk r3e�# de
� d�� � e j$ e"� � � � dS dS )� N)�InitializationOptions)�NotificationOptions�Server� southAsiaz1.0z)%(asctime)s - %(levelname)s - %(message)s)�level�format�stream� )�handle_list_tools)�handle_call_tool�mcp_southAsia_file_editor�mcp_file_editor)�prefixes�
list_tools� call_toolc � �t K � g } t D ]+}| � |d � � � d{V ��� � �,| S )u4
合併所有工具處理器的工具列表
r N)�HANDLERS�extend)�tools�handlers �5F:\Tool-common\southAsia_Tool\src\southasia\server.py�combined_list_toolsr / sV � � � �
�E�� 4� 4��
���0�7�<�0�2�2�2�2�2�2�2�2�3�3�3�3��L� c � �T K � t D ]_}|d D ]T}| � |� � r=t � d| � d|� d�� � |d | |� � � d{V ��c c S �U�`t � d| � d�� � t d d | |� � � d{V ��S )
u4
根據工具名稱調用對應的處理器
r u 找到工具 'u ' 的匹配前綴 '�'r Nu 未找到工具 'u) ' 的前綴匹配,使用默認處理器r )r �
startswith�logger�info�warning)�name� argumentsr �prefixs r �combined_call_toolr# 8 s� � � � �
� C� C���j�)� C� C�F����v�&�&�
C����O�T�O�O�f�O�O�O�P�P�P�1�W�[�1�$� �B�B�B�B�B�B�B�B�B�B�B�B�B�
C� C� �N�N�V�t�V�V�V�W�W�W��!��[�)�$� �:�:�:�:�:�:�:�:�:r c
� �� K � t � dt � d�� � t � d� � t j j � � � 4 �d{V ��\ } }t � d� � t � | |t t t t �
t � � i �� � �� � � � � d{V �� ddd� � �d{V �� dS # 1 �d{V ��swxY w Y dS # t $ rI}t �
dt |� � � �� � t j d � � Y d}~dS d}~ww xY w)
uU
主程式入口點。
使用標準輸入/輸出串流運行伺服器。
u
正在啟動 u MCP 工具...u 初始化服務...Nu* 服務器啟動成功!等待指令中...)�notification_options�experimental_capabilities)�server_name�server_version�capabilitiesu 服務器啟動失敗:r
)r r �
MCP_TOOL_NAME�mcp�server�stdio�stdio_server�runr �MCP_TOOL_VERSION�get_capabilitiesr � Exception�error�str�sys�exit)�read_stream�write_stream�es r �mainr: M s� � � � �
�K�K�=�
�=�=�=�>�>�>�
�K�K�$�%�%�%���:�#�0�0�2�2�
�
�
�
�
�
�
�6Q�{�L��K�K�D�E�E�E��*�*���%� -�#3�!'�!8�!8�-@�-B�-B�24� "9� "� "�� � �� �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
�� � � � ����8��A���8�8�9�9�9��������������������s= �)D �*B C=�*D �=
D�D �
D�D �
E#�>E�E#�__main__u
歡迎使用 u MCP 工具)%�asyncior5 �logging�mcp.server.modelsr �
mcp.serverr r �mcp.server.stdior+ r* �lower�MCP_TOOL_NAME_LOWERCASEr0 �basicConfig�INFO�stderr� getLogger�__name__r r, �handlers.hello_worldr �hello_world_list_toolsr �hello_world_call_tool�handlers.file_editor�file_editor_list_tools�file_editor_call_toolr r r# r r r: r r/ � r r �<module>rO s� �� ����
�
�
�
� ���� 3� 3� 3� 3� 3� 3� 2� 2� 2� 2� 2� 2� 2� 2� � � � � �
�'�-�-�/�/� �� � �� �
�,�6��:�� � � �
�� �8� $� $��
��
� � �� N� M� M� M� M� M� K� K� K� K� K� K� M� M� M� M� M� M� K� K� K� K� K� K� 1�2C�D�,�*�� �
��� � �
;�
;�
;� �� � � � �'� (� (� (� �� � � � �%� &� &� &�� � �8 �z�� �
�K�K�:�
�:�:�:�;�;�;��G�K����������� r