Skip to main content
Glama
sap_server.cpython-311.pyc6.17 kB
� �h� ��ddlZddlZddlZddlmZddlmZddlmZm Z ddl m Z m Z m Z Gd�d��Zeded ee ee ffd ���Zed ed g� ��Ze��� ddede e ee fde e d e fd���Zd�Zedkreje����dSdS)�N)�asynccontextmanager)�FastMCP)� TextContent�ToolCallResult)�Any�Dict�Optionalc�p�eZdZd defd�Zdedeeeffd�Zdedeeefdeeeffd �Zd S) � SAPService� config.json� config_filec���|�|��|_|jdd|_|jdd|_t jd���|_dS)N�sap_api�base_url�clientg>@)�timeout)� load_config�configrr�httpx� AsyncClient�session)�selfr s � sap_server.py�__init__zSAPService.__init__ sV���&�&�{�3�3�� �� �I�.�z�:�� ��k�)�,�X�6�� ��(��6�6�6�� � � �� file_path�returnc�~�t|d��5}tj|��cddd��S#1swxYwYdS)N�r)�open�json�load)rr�fs rrzSAPService.load_configs~�� �)�S� !� !� �Q��9�Q�<�<� � � � � � � � � � � � ���� � � � � � s �2�6�6� function_name� parametersc��BK�|j�d|j��}||d�}|jd�d��}|jd�d��} |r(|r&|j�||||f����d{V��}n"|j�||����d{V��}|���|���S#tj $r}d d |j j ��icYd}~Sd}~wt$r}d d t|����icYd}~Sd}~wwxYw) u+异步调用SAP RFC函数(新版实现)z ?sap-client=)�FUNCTION� PARAMETERr�username�password)r!�authN)r!�erroruSAP API错误: u网络请求失败: )rrr�getr�post�raise_for_statusr!r�HTTPStatusError�response� status_code� Exception�str) rr$r%�url�payloadr)r*r1�es r�call_sap_functionzSAPService.call_sap_functions�������9�9�D�K�9�9��,�:�F�F���;�y�)�-�-�j�9�9���;�y�)�-�-�j�9�9�� >�� F�H� F�!%��!2�!2�3�W�H�V^�K_�!2�!`�!`�`�`�`�`�`�`���!%��!2�!2�3�W�!2�!E�!E�E�E�E�E�E�E�� � %� %� '� '� '��=�=�?�?� "���$� I� I� I��G�q�z�/E�G�G�H� H� H� H� H� H� H������ >� >� >��<�C��F�F�<�<�=� =� =� =� =� =� =����� >���s1�A3C�D�C3�-D�3 D�D�D�DN)r ) �__name__� __module__� __qualname__r4rrrrr8�rrr r s�������7�7�C�7�7�7�7�  �S� �T�#�s�(�^� � � � �>�S�>�d�3�PS�8�n�>�Y]�^a�cf�^f�Yg�>�>�>�>�>�>rr �mcprc�K�t��} d|iWV�|j����d{V��dS#|j����d{V��wxYw)u-管理SAP连接池和资源初始化[3](@ref)� sap_serviceN)r r�aclose)r=r?s r�lifespanrA,s������,�,�K�+��k�*�*�*�*�*��!�(�(�*�*�*�*�*�*�*�*�*�*�*��k�!�(�(�*�*�*�*�*�*�*�*�*�*���s �:�!AzSAP-MCP-Serverr)�namerA� dependenciesr$r%�ctxc ���K�|�i}|r |jdn t��}|�||���d{V��}tt dt j|d������g���S)u� Call SAP functions via RESTful API Parameters: function_name (str): SAP函数名称 (e.g. BAPI_PO_CREATE) parameters (dict): 函数参数字典 (默认: {}) Nr?�text�)�indent)�typerF)�content)�lifespan_contextr r8rrr!�dumps)r$r%rDr?�results rr8r8=s�������� �:=�N�#�&�}�5�5�*�,�,�K��0�0�� �K�K� K� K� K� K� K� K�F� ��&�t�z�&��/K�/K�/K�L�L�L�M� � � �rc��K�t�d��dtfd���}t�d����d{V��dS)Nzsap://system-inforc�J�tjtjdddgd���S)u获取SAP系统基本信息z1.0zBAPI*zRFC_*)�system�version�supported_functions)r!rLr=rBr<rr�get_system_infozmain.<locals>.get_system_infoZs2���z��h��$+�W�#5� � � � � r�stdio)� transport)r=�resourcer4�run)rSs r�mainrXXsg�����\�\�%�&�&� �S� � � �'�&� � �'�'�G�'� $� $�$�$�$�$�$�$�$�$�$r�__main__)NN)r!r�asyncio� contextlibr�mcp.server.fastmcpr�mcp.server.fastmcp.typesrr�typingrrr r � AsyncIteratorr4rAr=�toolr8rXr9rWr<rr�<module>ras��� � � � � � � � �����*�*�*�*�*�*�&�&�&�&�&�&�@�@�@�@�@�@�@�@�&�&�&�&�&�&�&�&�&�&�>�>�>�>�>�>�>�>�D�+��+�M�$�s�C�x�.�$A�+�+�+���+��g� � ������������,0��������c�3�h��(�� �#���� ��� ���4 %� %� %� �z����G�K�����������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/Richard-Zhangxj/SAP_MCP'

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