Skip to main content
Glama

NetBrain MCP

by NorthLaneMS
device_prompts.cpython-312.pyc15 kB
� �s&hT;� �:�dZddlmZmZmZmZmZddlZddlZddl m Z m Z m Z m Z mZddlmZmZmZddlmZmZej,d�Ze j0dd � � d#d ed ed ededee f d��Ze j0dd� � d$d eded ededee f d��Ze j0dd� �d ededededee f d��Ze j0dd� � d%d edededee fd��Ze j0dd � �d edee fd!��Zd"�Ze�y)&u� 设备操作命令提示模板 将命令模板系统与MCP提示模板系统结合,提供网络设备操作相关的提示模板。 �)�Dict�List�Any�Optional�UnionN)�template_manager�Message� UserMessage�AssistantMessage� SystemMessage)�get_command_template�SUPPORTED_VENDORS�TEMPLATE_TYPES)�device_manager� DeviceVendor�device_prompts�configure_vlanu配置VLAN提示模板)�name� description� device_id�vlan_id� vlan_name� operation�returnc���tj|�}|s$td�td|�d��t d�gSt |j d�r|j jn"t|j �j�}|tvrFtd|�d��td|j�d |j�d |�d ��t d |�d ��gSd}|j�dk(rt|dd||��}n"|j�dk(rt|dd|��}|s;td�td|j�d|�d|�d ��t d|�d|�d��gS|j�dk(rdnd}d|��|rd |�d�nd z}td!|�d"��td|j�d |j�d#|�d$|�d � �t d!|j�d |j�d%|�d$|�d&|�d'� �gS)(u� 配置VLAN的提示模板 Args: device_id: 设备ID vlan_id: VLAN ID vlan_name: VLAN名称 operation: 操作类型,create/delete Returns: 消息列表 �设备信息获取失败u我想配置VLAN �!,但无法找到指定设备。�Y无法找到指定的设备。请确认设备ID是否正确,或者先添加该设备。�value� 设备厂商(�)不在支持列表中� 我想在� (u)上配置VLAN �。�该设备厂商(u\)暂不支持自动生成配置命令。请手动输入适合该设备的VLAN配置命令。N�create� vlan_config� create_vlan)rr�delete� delete_vlan)r�命令生成失败u上z VLAN � 无法生成u 设备的VLANu'命令。请检查参数是否正确。u创建u删除zVLAN �)��为u设备生成VLAN配置命令�)上� � )设备生成u的配置命令如下: ``` �h ``` 请确认命令无误后,可以使用`send_command`或`send_commands`工具执行这些命令。)r� get_devicer r r �hasattr�vendorr�str�lowerrr� ip_addressr ) rrrr�devicer6�command�operation_text� vlan_descs � F:\NetBrainMCP\device_prompts.py�configure_vlan_promptr?#sZ��.� &� &�y� 1�F� � �4� 5� �+�G�9�4U�V� W� �x� y� � �%,�F�M�M�7�$C�V�]�]� � ��V�]�]�I[�Ia�Ia�Ic�F� �&�&� �M�&��1G�H� I� �)�F�K�K�=��6�3D�3D�2E�_�U\�T]�]`�a� b� �/��x�8T�U� V� � ��G�����H�$�&� � � ���  �� ��� �h� &�&� � � ��  �� � �.� /� �)�F�K�K�=��I�;�f�W�I�S�Q� R� �|�F�8�=�� �Kr�s� t� � �"+���!2�h�!>�X�H�N���y�!�)�r�)��A�%6��L�I� ��F�8�#?�@�A��i�� � �}�B�v�/@�/@�.A��n�EU�UV�W`�Va�ad�e�f���&�+�+��b��!2�!2� 3�=��@P�PQ�R[�Q\�]��9�q� r� � ���add_interface_to_vlanu配置接口VLAN提示模板� interface�modec�F�tj|�}|s'td�td|�d|�d��t d�gSt |j d�r|j jn"t|j �j�}|tvr<td|�d��td |j�d |�d|�d ��t d |�d ��gSt|dd|||��}|s8td�td |j�d |�d|�d ��t d|�d��gS|j�dk(rdnd}td|�d��td |j�d|j�d|�d|�d|�d� �t d|j�d|j�d|�d|�d|�d |�d!� �gS)"u� 配置接口VLAN的提示模板 Args: device_id: 设备ID interface: 接口名称 vlan_id: VLAN ID mode: 接口模式,access或trunk Returns: 消息列表 ru我想将接口u添加到VLAN rrrr r!r"� 上将接口r$r%ub)暂不支持自动生成配置命令。请手动输入适合该设备的接口VLAN配置命令。r'rA)rBrrCr+u配置为VLAN r,u@设备的接口VLAN配置命令。请检查参数是否正确。�accessu接入u中继r/u"设备生成接口VLAN配置命令r#u )上将接口u的u 端口。�)设备生成配置接口u为VLAN u端口命令如下: ``` r3�rr4r r r r5r6rr7r8rrr r9)rrBrrCr:r6r;� mode_texts r>�add_interface_to_vlan_promptrJss��.� &� &�y� 1�F� � �4� 5� �/�)��N�7�)�Kl�m� n� �x� y� � �%,�F�M�M�7�$C�V�]�]� � ��V�]�]�I[�Ia�Ia�Ic�F� �&�&� �M�&��1G�H� I� �)�F�K�K�=� �Y�K�~�V]�U^�^a�b� c� �/��x�8Z�[� \� � �#������ � �G� � �.� /� �)�F�K�K�=� �Y�K�~�V]�U^�^a�b� c� �|�F�8�3s�t� u� � �!�J�J�L�H�4��(�I� ��F�8�#E�F�G��i�� � �}�B�v�/@�/@�.A��y�k�Yg�ho�gp�ps�t}�s~�H�I� J���&�+�+��b��!2�!2� 3�3L�Y�K�W_�`g�_h�hk�lu�kv�w��9�q� r� � �r@�configure_interface_ipu 配置接口IP地址提示模板r9� subnet_maskc��tj|�}|s$td�td|�d��t d�gSt |j d�r|j jn"t|j �j�}|tvr?td|�d��td|j�d |�d |�d |�d � �t d |�d��gSt|dd|||��}|s5td�td|j�d |�d��t d|�d��gStd|�d��td|j�d|j�d|�d |�d |�d � �t d|j�d|j�d|�d |�d |�d|�d� �gS)u� 配置接口IP地址的提示模板 Args: device_id: 设备ID interface: 接口名称 ip_address: IP地址 subnet_mask: 子网掩码 Returns: 消息列表 r�我想配置接口u,的IP地址,但无法找到指定设备。rrr r!r"�上配置接口u的IP地址为r1r$r%u`)暂不支持自动生成配置命令。请手动输入适合该设备的接口IP配置命令。�interface_configrK)rBr9rLr+u的IP地址。r,u>设备的接口IP配置命令。请检查参数是否正确。r/u 设备生成接口IP配置命令r#u)上配置接口rG�的命令如下: ``` r3rH)rrBr9rLr:r6r;s r>�configure_interface_ip_promptrR�s ��.� &� &�y� 1�F� � �4� 5� �,�Y�K�7c�d� e� �x� y� � �%,�F�M�M�7�$C�V�]�]� � ��V�]�]�I[�Ia�Ia�Ic�F� �&�&� �M�&��1G�H� I� �)�F�K�K�=�� �{�.�Yc�Xd�de�fq�er�ru�v� w� �/��x�8X�Y� Z� � �#��� ���� �G� � �.� /� �)�F�K�K�=�� �{�.�Y� Z� �|�F�8�3q�r� s� � � ��F�8�#C�D�E��i�� � �}�B�v�/@�/@�.A�AQ�R[�Q\�\j�ku�jv�vw�yD�xE�EH�I� J���&�+�+��b��!2�!2� 3�3L�Y�K�We�fp�eq�qr�s~�r�@��9�q� r� � �r@�configure_interface_stateu配置接口状态提示模板�statec�,�tj|�}|s$td�td|�d��t d�gSt |j d�r|j jn"t|j �j�}|tvr<td|�d��td|j�d |�d |�d ��t d |�d ��gSt|dd||��}|s5td�td|j�d|�d��t d|�d��gS|j�dk(rdnd}td|�d��td|j�d|j�d|�d|�d� �t d|j�d|j�d|�d|�d |�d!� �gS)"u� 配置接口状态的提示模板 Args: device_id: 设备ID interface: 接口名称 state: 接口状态,up或down Returns: 消息列表 rrNu*的状态,但无法找到指定设备。rrr r!r"rEu 设置为u 状态。r%ud)暂不支持自动生成配置命令。请手动输入适合该设备的接口状态配置命令。rPrS)rBrTr+rOu 的状态。r,uB设备的接口状态配置命令。请检查参数是否正确。�upu启用u禁用r/u$设备生成接口状态配置命令r#r0u接口r$r2rQr3rH)rrBrTr:r6r;� state_texts r>� configure_interface_state_promptrXs���*� &� &�y� 1�F� � �4� 5� �,�Y�K�7a�b� c� �x� y� � �%,�F�M�M�7�$C�V�]�]� � ��V�]�]�I[�Ia�Ia�Ic�F� �&�&� �M�&��1G�H� I� �)�F�K�K�=� �Y�K�y�QV�PW�W`�a� b� �/��x�8\�]� ^� � �#���#��� �G� � �.� /� �)�F�K�K�=�� �{�,�W� X� �|�F�8�3u�v� w� � �#�[�[�]�d�2���J� ��F�8�#G�H�I��i�� � �}�B�v�/@�/@�.A��j�\�QW�Xa�Wb�be�f�g���&�+�+��b��!2�!2� 3�=�� �F�S\�R]�^��9�q� r� � �r@�device_basic_diagnosisu设备基本诊断提示模板c �(�tj|�}|s td�td�t d�gSt |j d�r|j jn"t|j �j�}g}|j�dk(rgd�}nh|j�dk(rgd�}nPtd |�d ��td |j�d ��t d |j�d|j�d|�d��gStd|�d��td |j�d|j�d��t d|j�d|j�d�dj|�zd|�d�zdj|dd�zdz�gS)u} 设备基本诊断的提示模板 Args: device_id: 设备ID Returns: 消息列表 ru?我想执行设备基本诊断,但无法找到指定设备。rr�cisco) z show versionzshow interfacezshow ip interface briefzshow running-configzshow vlan briefz show ip routezshow cdp neighborszshow environment allzshow log�huawei) zdisplay versionzdisplay interface briefzdisplay ip interface briefzdisplay current-configurationz display vlanzdisplay ip routing-tablezdisplay lldp neighborzdisplay environmentzdisplay logbufferu 未找到u设备的特定诊断步骤u 我想对u执行基本诊断。u对于r#u)设备,建议执行以下基本诊断步骤: 1. 检查设备版本和硬件状态 2. 检查接口状态 3. 检查IP配置 4. 检查运行配置 5. 检查VLAN配置 6. 检查路由表 7. 检查邻居设备 8. 检查环境参数 9. 检查系统日志 由于uN设备暂无预定义诊断命令,请根据设备特性输入相应命令。r/u$设备生成基本诊断命令列表u)执行基本诊断。u/)设备生成的基本诊断命令如下: ``` � u� ``` 您可以使用`send_commands`工具执行这些命令,并根据输出分析设备状态。 命令格式: send_commands(device_id="u-", credential_id="您的凭据ID", commands="�;N�z...")) rr4r r r r5r6rr7r8rr9�join)rr:r6�diagnosis_stepss r>�device_basic_diagnosis_promptrbGs���� &� &�y� 1�F� � �4� 5� �Y� [� �x� y� � �%,�F�M�M�7�$C�V�]�]� � ��V�]�]�I[�Ia�Ia�Ic�F��O� �|�|�~�� �  �� ����8� #�  �� �I�f�X�-H�I� J� �)�F�K�K�=�0E�F� G� ����� �R��(9�(9�':� ;� �� n� p� � � �( ��F�8�#G�H�I��i�� � �}�B�v�/@�/@�.A�AW�X�Y���&�+�+��b��!2�!2� 3�4� ��y�y��1� 2�57�7@�k�Ar�5t� t� �H�H�_�R�a�(� )�  *�-5�  5� � � r@c��tjd�tjdttj��d��y)u!初始化设备提示模板模块u'设备提示模板模块初始化完成u 已注册u个提示模板N)�logger�info�lenr� templates�r@r>�init_device_promptsri�s1�� �K�K�9�:� �K�K�)�C� 0� :� :�;�<�O�L�Mr@)Nr&)rF)rV) �__doc__�typingrrrrr�logging�json�template_systemrr r r r �templates.command_templatesr rr�network_devicesrr� getLoggerrd�register_templater7r?rJrRrXrbrirhr@r>�<module>rss��� 4�3�� �����9� �� � �+� ,��$��#�#� �(���� J��J� �J��J�� J�  �'�]� J� �J�X$��#�#� �.��� A��A��A��A� � A�  �'�]� A� �A�J$��#�#� !�2��?��?��?��?�� ?�  �'�]� ?� �?�B$��#�#� $�0���>��>��>� �>� �'�]� >� �>�D$��#�#� !�0��P�S�P�T�'�]�P� �P�fN� �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