Skip to main content
Glama

NetBrain MCP

by NorthLaneMS
tool_manager.cpython-313.pyc7.73 kB
� l�h*��L�SSKJrJrJrJrJrJrJrJr SSK r SSK J r SSK J r SSKJr SSKrSSKr\R$"\R&S\R("\R*S9/S9 \R,"S 5r"S S \ 5r\ "S S 55r"SS5r\"5rg)�)�Dict�List�Callable�Any�Optional�Union�TypeVar�GenericN)�Enum)� dataclass)�wrapsz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)�stream)�level�format�handlers� tool_managerc�0�\rSrSrSrSrSrSrSrSr Sr S r g ) � ToolCategory�u工具分类枚举�general�network_device� configuration�topology� diagnostic�security�N) �__name__� __module__� __qualname__�__firstlineno__�__doc__�GENERAL�NETWORK_DEVICE� CONFIGURATION�TOPOLOGY� DIAGNOSTIC�SECURITY�__static_attributes__r��F:\NetBrainMCP\tool_manager.pyrrs#����G�%�N�#�M��H��J��Hr)rc�j�\rSrSr%Sr\\S'\\S'\\S'\\S'\ \\ \\ 44\S'\\S'S r g ) �ToolInfo�u工具信息数据类�name�func� description�category� parameters� return_typerN) rrrr r!�str�__annotations__rrrrr(rr)r*r,r,s9��� �I� �N������S�$�s�C�x�.�(�)�)��r)r,c ��\rSrSrSrSrSS\R4S\\ S\\ S\S\ 4S jjr SS\\S\ \ \ \44S jjrS\ S\\4S jrS\ S\4S jrS rg)� ToolManager�&u0工具管理器,负责工具的注册和调用c�~�0Ul[Vs0sHo/_M snUl[R S5 gs snf)Nu工具管理器初始化完成)�toolsr� categories�logger�info)�self�cats r*�__init__�ToolManager.__init__)s4��*,�� �MY�9Z�\�c�r�'�\�9Z���� � �4�5��:[s� :Nr.r0r1�returnc�<^^^^�S[S[4UUUU4SjjnU$)u� 工具注册装饰器 Args: name: 工具名称,默认使用函数名 description: 工具描述,默认使用函数文档字符串 category: 工具分类,默认为通用类 Returns: 装饰器函数 r/rBc �>^^ �T=(d TRm T =(d TR=(d Sn[R"T5n0nURR 5H�upEUR [RR:wa UR O[nUR[RR:XaSO URn[U5UUR[RR:HS.X4'M� UR[RR:wa[UR5OSn[T TUT UUS9n U TRT 'TR T R#T 5 [$R'ST ST R(S35 [+T5UU 4Sj5n U $) Nu 无描述)�type�default�requiredr)r.r/r0r1r2r3�工具 'u' 已注册到类别 '�'c �>�[RST35 T"U0UD6nU$![a*n[RSTS[ U535 eSnAff=f)Nu调用工具: rH�' 执行错误: )r<r=� Exception�errorr4)�args�kwargs�result�er/� tool_names ��r*�wrapper�=ToolManager.register_tool.<locals>.decorator.<locals>.wrapperes`���� � �n�Y�K�8�9��!�4�2�6�2�F�!�M�� ���L�L�8�I�;�6F�s�1�v�h�!O�P����s� %� A�%A�A)rr!�inspect� signaturer2�items� annotation� Parameter�emptyrrFr4�return_annotation� Signaturer,r:r;�appendr<r=�valuer )r/�tool_description�sig�params� param_name�param� param_type� param_defaultr3� tool_inforSrRr1r0r.r>s` @����r*� decorator�,ToolManager.register_tool.<locals>.decorator=s�����-�� � �I� +�I�d�l�l�I�k� ��#�#�D�)�C��F�%(�^�^�%9�%9�%;�!� �16�1A�1A�W�EV�EV�E\�E\�1\�U�-�-�be� �(-� � ��9J�9J�9P�9P�(P��V[�Vc�Vc� �� �O�,� %� � ��1B�1B�1H�1H� H�&��"�&<�9<�8M�8M�QX�Qb�Qb�Qh�Qh�8h�#�c�3�3�4�ns�K�!���,�!�!�'� �I�%.�D�J�J�y� !� �O�O�H� %� ,� ,�Y� 7� �K�K�(�9�+�-C�H�N�N�CS�ST�U� V� �4�[� �� ��Nr))r)r>r.r0r1rgs```` r*� register_tool�ToolManager.register_tool.s$���2 �H�2 ��2 �2 �h�r)c ��/nU(aURRU/5nOURR5nUHznURRU5nU(dM'UR UR UR URRURURS.5 M| U$)us 列出已注册的工具 Args: category: 可选的工具分类过滤器 Returns: 工具信息列表 )r.r0r1r2r3) r;�getr:�keysr]r.r0r1r^r2r3)r>r1rP� tool_namesr.�tools r*� list_tools�ToolManager.list_toolsss����� ����,�,�X�r�:�J������*�J��D��:�:�>�>�$�'�D��t�� � � �I�I�#'�#3�#3� $� � � 3� 3�"&�/�/�#'�#3�#3� ���� r)c�8�URRU5$)uX 获取工具信息 Args: name: 工具名称 Returns: 工具信息或None )r:rl)r>r.s r*�get_tool�ToolManager.get_tool�s���z�z�~�~�d�#�#r)c ��URU5nU(d[SUS35e[RSU35 UR"U0UD6$![ a*n[R SUS[U535 eSnAff=f)u� 执行工具 Args: name: 工具名称 args: 位置参数 kwargs: 关键字参数 Returns: 工具执行结果 Raises: ValueError: 如果工具不存在 rHu ' 不存在u执行工具: rKN)rs� ValueErrorr<r=r/rLrMr4)r>r.rNrOrorQs r*� execute_tool�ToolManager.execute_tool�s����}�}�T�"����x��v�[�9�:� :�� � �n�T�F�+�,� ��9�9�d�-�f�-� -��� � �L�L�8�D�6�)9�#�a�&��B� C� �� �s�A� B�%B�B)r;r:)N)rrrr r!r@rr"rr4rrirrrrpr,rsrwr(rr)r*r7r7&s���:�6� -1�37�/;�/C�/C�C�$�S�M�C�#+�C�=�C�!-�C�IQ�C�J�8�L�#9��T�$�s�TW�x�.�EY��< $�S� $�X�h�%7� $����#�r)r7)�typingrrrrrrr r rU�enumr � dataclassesr � functoolsr �logging�sys� basicConfig�INFO� StreamHandler�stdout� getLoggerr<rr,r7rrr)r*�<module>r�s���O�O�O���!��� ���� �,�,� A����S�Z�Z�0��� � � �>� *���4�� ��� ��O�O�d�}� 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/NorthLaneMS/NetBrain_MCP'

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