Skip to main content
Glama

NetBrain MCP

by NorthLaneMS
template_system.cpython-313.pyc26.4 kB
� ��h�R���SrSSKJrJrJrJrJrJr SSKrSSK r SSK r SSK r SSK r SSK r SSKJrJrJr \R$"\R&S\R("\ R*S9/S9 \R,"S5r\"S S 55r\"S S \55r\"S S\55r\"SS\55r\"SS55r"SS5r\"5rSGS\S\\\4S\\\4S\\\\44Sjjr \RCSSS9SHS\S\S\"S\4S jj5r#\RC5S!\S"\S\\4S#j5r$\RCS$S%S9SIS&\\\4S'\S(\S\\4S)jj5r%\RCS*S+S9SGS&\\\4S,\S-\S\\4S.jj5r&\RCS/S0S9SGS&\\\4S1\S2\S\4S3jj5r'\RCS4S5S9SJS6\S7\(S8\S9\\S:\S;\S\4S<jj5r)\RCS=S>S9S?\\\\4S@\\\\4S\\4SAj5r*\RCSBSCS9SIS&\\\4S,\SD\SE\S\4 SFjj5r+g)Ku� NetBrain MCP 提示模板系统 此模块提供了符合MCP协议的提示模板系统,支持: 1. 模板注册和管理 2. 带有占位符的模板渲染 3. 支持字符串和结构化消息格式 4. 与资源系统集成 �)�Dict�List�Any�Optional�Union�CallableN)� dataclass�asdict�fieldz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)�stream)�level�format�handlers� mcp_templatesc�.�\rSrSr%Sr\\S'\\S'Srg)�Message�u基础消息类�role�content�N)�__name__� __module__� __qualname__�__firstlineno__�__doc__�str�__annotations__�__static_attributes__r��!F:\NetBrainMCP\template_system.pyrrs��� �I� �Lrrc�4^�\rSrSrSrS\4U4SjjrSrU=r$)� UserMessage�&u 用户消息rc�">�[TU]SUS9 g)N�user�rr��super�__init__��selfr� __class__s �r r)�UserMessage.__init__)s��� ���f�g��6rr� rrrrrrr)r� __classcell__�r,s@r r"r"&s����7��7�7rr"c�4^�\rSrSrSrS\4U4SjjrSrU=r$)�AssistantMessage�-u 助手消息rc�">�[TU]SUS9 g)N� assistantr&r'r*s �r r)�AssistantMessage.__init__0s��� ���k�7��;rrr.r0s@r r2r2-s����<��<�<rr2c�4^�\rSrSrSrS\4U4SjjrSrU=r$)� SystemMessage�4u 系统消息rc�">�[TU]SUS9 g)N�systemr&r'r*s �r r)�SystemMessage.__init__7s��� ���h���8rrr.r0s@r r8r84s����9��9�9rr8c�^�\rSrSr%Sr\\S'\\S'\\S'\"\ S9r \ \ \\ 4\S'Srg ) �PromptTemplate�;u 提示模板�name� description�fn)�default_factory� argumentsrN)rrrrrrrrr �listrDrrrrrrr r>r>;s1��� �I����L�&+�D�&A�I�t�D��c��N�#�Arr>c ��\rSrSrSrSrSS\S\4SjjrS\S\\ 4S jr SS\S \ \\ 4S\\ \\\44S jjrS\\ \\ 44S jrS rSrSrg)�TemplateManager�Du高级提示模板管理器c���0Ul[RR[R"5S5Ul[RR UR 5(dC[R"UR 5 [RSUR 35 [RS5 g![a+n[RS[U535 SnANFSnAff=f)N� templatesu已创建模板目录: u无法创建模板目录: u模板管理器初始化完成) rJ�os�path�join�getcwd� templates_dir�exists�makedirs�logger�info� Exception�warningr)r+�es r r)�TemplateManager.__init__Gs������ �W�W�\�\�"�)�)�+�{�C����w�w�~�~�d�0�0�1�1� F�� � �D�.�.�/�� � �5�d�6H�6H�5I�J�K� � � �4�5��� F����!;�C��F�8�D�E�E�� F�s�/AC� C<�!C7�7C<Nr@rAc�^^^�UUU4SjnU$)u� 注册模板装饰器 Args: name: 模板名称(可选,默认使用函数名) description: 模板描述(可选) Returns: 装饰器函数 c��>�T =(d URnT =(d# UR=(d SR5nUTR;a[R SUS35 SSKnURU5n/nURR5H�upgUS;aM SnUR(aLSUS3n [R"X�R5n U (aU RS5R5nURURR:Hn UR!UUU S .5 M� [#UUUUS 9TRU'[R%S U35 U$) N�u模板已存在: u,将被覆盖r)r+�clsz:param z:\s*(.*?)(?:\n|$)�)r@rA�required)r@rArBrDu已注册模板: )rr�striprJrRrU�inspect� signature� parameters�items�re�search�group�default� Parameter�empty�appendr>rS)�func� template_name�template_descriptionr_�sig�args� param_name�param� param_desc�pattern�matchr]rAr@r+s ���r � decorator�4TemplateManager.register_template.<locals>.decorator`sK���!�1�D�M�M�M�$/�#N�4�<�<�3E�2�2L�2L�2N� �����.����!2�=�/��Q�R� ��#�#�D�)�C��D�%(�^�^�%9�%9�%;�!� ���0��� ��<�<�!(�� �4E�F�G��I�I�g�|�|�<�E��%*�[�[��^�%9�%9�%;� �!�=�=�G�,=�,=�,C�,C�C��� � �&�#-� (���!&<�,-;�"�0��� -�D�N�N�=� )� �K�K�+�M�?�;� <��Krr)r+r@rArts``` r �register_template�!TemplateManager.register_templateUs���/ �b�r�returnc�8�URRU5$)uR 获取模板 Args: name: 模板名称 Returns: 模板对象或None )rJ�get)r+r@s r � get_template�TemplateManager.get_template�s���~�~�!�!�$�'�'rrDc �J�U=(d 0nURU5nU(d[RSU35 gUR"S0UD6n[R SU35 U$![ a.n[R SUS[U535 SnAgSnAff=f)u� 渲染模板 Args: name: 模板名称 arguments: 模板参数 Returns: 渲染后的模板内容(字符串或消息列表) u模板不存在: Nu已渲染模板: u渲染模板失败: � , 错误: r)r{rRrUrBrSrT�errorr)r+r@rD�template�resultrVs r �render_template�TemplateManager.render_template�s����O�� ��$�$�T�*��� �N�N�.�t�f�5� 6�� ��[�[�-�9�-�F� �K�K�+�D�6�2� 3��M��� � �L�L�/��v�Z��A��x�H� I��� �s�+A*�* B"�4$B�B"c��URR5Vs/sH'nURURURS.PM) sn$s snf)u5 列出所有可用模板 Returns: 模板列表 �r@rArD)rJ�valuesr@rArD)r+r�s r �list_templates�TemplateManager.list_templates�sU��!�N�N�1�1�3�  � 4�� !� � �'�3�3�%�/�/� � 4�  � �� s�.Ac ��URR5H�upURURURS.n[ R RURUS35n[USSS9n[R"X5SSS9 S S S 5 M� [RS UR35 g !,(df  M�=f![a+n[RS [!U535 S nAg S nAff=f) u保存模板到文件r��.json�w�utf-8��encodingF�)� ensure_ascii�indentNu已保存所有模板到: u保存模板失败: )rJrbr@rArDrKrLrMrO�open�json�dumprRrSrTrr)r+r@r�� template_data� file_path�frVs r �save_templates�TemplateManager.save_templates�s��� :�"&�.�.�"6�"6�"8���%�M�M�#+�#7�#7�!)�!3�!3�!� � �G�G�L�L��);�);��v�U�^�L� ��)�S�7�;�q��I�I�m�U�1�M�<�;�#9� �K�K�4�T�5G�5G�4H�I� J�<�;��� :� �L�L�/��A��x�8� 9� 9�� :�s0�A;C�=C�.C� C � C� D �!D�D c���[RRUR5(d#[R SUR35 g[R "UR5H�nURS5(dMRURU5n[USSS9n[R"U5nSSS5 [RSWS35 M� [RS 5 g!,(df  NC=f![a+n[RS [U535 SnAgSnAff=f) u从文件加载模板u模板目录不存在: Nr��rr�r�u已加载模板元数据: r@u已加载所有模板u加载模板失败: )rKrLrPrOrRrU�listdir�endswithrMr�r��loadrSrTrr)r+�filenamer�r�r�rVs r �load_templates�TemplateManager.load_templates�s���w�w�~�~�d�0�0�1�1� �N�N�4�T�5G�5G�4H�I� J� � :��J�J�t�'9�'9�:���$�$�W�-�-� "��� � �T�-?�-?�� J�I��i��w�?�1�(,� � �!� � �@��K�K�"<�]�6�=R�<S� T�U�;� �K�K�/� 1� @�?��� :� �L�L�/��A��x�8� 9� 9�� :�s6�7D(�5D(�D�<D(� D% �!D(�( E�2!E�E)rJrO�NN�N)rrrrrr)rrvrr>r{rrrrrr�r�r�r�rrrr rGrGDs���%� 6�<�c�<�s�<�| (�� (��.�)A� (��C��D��c��N��h�W\�]`�bf�gn�bo�]o�Wp�Nq��6 ��T�#�s�(�^� 4� � :�(:rrGrk�context� resource_urisrxc ��# �UcSSKJn UR 5nUR 5H#upVURU5IShv�N nXtU'M% [RX5$![a [R S5 gf=fNF![a6n[R SUS[U535 SU3XE'SnAM�SnAff=f7f)u 渲染包含资源引用的模板 Args: template_name: 模板名称 context: 渲染上下文 resource_uris: 资源URI映射,格式为 {context_key: resource_uri} resource_manager: 资源管理器实例(可选) Returns: 渲染后的模板内容 Nr)�resource_manageru无法导入资源管理器u获取资源失败: r~u错误: 无法加载资源 ) � mcp_resourcesr�� ImportErrorrRr�copyrb� get_resourcerTr�template_managerr�) rkr�r�r��extended_context� context_key�uri�resource_contentrVs r �render_template_with_resourcesr��s����$�� � 6� �|�|�~��)�/�/�1�� � P�%5�%B�%B�3�%G�G� �,<�[� )� 2� � +� +�M� L�L��#� � �L�L�6� 7�� �� H��� P� �L�L�/��u�J�s�1�v�h�G� H�.I�#��,O� � )�� P�sb�C�A)�%C�B�B�B�C�)B �C� B � C�B� C�+C �C� C�C�network_diagnosisu网络诊断提示模板)r@rA� device_name�issue_description�verbosec�0�SUSUS3nU(aUS- nU$)u� 创建网络诊断提示 :param device_name: 设备名称 :param issue_description: 问题描述 :param verbose: 是否生成详细输出 u 请针对设备 u7 的以下问题进行诊断: 问题描述: u? 请提供可能的根本原因和解决方案。 u� 请详细说明诊断思路和解决步骤,包括: 1. 初步分析和可能原因 2. 建议的排查命令 3. 可能的解决方案,按优先级排序 4. 预防此类问题的最佳实践 r)r�r�r�� base_prompts r �network_diagnosis_promptr�$s?��� �M�"�$�%�&��K��� � � � �r� device_type�purposec�p�[SUSUS35n[SUSUS35n[SUS35nX#U/$) u� 创建设备配置会话 :param device_type: 设备类型(路由器/交换机/防火墙) :param purpose: 配置目的(新设备/更新/安全强化) u6你是一名网络工程师,正在帮助配置一台u ,目的是u。u 我需要为u 配置一台u$,请提供配置步骤和命令。u我很乐意帮助您配置uV。让我们开始: 首先,让我了解一下您的网络环境和具体需求...)r8r"r2)r�r��system_message� user_message�assistant_messages r �device_configurationr�Dsp��#� @�� �\�Za�Yb�be�f��N�� �w�i�|�K�=�8\�]��L�)� %�k�]�3J� K��� �*;� <�<r�device_diagnosisu网络设备诊断模板� device_info�interfaces_info�logsc���SURSS5SURSS5S3nSURS S 5S URS S 5S URSS 5SURSS 5SURSS 5SURSS 5SURSS 5S3nSUS3nU(a USUS3- nU(a USUS3- nUS- n[U5[U5/$)u� 网络设备诊断提示模板,用于分析设备状态和接口信息 :param device_info: 设备基本信息对象 :param interfaces_info: 接口详细信息 :param logs: 设备日志信息 u3你是一位专业的网络工程师,负责诊断�vendoru 未知厂商u的r�u 网络设备u�。 请根据提供的设备信息、接口状态和日志,进行专业分析并提供诊断报告。 诊断需要包括: 1. 设备基本状态总结 2. 接口状态分析 3. 潜在问题识别 4. 具体解决方案建议 5. 后续优化建议u 设备基本信息: - 名称: r@�N/A� - IP地址: � ip_address� - 型号: �model� - 操作系统: � os_versionu - 状态: �statusu - 位置: �locationu - 描述: rA� u3请帮我诊断以下网络设备的状态: � u 接口信息: u 设备日志: uF 请提供详细的诊断报告,包括问题分析和解决方案。)rzr8r")r�r�r�� system_prompt�device_details� user_prompts r �device_diagnosis_templater�]s���L�K�O�O�\d�ft�Lu�Kv�vy�{F�{J�{J�KX�Zh�{i�zj�j��M� � �?�?�6�5� )� *�+ � �_�_�\�5� 1� 2�3 � �?�?�7�E� *� +�,�����u�5�6�7 � �?�?�8�U� +� ,�- � �?�?�:�u� -� .�/ � �?�?�=�%� 0� 1�2� �N������K� ������� � �  ������� � � �I�I�K� �m�$��K� � �r� config_reviewu网络设备配置审查模板�config_content� focus_areac ��URSS5R5nSU;aSnOSU;aSnOSU;aSnO S U;aS nOS nS US 3nSURSS5SURSS5SURSS5SURSS5S3 nSUSUS3nU(a USUS3- nUS- n[U5[U5/$)u� 网络配置审查提示模板,用于审查设备配置并提供改进建议 :param device_info: 设备基本信息对象 :param config_content: 设备配置内容 :param focus_area: 审查重点领域(安全/性能/路由/其他) r�rZ�ciscou"思科IOS/IOS-XE/NX-OS配置专家�huaweiu华为VRP配置专家�juniperuJuniper JUNOS配置专家�h3cuH3C Comware配置专家u!多厂商网络设备配置专家u 你是一名u!,拥有多年网络配置审查经验。 请对提供的设备配置进行全面审查并提供专业的改进建议。 审查需要包括: 1. 总体配置评估 2. 配置最佳实践符合度 3. 安全风险识别 4. 潜在性能优化点 5. 具体改进建议(包括命令示例)u 设备信息: - 名称: r@r�r�r�r�r�� - 厂商: r�u-请审查以下网络设备的配置: u 配置内容: ``` � ``` u 特别关注以下方面: uR 请提供详细的配置审查报告,包括问题分析和具体改进建议。)rz�lowerr8r")r�r�r�r��vendor_expertiser�r�r�s r �config_review_templater��sI���_�_�X�r� *� 0� 0� 2�F��&��?�� �V� �2�� �f� �6�� �&��4��>��$�%5�$6�7.�1�M� � �?�?�6�5� )� *�+ � �?�?�7�E� *� +�,�����u�5�6�7 � �?�?�8�U� +� ,�-� �N�������� �K����%�,�'�� � ��U�U�K� �m�$��K� � �r�route_analysisu网络路由分析模板� routes_output�target_networkc ���SURSS5SURSS5SURSS5SURS S5S URS S5S US 3 nU(a USUS3- nU$)u� 路由分析提示模板,用于分析路由表并提供优化建议 :param device_info: 设备基本信息对象 :param routes_output: 路由表输出 :param target_network: 目标网络(可选) u1 # 路由分析任务 ## 设备信息 - 名称: r@r�r�r�u - 设备类型: r�r�r�r�r�u ## 路由表 ``` u� ``` 请作为网络工程师分析上述路由表,包括: 1. 默认路由检查 2. 路由类型分布(静态/动态)统计 3. 路由协议使用情况 4. 潜在的路由问题识别 5. 路由优化建议 u* ## 特定网络分析 请特别分析到 uM 的路由路径,包括下一跳、出接口、管理距离和度量值。 �rz)r�r�r��prompts r �route_analysis_templater��s��� � �?�?�6�5� )� *�+ � �_�_�\�5� 1� 2�3������6�7�8 � �?�?�8�U� +� ,�-�����u�5�6�7��� ��F�.���"�#�$�� �� �Mr� vlan_configuVLAN配置生成模板� device_vendor�vlan_id� vlan_name� interfacesr�� vlan_purposec ���UR5nSUSUSUSUSUSUS3 nU(a USUS 3- nU(aUS US 3- nUH nUS US 3- nM U(a US US 3- nUSUS3- nU$)u/ VLAN配置生成提示模板 :param device_vendor: 设备厂商(cisco/huawei/h3c/juniper等) :param vlan_id: VLAN ID :param vlan_name: VLAN名称 :param interfaces: 要添加到VLAN的接口列表 :param ip_address: VLAN接口IP地址(可选) :param vlan_purpose: VLAN用途描述(可选) z # z (VLAN u) 配置生成 请为u设备生成配置VLAN u1的完整命令序列,包括: 1. 创建VLAN u 2. 设置VLAN名称为"z" u3. VLAN用途:r�u ## 需要添加到VLAN u 的接口: z- u ## 配置VLAN接口IP地址:u 请提供适用于u�设备的完整配置命令,包括进入配置模式和退出保存的完整步骤。如果有多种方式,请提供最佳实践方案。 )r�) r�r�r�r�r�r�r�r�� interfaces r �vlan_config_templater�s���.� � � "�F�� �+�W�W�I���o�,�W�I�6��i��!�{�#� �F���$�\�N�"�5�5����-�g�Y�n�E�E��#�I� ��9�+�R�(� (�F�$���4�Z�L��C�C�� �� �/�"���F� �Mr�network_topologyu网络拓扑分析模板�devices� connectionsc���Sn[US5HXup4X#SURSS5SURSS5S URS S5S URS S5S 3 - nMZ Sn[US5H`up6URSS5nURSS5nURSS5n URSS5n XSSUSU SUSU S3 - nMb Sn SUSUS3n [U 5[U 5/$)u_ 网络拓扑分析提示模板 :param devices: 设备列表 :param connections: 连接列表 u设备清单: r\z. r@�Unknownz (r�r�z) - r�z - r�r�u连接清单: � source_device� target_device�source_interface�target_interfacez) <--> z) u[你是一名网络拓扑专家,擅长分析网络设计和提供优化建议。 请分析提供的网络拓扑信息,包括设备和连接,然后: 1. 识别网络架构模式(例如核心-汇聚-接入、叶脊等) 2. 评估当前拓扑的优缺点 3. 识别潜在的单点故障 4. 提供拓扑优化建议 5. 讨论可扩展性考虑u5请分析以下网络拓扑并提供专业评估: r�uY 请提供详细的拓扑分析报告,包括架构评估、风险点和优化建议。)� enumeraterzr8r") r�r�� devices_text�i�device�connections_text�conn�source�target�src_if�tgt_ifr�r�s r �network_topology_templater<s���%�L��w��*� ���#�R�� � �6�9� =�>�b����L�Z_�A`�@a�ae�fl�fp�fp�q~�AF�gG�fH�HK�LR�LV�LV�W_�af�Lg�Kh�hj�k� k� �+�)���[�!�,������/�9�5�����/�9�5�����,�e�4�����,�e�4���c��F�8�2�f�X�W�V�H�B�v�h�c�R�R�� -��M�� �����X� [�K� �m�$��K� � �r�network_securityu网络安全评估模板� acl_content�security_focusc ���SURSS5SURSS5SURSS5SURS S5S US 3 nU(a US US 3- nU(a US US3- nUS- nU$)u� 网络安全评估提示模板 :param device_info: 设备基本信息 :param config_content: 设备配置内容 :param acl_content: 访问控制列表内容(可选) :param security_focus: 安全评估重点(可选) u1 # 网络安全评估 ## 设备信息 - 名称: r@r�u - 类型: r�r�r�r�r�u ## 设备配置 ``` r�u ## 访问控制列表 ``` u ## 评估重点 r�uy 请作为网络安全专家,评估上述配置的安全性,包括: 1. 安全风险识别和严重级别评估 2. 是否符合网络安全最佳实践 3. 身份验证和访问控制评估 4. 加密和安全协议使用情况 5. 详细的安全强化建议(带具体命令) 6. 安全监控和审计建议 请提供全面的安全评估报告和具体改进措施。 r�)r�r�rrr�s r �network_security_templater ks���$ � �?�?�6�5� )� *�+ � �?�?�=�%� 0� 1�2 � �?�?�8�U� +� ,�-�����u�5�6�7���� �F���� � ��� ��������� ��  � � �F� �Mrr�)Fr�)NNN),r�typingrrrrrr�logging�sysr�rK�datetimerc� dataclassesr r r � basicConfig�INFO� StreamHandler�stdout� getLoggerrRrr"r2r8r>rGr�rr�rv�boolr�r�r�r�r��intr�rr rrr �<module>rs"���>�=�� � � �� �0�0���� �,�,� A����S�Z�Z�0��� � � �?� +�� ��� ��  �7�'�7� �7�  �<�w�<� �<�  �9�G�9� �9�  �B�B� �B�m:�m:�b#�$��� 'M��'M� �#�s�(�^�'M���S��>�'M�  �3��W� � �� 'M�V�#�#� �*�$���#��#��PT��ad�� ��8�#�#�%�=�c�=�C�=�D��M�=�&�=�0�#�#� �*�$��5�4��S��>�5�C�5�^a�5�mq�ry�mz�5� �5�p�#�#� �0�$��<��S�#�X��<��<�Y\�<�hl�mt�hu�<� �<�~�#�#� �*�$��%��c�3�h��%��%�]`�%�lo�%� �%�P�#�#� �(�$��!��� -��-� �-��-��S� � -� � -� � -� �-� �-�`�#�#� �*�$��(�t�D��c��N�';�(�$�t�TW�Y\�T\�~�J^�(�cg�ho�cp�(� �(�V�#�#� �*�$���� 8��c�3�h��8��8��8�� 8�  � 8� �8r

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