From f85230874925454ce13fac5b34394f6b64f0aef0 Mon Sep 17 00:00:00 2001
From: cui-gaoleng <562344211@qq.com>
Date: Fri, 14 Nov 2025 11:33:04 +0800
Subject: [PATCH 1/7] mcp_center
---
.gitignore | 3 +
mcp_center/LICENSE | 194 +++++++
mcp_center/README.en.md | 507 ++++++++++++++++++
mcp_center/README.md | 507 ++++++++++++++++++
.../config/public/base_config_loader.py | 80 +++
mcp_center/config/public/public_config.toml | 17 +
mcp_center/mcp_config/change.py | 67 +++
mcp_center/mcp_config/mcp_to_app_config.toml | 176 ++++++
mcp_center/requiremenets.txt | 5 +
mcp_center/run.sh | 85 +++
10 files changed, 1641 insertions(+)
create mode 100644 mcp_center/LICENSE
create mode 100644 mcp_center/README.en.md
create mode 100644 mcp_center/README.md
create mode 100644 mcp_center/config/public/base_config_loader.py
create mode 100644 mcp_center/config/public/public_config.toml
create mode 100644 mcp_center/mcp_config/change.py
create mode 100644 mcp_center/mcp_config/mcp_to_app_config.toml
create mode 100644 mcp_center/requiremenets.txt
create mode 100755 mcp_center/run.sh
diff --git a/.gitignore b/.gitignore
index c62e334e6..d098d3cbd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,6 @@ logs
.ruff_cache/
config
uv.lock
+
+!mcp_center/config
+
diff --git a/mcp_center/LICENSE b/mcp_center/LICENSE
new file mode 100644
index 000000000..f6c26977b
--- /dev/null
+++ b/mcp_center/LICENSE
@@ -0,0 +1,194 @@
+木兰宽松许可证,第2版
+
+木兰宽松许可证,第2版
+
+2020年1月 http://license.coscl.org.cn/MulanPSL2
+
+您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束:
+
+0. 定义
+
+“软件” 是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
+
+“贡献” 是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
+
+“贡献者” 是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
+
+“法人实体” 是指提交贡献的机构及其“关联实体”。
+
+“关联实体” 是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是
+指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
+
+1. 授予版权许可
+
+每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可
+以复制、使用、修改、分发其“贡献”,不论修改与否。
+
+2. 授予专利许可
+
+每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定
+撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡
+献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软
+件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“
+关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或
+其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权
+行动之日终止。
+
+3. 无商标许可
+
+“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定
+的声明义务而必须使用除外。
+
+4. 分发限制
+
+您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“
+本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
+
+5. 免责声明与责任限制
+
+“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对
+任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于
+何种法律理论,即使其曾被建议有此种损失的可能性。
+
+6. 语言
+
+“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文
+版为准。
+
+条款结束
+
+如何将木兰宽松许可证,第2版,应用到您的软件
+
+如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:
+
+1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
+
+2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;
+
+3, 请将如下声明文本放入每个源文件的头部注释中。
+
+Copyright (c) [Year] [name of copyright holder]
+[Software Name] is licensed under Mulan PSL v2.
+You can use this software according to the terms and conditions of the Mulan
+PSL v2.
+You may obtain a copy of Mulan PSL v2 at:
+ http://license.coscl.org.cn/MulanPSL2
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+See the Mulan PSL v2 for more details.
+
+Mulan Permissive Software License,Version 2
+
+Mulan Permissive Software License,Version 2 (Mulan PSL v2)
+
+January 2020 http://license.coscl.org.cn/MulanPSL2
+
+Your reproduction, use, modification and distribution of the Software shall
+be subject to Mulan PSL v2 (this License) with the following terms and
+conditions:
+
+0. Definition
+
+Software means the program and related documents which are licensed under
+this License and comprise all Contribution(s).
+
+Contribution means the copyrightable work licensed by a particular
+Contributor under this License.
+
+Contributor means the Individual or Legal Entity who licenses its
+copyrightable work under this License.
+
+Legal Entity means the entity making a Contribution and all its
+Affiliates.
+
+Affiliates means entities that control, are controlled by, or are under
+common control with the acting entity under this License, ‘control’ means
+direct or indirect ownership of at least fifty percent (50%) of the voting
+power, capital or other securities of controlled or commonly controlled
+entity.
+
+1. Grant of Copyright License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to you a perpetual, worldwide, royalty-free, non-exclusive,
+irrevocable copyright license to reproduce, use, modify, or distribute its
+Contribution, with modification or not.
+
+2. Grant of Patent License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to you a perpetual, worldwide, royalty-free, non-exclusive,
+irrevocable (except for revocation under this Section) patent license to
+make, have made, use, offer for sale, sell, import or otherwise transfer its
+Contribution, where such patent license is only limited to the patent claims
+owned or controlled by such Contributor now or in future which will be
+necessarily infringed by its Contribution alone, or by combination of the
+Contribution with the Software to which the Contribution was contributed.
+The patent license shall not apply to any modification of the Contribution,
+and any other combination which includes the Contribution. If you or your
+Affiliates directly or indirectly institute patent litigation (including a
+cross claim or counterclaim in a litigation) or other patent enforcement
+activities against any individual or entity by alleging that the Software or
+any Contribution in it infringes patents, then any patent license granted to
+you under this License for the Software shall terminate as of the date such
+litigation or activity is filed or taken.
+
+3. No Trademark License
+
+No trademark license is granted to use the trade names, trademarks, service
+marks, or product names of Contributor, except as required to fulfill notice
+requirements in section 4.
+
+4. Distribution Restriction
+
+You may distribute the Software in any medium with or without modification,
+whether in source or executable forms, provided that you provide recipients
+with a copy of this License and retain copyright, patent, trademark and
+disclaimer statements in the Software.
+
+5. Disclaimer of Warranty and Limitation of Liability
+
+THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY
+KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR
+COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT
+LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING
+FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO
+MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+6. Language
+
+THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION
+AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF
+DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION
+SHALL PREVAIL.
+
+END OF THE TERMS AND CONDITIONS
+
+How to Apply the Mulan Permissive Software License,Version 2
+(Mulan PSL v2) to Your Software
+
+To apply the Mulan PSL v2 to your work, for easy identification by
+recipients, you are suggested to complete following three steps:
+
+i. Fill in the blanks in following statement, including insert your software
+name, the year of the first publication of your software, and your name
+identified as the copyright owner;
+
+ii. Create a file named "LICENSE" which contains the whole context of this
+License in the first directory of your software package;
+
+iii. Attach the statement to the appropriate annotated syntax at the
+beginning of each source file.
+
+Copyright (c) [Year] [name of copyright holder]
+[Software Name] is licensed under Mulan PSL v2.
+You can use this software according to the terms and conditions of the Mulan
+PSL v2.
+You may obtain a copy of Mulan PSL v2 at:
+ http://license.coscl.org.cn/MulanPSL2
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+See the Mulan PSL v2 for more details.
diff --git a/mcp_center/README.en.md b/mcp_center/README.en.md
new file mode 100644
index 000000000..d7eac6256
--- /dev/null
+++ b/mcp_center/README.en.md
@@ -0,0 +1,507 @@
+# mcp_center
+
+## 1. Introduction
+mcp_center is used to build the oe intelligent assistant, and its directory structure is as follows:
+```
+├── client - Test client
+├── config - Public and private configuration files
+├── mcp_config - Configuration files for mcp registration to the framework
+├── README.en.md - English version description
+├── README.md - Chinese version description
+├── requiremenets.txt - Overall dependencies
+├── run.sh - Script to start the mcp service
+├── servers - Directory containing mcp server source code
+└── service - Directory containing .service files for mcp
+```
+
+### Running Instructions
+1. Before running the mcp server, execute the following command in the mcp_center directory:
+ ```
+ export PYTHONPATH=$(pwd)
+ ```
+2. Start the mcp server through Python for testing
+3. You can test each mcp tool through client.py in the client directory. The specific URL, tool name, and input parameters can be adjusted as needed.
+
+
+## 2. Rules for Adding New mcp
+1. **Create Service Source Code Directory**
+ Create a new folder under the `mcp_center/servers` directory. Example (taking top mcp as an example):
+ ```
+ servers/top/
+ ├── README.en.md English version of mcp service details
+ ├── README.md Chinese version of mcp service details
+ ├── requirements.txt Contains only private installation dependencies (to avoid conflicts with public dependencies)
+ └── src Source code directory (including server main entry)
+ └── server.py
+ ```
+
+2. **Configuration File Settings**
+ Create a new configuration file under the `mcp_center/config/private` directory. Example (taking top mcp as an example):
+ ```
+ config/private/top
+ ├── config_loader.py Configuration loader (including public configuration and private custom configuration)
+ └── config.toml Private custom configuration
+ ```
+
+3. **Document Updates**
+ For each new mcp added, you need to synchronously add the basic information of the mcp to the existing mcp section in the main directory's README (ensure that ports do not conflict, starting from 12100).
+ For each new mcp added, you need to add a .service file in the service directory of the main directory to make the mcp a service.
+ For each new mcp added, you need to create a corresponding directory in mcp_config of the main directory and create a config.json under it (for registering the mcp to the framework).
+ For each new mcp added, you need to add a command in run.sh of the main directory to start the mcp service.
+
+4. **General Parameter Requirements**
+ Each mcp tool requires a host as an input parameter for communication with the remote server.
+
+5. **Remote Command Execution**
+ Remote command execution can be implemented through `paramiko`.
+
+
+## 3. Existing MCP Services
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/remote_info |
+| Directory| mcp_center/servers/remote_info |
+| Port Used| 12100 |
+| Introduction | Obtain endpoint information |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/shell_generator |
+| Directory| mcp_center/servers/shell_generator |
+| Port Used| 12101 |
+| Introduction | Generate & execute shell commands |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/top |
+| Directory| mcp_center/servers/top |
+| Port Used| 12110 |
+| Introduction | Get system load info |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/kill |
+| Directory| mcp_center/servers/kill |
+| Port Used| 12111 |
+| Introduction | Process control & signal meanings |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/nohup |
+| Directory| mcp_center/servers/nohup |
+| Port Used| 12112 |
+| Introduction | Background process execution |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/strace |
+| Directory| mcp_center/servers/strace |
+| Port Used| 12113 |
+| Introduction | Process tracing for anomaly analysis |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/nvidia |
+| Directory| mcp_center/servers/nvidia |
+| Port Used| 12114 |
+| Introduction | mcp_center/servers/nvidia |
+
+| Category | Details |
+|------------|------------------------------|
+| Name | servers/npu |
+| Directory | mcp_center/servers/npu |
+| Port Used | 12115 |
+| Description| Query and control of NPU |
+
+| Category | Details |
+|------------|--------------------------|
+| Name | servers/iftop |
+| Directory | mcp_center/servers/iftop |
+| Port Used | 12116 |
+| Description| Network traffic monitoring |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/nload |
+| Directory| mcp_center/servers/nload |
+| Port Used| 12117 |
+| Introduction | Nload Bandwidth Monitoring |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/netstat |
+| Directory| mcp_center/servers/netstat |
+| Port Used| 12118 |
+| Introduction | netstat Network Connection Monitoring |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/lsof |
+| Directory| mcp_center/servers/lsof |
+| Port Used| 12119 |
+| Introduction | Quickly troubleshoot file occupation conflicts, abnormal network connections and process resource occupation issues |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/ifconfig |
+| Directory| mcp_center/servers/ifconfig |
+| Port Used| 12120 |
+| Introduction | ifconfig Network Interface Information Monitoring |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/ethtool |
+| Directory| mcp_center/servers/ethtool |
+| Port Used| 12121 |
+| Introduction | ethtool Network Card Information Query, Feature Status and Network Card Settings |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/tshark |
+| Directory| mcp_center/servers/tshark |
+| Port Used| 12122 |
+| Introduction | Capture, Display and Analyze Network Traffic |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/file_content_tool |
+| Directory| mcp_center/servers/file_content_tool |
+| Port Used| 12125 |
+| Introduction | File Content Creation, Deletion, Modification and Query |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/firewalld |
+| Directory| mcp_center/servers/firewalld |
+| Port Used| 12130 |
+| Introduction | Firewalld Network Firewall Management Tool |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/iptable |
+| Directory| mcp_center/servers/iptable |
+| Port Used| 12131 |
+| Introduction | iptables Firewall Management Tool |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/docker |
+| Directory| mcp_center/servers/docker |
+| Port Used| 12133 |
+| Introduction | docker Tool |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/qemu |
+| Directory| mcp_center/servers/qemu |
+| Port Used| 12134 |
+| Introduction | Qemu Virtual Machine Management Tool |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/nmap |
+| Directory| mcp_center/servers/nmap |
+| Port Used| 12135 |
+| Introduction | Nmap IP Scanning Tool |
+
+| Category | Details |
+|----------|-------------------------------|
+| Name | servers/file_transfer |
+| Directory| mcp_center/servers/file_transfer |
+| Port Used| 12136 |
+| Introduction | File Transfer/Download |
+
+| Category | Details |
+|----------------|--------------------------------------------------|
+| Name | servers/systrace-mcpserver |
+| Directory | mcp_center/servers/systrace/systrace_mcp |
+| Port Occupied | 12145 |
+| Description | Start MCP Server Service |
+
+| Category | Details |
+|----------------|--------------------------------------------------|
+| Name | servers/systrace-openapi |
+| Directory | mcp_center/servers/systrace/systrace_mcp |
+| Port Occupied | 12146 |
+| Description | Start OpenAPI Server Service |
+
+| Category | Details |
+|----------------|--------------------------------------------------|
+| Name | servers/systrace-mcpserver |
+| Directory | mcp_center/servers/euler-copilot-tune |
+| Port Occupied | 12147 |
+| Description | Tuning MCP Service |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/ |
+| Directory | mcp_center/servers/lscpu |
+| Port Occupied | 12202 |
+| Description | Collects static information such as CPU architecture |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_topo |
+| Directory | mcp_center/servers/numa_topo |
+| Port Occupied | 12203 |
+| Description | Queries NUMA hardware topology and system configuration |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_bind_proc |
+| Directory | mcp_center/servers/numa_bind_proc |
+| Port Occupied | 12204 |
+| Description | Binds processes to specified NUMA nodes at startup |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_rebind_proc |
+| Directory | mcp_center/servers/numa_rebind_proc |
+| Port Occupied | 12205 |
+| Description | Modifies NUMA bindings of already started processes |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_bind_docker |
+| Directory | mcp_center/servers/numa_bind_docker |
+| Port Occupied | 12206 |
+| Description | Configure NUMA binding for Docker containers |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_perf_compare |
+| Directory | mcp_center/servers/numa_perf_compare |
+| Port Occupied | 12208 |
+| Description | Control test variables with NUMA binding |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_diagnose |
+| Directory | mcp_center/servers/numa_diagnose |
+| Port Occupied | 12209 |
+| Description | Locate hardware issues with NUMA binding |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numastat |
+| Directory | mcp_center/servers/numastat |
+| Port Occupied | 12210 |
+| Description | View the overall NUMA memory access status of the system |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_cross_node |
+| Directory | mcp_center/servers/numa_cross_node |
+| Port Occupied | 12211 |
+| Description | Identify processes with excessive cross-node memory access |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/numa_container |
+| Directory | mcp_center/servers/numa_container |
+| Port Occupied | 12214 |
+| Description | Monitor NUMA memory access in Docker containers |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/hotspot_trace |
+| Directory | mcp_center/servers/hotspot_trace |
+| Port Occupied | 12216 |
+| Description | Quickly locate CPU performance bottlenecks in systems/processes |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/cache_miss_audit |
+| Directory | mcp_center/servers/cache_miss_audit |
+| Port Occupied | 12217 |
+| Description | Identify performance losses due to CPU cache misses |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/func_timing_trace |
+| Directory | mcp_center/servers/func_timing_trace |
+| Port Occupied | 12218 |
+| Description | Accurately measure function execution time (including call stack) |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/strace_syscall |
+| Directory | mcp_center/servers/strace_syscall |
+| Port Occupied | 12219 |
+| Description | Investigate unreasonable system calls (high frequency / time-consuming) |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/perf_interrupt |
+| Directory | mcp_center/servers/perf_interrupt |
+| Port Occupied | 12220 |
+| Description | Locate CPU usage caused by high-frequency interrupts |
+
+| Category | Details |
+|----------|--------------------------|
+| Name | servers/flame_graph |
+| Directory | mcp_center/servers/flame_graph |
+| Port Occupied | 12222 |
+| Description | Flame graph generation: Visualize performance bottlenecks |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/free |
+| Directory| mcp_center/servers/free |
+| Port Used| 13100 |
+| Introduction | Obtain the overall status of system memory |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/vmstat |
+| Directory| mcp_center/servers/vmstat |
+| Port Used| 13101 |
+| Introduction | Collect information on system resource interaction bottlenecks |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/sar |
+| Directory| mcp_center/servers/sar |
+| Port Used| 13102 |
+| Introduction | System resource monitoring and fault diagnosis |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/sync |
+| Directory| mcp_center/servers/sync |
+| Port Used| 13103 |
+| Introduction | Write memory buffer data to disk |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/swapon |
+| Directory| mcp_center/servers/swapon |
+| Port Used| 13104 |
+| Introduction | Check the status of swap devices |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/swapoff |
+| Directory| mcp_center/servers/swapoff |
+| Port Used| 13105 |
+| Introduction | Disable swap devices |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/fallocate |
+| Directory| mcp_center/servers/fallocate|
+| Port Used| 13106 |
+| Introduction | Temporarily create and enable swap files |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/find |
+| Directory| mcp_center/servers/find |
+| Port Used| 13107 |
+| Introduction | File Search |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/touch |
+| Directory| mcp_center/servers/touch |
+| Port Used| 13108 |
+| Introduction | File Creation and Time Calibration |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/mkdir |
+| Directory| mcp_center/servers/mkdir |
+| Port Used| 13109 |
+| Introduction | Directory Creation |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/rm |
+| Directory| mcp_center/servers/rm |
+| Port Used| 13110 |
+| Introduction | File Deletion |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/mv |
+| Directory| mcp_center/servers/mv |
+| Port Used| 13111 |
+| Introduction | File move or rename |
+
+| Category | Details |
+|----------|-----------------------------|
+| Name | servers/ls |
+| Directory| mcp_center/servers/ls |
+| Port Used| 13112 |
+| Introduction | View directory contents |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | head |
+| Directory| mcp_center/servers/head |
+| Port Used | 13113 |
+| Introduction | File beginning content viewing tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | tail |
+| Directory| mcp_center/servers/tail |
+| Port Used | 13114 |
+| Introduction | File ending content viewing tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | cat |
+| Directory| mcp_center/servers/cat |
+| Port Used | 13115 |
+| Introduction | File content viewing tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | chown |
+| Directory| mcp_center/servers/chown |
+| Port Used | 13116 |
+| Introduction | File owner modification tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | chmod |
+| Directory| mcp_center/servers/chmod |
+| Port Used | 13117 |
+| Introduction | File permission modification tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | tar |
+| Directory| mcp_center/servers/tar |
+| Port Used | 13118 |
+| Introduction | File compression and decompression tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | zip |
+| Directory| mcp_center/servers/zip |
+| Port Used | 13119 |
+| Introduction | File compression and decompression tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | grep |
+| Directory| mcp_center/servers/grep |
+| Port Used | 13120 |
+| Introduction | File content search tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | sed |
+| Directory| mcp_center/servers/sed |
+| Port Used | 13121 |
+| Introduction | Text processing tool |
+
+| Category | Details |
+|----------|--------------------------------------|
+| Name | echo |
+| Directory| mcp_center/servers/echo |
+| Port Used | 13125 |
+| Introduction | Text writing tool |
diff --git a/mcp_center/README.md b/mcp_center/README.md
new file mode 100644
index 000000000..097672844
--- /dev/null
+++ b/mcp_center/README.md
@@ -0,0 +1,507 @@
+# mcp_center
+
+## 一、介绍
+mcp_center 用于构建 oe 智能助手,其目录结构如下:
+```
+├── client 测试用客户端
+├── config 公共和私有配置文件
+├── mcp_config mcp注册到框架的配置文件
+├── README.en.md 英文版本说明
+├── README.md 中文版本说明
+├── requiremenets.txt 整体的依赖
+├── run.sh 唤起mcp服务的脚本
+├── servers mcp server源码所在目录
+└── service mcp的.serivce文件所在目录
+```
+
+### 运行说明
+1. 运行 mcp server 前,需在 mcp_center 目录下执行:
+ ```
+ export PYTHONPATH=$(pwd)
+ ```
+2. 通过 Python 唤起 mcp server 进行测试
+3. 可通过 client 目录下的 client.py 对每个 mcp 工具进行测试,具体的 URL、工具名称和入参可自行调整
+
+
+## 二、新增 mcp 规则
+1. **创建服务源码目录**
+ 在 `mcp_center/servers` 目录下新建文件夹,示例(以 top mcp 为例):
+ ```
+ servers/top/
+ ├── README.en.md 英文版本的 mcp 服务详情描述
+ ├── README.md 中文版本的 mcp 服务详情描述
+ ├── requirements.txt 仅包含私有安装依赖(避免与公共依赖冲突)
+ └── src 源码目录(含 server 主入口)
+ └── server.py
+ ```
+
+2. **配置文件设置**
+ 在 `mcp_center/config/private` 目录下新建配置文件,示例(以 top mcp 为例):
+ ```
+ config/private/top
+ ├── config_loader.py 配置加载器(含公共配置和私有自定义配置)
+ └── config.toml 私有自定义配置
+ ```
+
+3. **文档更新**
+ 每新增一个 mcp,需在主目录的 README 中现有 mcp 板块同步新增该 mcp 的基本信息(确保端口不冲突,端口从 12100 开始)
+ 每新增一个 mcp,需要在主目录中的 service 中增加.service文件用于将mcp制作成服务
+ 每新增一个 mcp,需要在主目录中的 mcp_config 中新建对应名称的目录并在下面创建一个config.json(用于将mcp注册到框架)
+ 每新增一个 mcp,需要在主目录中的 run.sh 中增加一条命令用于唤起mcp服务
+4. **通用参数要求**
+ 每个 mcp 的工具都需要一个 host 作为入参,用于与远端服务器通信。
+
+5. **远程命令执行**
+ 可通过 `paramiko` 实现远程命令执行。
+
+
+## 三、现有的 MCP 服务
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/remote_info |
+| 目录 | mcp_center/servers/remote_info |
+| 占用端口 | 12100 |
+| 简介 | 获取端点信息 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/shell_generator |
+| 目录 | mcp_center/servers/shell_generator |
+| 占用端口 | 12101 |
+| 简介 | 生成&执行shell命令 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/top |
+| 目录 | mcp_center/servers/top |
+| 占用端口 | 12110 |
+| 简介 | 获取系统负载信息 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/kill |
+| 目录 | mcp_center/servers/kill |
+| 占用端口 | 12111 |
+| 简介 | 控制进程&查看进程信号量含义 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/nohup |
+| 目录 | mcp_center/servers/nohup |
+| 占用端口 | 12112 |
+| 简介 | 后台执行进程 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/strace |
+| 目录 | mcp_center/servers/strace |
+| 占用端口 | 12113 |
+| 简介 | 跟踪进程信息,可以用于异常情况分析 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/nvidia |
+| 目录 | mcp_center/servers/nvidia |
+| 占用端口 | 12114 |
+| 简介 | GPU负载信息查询 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/npu |
+| 目录 | mcp_center/servers/npu |
+| 占用端口 | 12115 |
+| 简介 | npu的查询和控制 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/iftop |
+| 目录 | mcp_center/servers/iftop |
+| 占用端口 | 12116 |
+| 简介 | 网络流量监控 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/nload |
+| 目录 | mcp_center/servers/nload |
+| 占用端口 | 12117 |
+| 简介 | Nload带宽监控 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/netstat |
+| 目录 | mcp_center/servers/netstat |
+| 占用端口 | 12118 |
+| 简介 | netstat网络连接监控 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/lsof |
+| 目录 | mcp_center/servers/lsof |
+| 占用端口 | 12119 |
+| 简介 | 快速排查文件占用冲突、网络连接异常及进程资源占用问题 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/ifconfig |
+| 目录 | mcp_center/servers/ifconfig |
+| 占用端口 | 12120 |
+| 简介 | ifconfig 网络接口信息监控 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/ethtool |
+| 目录 | mcp_center/servers/ethtool |
+| 占用端口 | 12121 |
+| 简介 | ethtool网卡信息查询,特性情况,网卡设置 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/tshark |
+| 目录 | mcp_center/servers/tshark |
+| 占用端口 | 12122 |
+| 简介 | 捕获、显示和分析网络流量 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/file_content_tool |
+| 目录 | mcp_center/servers/file_content_tool |
+| 占用端口 | 12125 |
+| 简介 | 文件内容增删改查 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/firewalld |
+| 目录 | mcp_center/servers/firewalld |
+| 占用端口 | 12130 |
+| 简介 | Firewalld网络防火墙管理工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/iptable |
+| 目录 | mcp_center/servers/iptable |
+| 占用端口 | 12131 |
+| 简介 | iptables防火墙管理工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/docker |
+| 目录 | mcp_center/servers/docker |
+| 占用端口 | 12133 |
+| 简介 | docker工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/qemu |
+| 目录 | mcp_center/servers/qemu |
+| 占用端口 | 12134 |
+| 简介 | Qemu虚拟机管理工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/nmap |
+| 目录 | mcp_center/servers/nmap |
+| 占用端口 | 12135 |
+| 简介 | Nmap扫描IP |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/file_transfer |
+| 目录 | mcp_center/servers/file_transfer |
+| 占用端口 | 12136 |
+| 简介 | 文件传输/下载 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/systrace-mcpserver |
+| 目录 | mcp_center/servers/systrace/systrace_mcp |
+| 占用端口 | 12145 |
+| 简介 | 开启MCP Server服务 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/ssystrace-openapi |
+| 目录 | mcp_center/servers/systrace/systrace_mcp |
+| 占用端口 | 12146 |
+| 简介 | 开启OpenAPI Server服务 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/systrace-mcpserver |
+| 目录 | mcp_center/servers/euler-copilot-tune |
+| 占用端口 | 12147 |
+| 简介 | 调优MCP服务 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/lscpu |
+| 目录 | mcp_center/servers/lscpu |
+| 占用端口 | 12202 |
+| 简介 | cpu架构等静态信息收集 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_topo |
+| 目录 | mcp_center/servers/numa_topo |
+| 占用端口 | 12203 |
+| 简介 | 查询 NUMA 硬件拓扑与系统配置 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_bind_proc |
+| 目录 | mcp_center/servers/numa_bind_proc |
+| 占用端口 | 12204 |
+| 简介 | 启动时绑定进程到指定 NUMA 节点 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_rebind_proc |
+| 目录 | mcp_center/servers/numa_rebind_proc |
+| 占用端口 | 12205 |
+| 简介 | 修改已启动进程的 NUMA 绑定 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_bind_docker |
+| 目录 | mcp_center/servers/numa_bind_docker |
+| 占用端口 | 12206 |
+| 简介 | 为 Docker 容器配置 NUMA 绑定 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_perf_compare |
+| 目录 | mcp_center/servers/numa_perf_compare |
+| 占用端口 | 12208 |
+| 简介 | 用 NUMA 绑定控制测试变量 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_diagnose |
+| 目录 | mcp_center/servers/numa_diagnose |
+| 占用端口 | 12209 |
+| 简介 | 用 NUMA 绑定定位硬件问题 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numastat |
+| 目录 | mcp_center/servers/numastat |
+| 占用端口 | 12210 |
+| 简介 | 查看系统整体 NUMA 内存访问状态 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_cross_node |
+| 目录 | mcp_center/servers/numa_cross_node |
+| 占用端口 | 12211 |
+| 简介 | 定位跨节点内存访问过高的进程 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/numa_container |
+| 目录 | mcp_center/servers/numa_container |
+| 占用端口 | 12214 |
+| 简介 | 监控 Docker 容器的 NUMA 内存访问 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/hotspot_trace |
+| 目录 | mcp_center/servers/hotspot_trace |
+| 占用端口 | 12216 |
+| 简介 | 快速定位系统 / 进程的 CPU 性能瓶颈 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/cache_miss_audit |
+| 目录 | mcp_center/servers/cache_miss_audit |
+| 占用端口 | 12217 |
+| 简介 | 定位 CPU 缓存失效导致的性能损耗 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/func_timing_trace |
+| 目录 | mcp_center/servers/func_timing_trace |
+| 占用端口 | 12218 |
+| 简介 | 精准测量函数执行时间(含调用栈) |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/strace_syscall |
+| 目录 | mcp_center/servers/strace_syscall |
+| 占用端口 | 12219 |
+| 简介 | 排查不合理的系统调用(高频 / 耗时) |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/perf_interrupt |
+| 目录 | mcp_center/servers/perf_interrupt |
+| 占用端口 | 12220 |
+| 简介 | 定位高频中断导致的 CPU 占用 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/flame_graph |
+| 目录 | mcp_center/servers/flame_graph |
+| 占用端口 | 12222 |
+| 简介 | 火焰图生成:可视化展示性能瓶颈 |
+
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/free |
+| 目录 | mcp_center/servers/free |
+| 占用端口 | 13100 |
+| 简介 | 获取系统内存整体状态 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/vmstat |
+| 目录 | mcp_center/servers/vmstat |
+| 占用端口 | 13101 |
+| 简介 | 系统资源交互瓶颈信息采集 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/sar |
+| 目录 | mcp_center/servers/sar |
+| 占用端口 | 13102 |
+| 简介 | 系统资源监控与故障诊断 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/sync |
+| 目录 | mcp_center/servers/sync |
+| 占用端口 | 13103 |
+| 简介 | 内存缓冲区数据写入磁盘 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/swapon |
+| 目录 | mcp_center/servers/swapon |
+| 占用端口 | 13104 |
+| 简介 | 查看swap设备状态 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/swapoff |
+| 目录 | mcp_center/servers/swapoff |
+| 占用端口 | 13105 |
+| 简介 | swap设备停用 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/fallocate |
+| 目录 | mcp_center/servers/fallocate |
+| 占用端口 | 13106 |
+| 简介 | 临时创建并启用swap文件 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/find |
+| 目录 | mcp_center/servers/find |
+| 占用端口 | 13107 |
+| 简介 | 文件查找 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/touch |
+| 目录 | mcp_center/servers/touch |
+| 占用端口 | 13108 |
+| 简介 | 文件创建与时间校准 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/mkdir |
+| 目录 | mcp_center/servers/mkdir |
+| 占用端口 | 13109 |
+| 简介 | 文件夹创建 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/rm |
+| 目录 | mcp_center/servers/rm |
+| 占用端口 | 13110 |
+| 简介 | 文件删除 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/mv |
+| 目录 | mcp_center/servers/mv |
+| 占用端口 | 13111 |
+| 简介 | 文件移动或重命名 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | servers/ls |
+| 目录 | mcp_center/servers/ls |
+| 占用端口 | 13112 |
+| 简介 | 查看目录内容 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | head |
+| 目录 | mcp_center/servers/head |
+| 占用端口 | 13113 |
+| 简介 | 文件开头内容查看工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | tail |
+| 目录 | mcp_center/servers/tail |
+| 占用端口 | 13114 |
+| 简介 | 文件末尾内容查看工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | cat |
+| 目录 | mcp_center/servers/cat |
+| 占用端口 | 13115 |
+| 简介 | 文件内容查看工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | chown |
+| 目录 | mcp_center/servers/chown |
+| 占用端口 | 13116 |
+| 简介 | 文件所有者修改工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | chmod |
+| 目录 | mcp_center/servers/chmod |
+| 占用端口 | 13117 |
+| 简介 | 文件权限修改工具 |
+
+| 类别 | 详情 |
+|--------|------------------------|
+| 名称 | tar |
+| 目录 | mcp_center/servers/tar |
+| 占用端口 | 13118 |
+| 简介 | 文件压缩解压工具 |
+
+| 类别 | 详情 |
+|--------|------------------------|
+| 名称 | zip |
+| 目录 | mcp_center/servers/zip |
+| 占用端口 | 13119 |
+| 简介 | 文件压缩解压工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | grep |
+| 目录 | mcp_center/servers/grep |
+| 占用端口 | 13120 |
+| 简介 | 文件内容搜索工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | sed |
+| 目录 | mcp_center/servers/sed |
+| 占用端口 | 13121 |
+| 简介 | 文本处理工具 |
+
+| 类别 | 详情 |
+|--------|--------------------------|
+| 名称 | echo |
+| 目录 | mcp_center/servers/echo |
+| 占用端口 | 13125 |
+| 简介 | 文本写入工具 |
\ No newline at end of file
diff --git a/mcp_center/config/public/base_config_loader.py b/mcp_center/config/public/base_config_loader.py
new file mode 100644
index 000000000..a5db20768
--- /dev/null
+++ b/mcp_center/config/public/base_config_loader.py
@@ -0,0 +1,80 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+"""配置文件处理模块"""
+import toml
+from enum import Enum
+from typing import Any
+from pydantic import BaseModel, Field
+from pathlib import Path
+from copy import deepcopy
+import sys
+import os
+# 从当前文件位置向上两级到达项目根目录
+sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../..')))
+can_import = True
+try:
+ from apps.schemas.config import ConfigModel as FrameworkConfigModel
+except ImportError as e:
+ can_import = False
+
+# 然后使用绝对导入
+
+
+class LanguageEnum(str, Enum):
+ """语言枚举"""
+ ZH = "zh"
+ EN = "en"
+
+
+class RemoteConfigModel(BaseModel):
+ """远程配置模型"""
+ name: str = Field(..., description="远程主机名称")
+ os_type: str = Field(..., description="远程主机操作系统类型")
+ host: str = Field(..., description="远程主机地址")
+ port: int = Field(..., description="远程主机端口")
+ username: str = Field(..., description="远程主机用户名")
+ password: str = Field(..., description="远程主机密码")
+
+
+class PublicConfigModel(BaseModel):
+ """公共配置模型"""
+ language: LanguageEnum = Field(default=LanguageEnum.ZH, description="语言")
+ remote_hosts: list[RemoteConfigModel] = Field(default=[], description="远程主机列表")
+ llm_remote: str = Field(default="https://dashscope.aliyuncs.com/compatible-mode/v1", description="LLM远程主机地址")
+ llm_model: str = Field(default="qwen3-coder-480b-a35b-instruct", description="LLM模型名称")
+ llm_api_key: str = Field(default="", description="LLM API Key")
+ max_tokens: int = Field(default=8192, description="LLM最大Token数")
+ temperature: float = Field(default=0.7, description="LLM温度参数")
+
+
+class ConfigModel(BaseModel):
+ """公共配置模型"""
+ public_config: PublicConfigModel = Field(default=PublicConfigModel(), description="公共配置")
+ private_config: Any = Field(default=None, description="私有配置")
+
+
+class BaseConfig():
+ """配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件;当PROD环境变量设置时,配置文件将在读取后删除"""
+ config_file = os.path.join("config", "public", "public_config.toml")
+ self._config = ConfigModel()
+ self._config.public_config = PublicConfigModel.model_validate(toml.load(config_file))
+ framework_config_file = os.getenv("CONFIG")
+ if framework_config_file is None:
+ if can_import:
+ framework_config_file = os.path.join("..", "config", "config.toml")
+ if framework_config_file and os.path.exists(framework_config_file):
+ framework_config = FrameworkConfigModel.model_validate(toml.load(framework_config_file))
+ self._config.public_config.llm_remote = framework_config.llm.endpoint
+ self._config.public_config.llm_model = framework_config.llm.model
+ self._config.public_config.llm_api_key = framework_config.llm.key
+ self._config.public_config.max_tokens = framework_config.llm.max_tokens
+ self._config.public_config.temperature = framework_config.llm.temperature
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ pass
+
+ def get_config(self) -> ConfigModel:
+ """获取配置文件内容"""
+ return deepcopy(self._config)
diff --git a/mcp_center/config/public/public_config.toml b/mcp_center/config/public/public_config.toml
new file mode 100644
index 000000000..eb842e548
--- /dev/null
+++ b/mcp_center/config/public/public_config.toml
@@ -0,0 +1,17 @@
+# 公共配置文件
+# 语言设置,支持zh(中文)和en(英文)
+language = "zh"
+# 大模型配置
+llm_remote = ""
+llm_model = ""
+llm_api_key = ""
+max_tokens = 8192
+temperature = 0.7
+# 远程主机列表配置
+[[remote_hosts]]
+name = "本机"
+os_type = "openEuler"
+host = ""
+port = 22
+username = "root"
+password = ""
\ No newline at end of file
diff --git a/mcp_center/mcp_config/change.py b/mcp_center/mcp_config/change.py
new file mode 100644
index 000000000..cec514e9f
--- /dev/null
+++ b/mcp_center/mcp_config/change.py
@@ -0,0 +1,67 @@
+import json
+import toml
+
+def json_to_toml(json_data, toml_file_path, top_level_key="data"):
+ """
+ 将JSON数据转换为TOML格式并写入文件
+
+ 参数:
+ json_data: JSON数据,可以是字典、列表或JSON字符串
+ toml_file_path: 输出的TOML文件路径
+ top_level_key: 当输入为列表时,用于包装列表的顶级键名
+ """
+ try:
+ # 如果输入是JSON字符串,则先解析为Python对象
+ if isinstance(json_data, str):
+ data = json.loads(json_data)
+ else:
+ data = json_data
+
+ # TOML不支持顶级列表,需要包装在字典中
+ if isinstance(data, list):
+ data = {top_level_key: data}
+
+ # 将数据转换为TOML格式并写入文件
+ with open(toml_file_path, 'w', encoding='utf-8') as f:
+ toml.dump(data, f)
+
+ print(f"成功将JSON数据转换为TOML并写入文件: {toml_file_path}")
+ return True
+
+ except json.JSONDecodeError as e:
+ print(f"JSON解析错误: {e}")
+ except Exception as e:
+ print(f"转换过程中发生错误: {e}")
+ return False
+
+if __name__ == "__main__":
+ # 示例JSON数据(列表形式)
+ sample_json = [
+ {
+ "appType":"agent",
+ "name":"hce运维助手",
+ "description":"hce运维助手,用于诊断hce环境和执行shell命令",
+ "mcpPath":[
+ "remote_info_mcp",
+ "shell_generator_mcp"
+ ],
+ "published":True
+ }
+ ]
+
+ # 转换并写入TOML文件
+ # 对于列表数据,指定一个顶级键名(如"applications")使其符合TOML格式要求
+ json_to_toml(sample_json, "mcp_to_app_config.toml", "applications")
+
+ # 测试字典类型的JSON数据
+ dict_json = {
+ "name": "测试",
+ "version": "1.0.0",
+ "features": ["简单", "易用"]
+ }
+ json_to_toml(dict_json, "from_dict.toml")
+
+ # 测试JSON字符串
+ json_str = '{"name": "字符串测试", "version": "2.0.0"}'
+ json_to_toml(json_str, "from_string.toml")
+
\ No newline at end of file
diff --git a/mcp_center/mcp_config/mcp_to_app_config.toml b/mcp_center/mcp_config/mcp_to_app_config.toml
new file mode 100644
index 000000000..3e02efcec
--- /dev/null
+++ b/mcp_center/mcp_config/mcp_to_app_config.toml
@@ -0,0 +1,176 @@
+[[applications]]
+appType = "agent"
+name = "OE-智能运维助手"
+description = "提供通用系统运维能力,含网络监控、性能分析、硬件信息查询、存储管理等功能"
+mcpPath = [
+"remote_info_mcp",
+"shell_generator_mcp",
+"kill_mcp",
+"nohup_mcp",
+"strace_mcp",
+"top_mcp",
+"iftop_mcp",
+"nload_mcp",
+"netstat_mcp",
+"lsof_mcp",
+"ifconfig_mcp",
+"ethtool_mcp",
+"tshark_mcp",
+"file_content_tool_mcp",
+"firewalld_mcp",
+"iptable_mcp",
+"nmap_mcp",
+"file_transfer_mcp",
+"lscpu_mcp",
+"perf_interrupt_mcp",
+"flame_graph_mcp",
+"free_mcp",
+"sync_mcp",
+"swapon_mcp",
+"swapoff_mcp",
+"fallocate_mcp",
+"find_mcp",
+"touch_mcp",
+"mkdir_mcp",
+"rm_mcp",
+"mv_mcp",
+"ls_mcp",
+"head_mcp",
+"tail_mcp",
+"cat_mcp",
+"chmod_mcp",
+"chown_mcp",
+"tar_mcp",
+"zip_mcp",
+"grep_mcp",
+"sed_mcp",
+"echo_mcp"
+]
+published = true
+
+[[applications]]
+appType = "agent"
+name = "OE-智算调优助手"
+description = "面向AI/GPU/NPU智算场景,提供异构硬件监控、系统追踪、智算任务调优能力"
+mcpPath = [
+"shell_generator_mcp",
+"kill_mcp",
+"nohup_mcp",
+"strace_mcp",
+"top_mcp",
+"nvidia_mcp",
+"npu_mcp",
+"file_content_tool_mcp",
+"firewalld_mcp",
+"iptable_mcp",
+"file_transfer_mcp",
+"sync_mcp",
+"find_mcp",
+"touch_mcp",
+"mkdir_mcp",
+"rm_mcp",
+"mv_mcp",
+"ls_mcp",
+"systrace_mcp",
+"head_mcp",
+"tail_mcp",
+"cat_mcp",
+"chmod_mcp",
+"chown_mcp",
+"tar_mcp",
+"zip_mcp",
+"grep_mcp",
+"sed_mcp",
+"echo_mcp"
+]
+published = true
+
+[[applications]]
+appType = "agent"
+name = "OE-通算调优助手"
+description = "针对通用计算场景(尤其NUMA架构),提供NUMA优化、热点追踪、缓存分析、系统性能调优能力"
+mcpPath = [
+"shell_generator_mcp",
+"remote_info_mcp",
+"kill_mcp",
+"nohup_mcp",
+"strace_mcp",
+"top_mcp",
+"file_content_tool_mcp",
+"firewalld_mcp",
+"iptable_mcp",
+"file_transfer_mcp",
+"lscpu_mcp",
+"numa_topo_mcp",
+"numa_bind_proc_mcp",
+"numa_rebind_proc_mcp",
+"numa_perf_compare_mcp",
+"numa_diagnose_mcp",
+"numastat_mcp",
+"numa_cross_node_mcp",
+"numa_container_mcp",
+"hotspot_trace_mcp",
+"cache_miss_audit_mcp",
+"func_timing_trace_mcp",
+"strace_syscall_mcp",
+"perf_interrupt_mcp",
+"flame_graph_mcp",
+"free_mcp",
+"vmstat_mcp",
+"sar_mcp",
+"sync_mcp",
+"find_mcp",
+"touch_mcp",
+"mkdir_mcp",
+"rm_mcp",
+"mv_mcp",
+"ls_mcp",
+"euler-copilot-tune_mcp",
+"head_mcp",
+"tail_mcp",
+"cat_mcp",
+"chmod_mcp",
+"chown_mcp",
+"tar_mcp",
+"zip_mcp",
+"grep_mcp",
+"sed_mcp",
+"echo_mcp"
+]
+published = true
+
+[[applications]]
+appType = "agent"
+name = "OE-容器镜像助手"
+description = "提供容器与虚拟化环境管理能力,含Docker操作、QEMU虚拟化、容器NUMA绑定、镜像运维等功能"
+mcpPath = [
+"shell_generator_mcp",
+"remote_info_mcp",
+"kill_mcp",
+"strace_mcp",
+"file_content_tool_mcp",
+"firewalld_mcp",
+"iptable_mcp",
+"docker_mcp",
+"qemu_mcp",
+"file_transfer_mcp",
+"numa_bind_docker_mcp",
+"sync_mcp",
+"find_mcp",
+"touch_mcp",
+"mkdir_mcp",
+"rm_mcp",
+"mv_mcp",
+"ls_mcp",
+"head_mcp",
+"tail_mcp",
+"cat_mcp",
+"chmod_mcp",
+"chown_mcp",
+"tar_mcp",
+"zip_mcp",
+"grep_mcp",
+"sed_mcp",
+"echo_mcp"
+]
+published = true
\ No newline at end of file
diff --git a/mcp_center/requiremenets.txt b/mcp_center/requiremenets.txt
new file mode 100644
index 000000000..f7e4ad52d
--- /dev/null
+++ b/mcp_center/requiremenets.txt
@@ -0,0 +1,5 @@
+paramiko==4.0.0
+psutil==7.0.0
+toml == 0.10.2
+mcp == 1.9.4
+scp == 0.15.0
\ No newline at end of file
diff --git a/mcp_center/run.sh b/mcp_center/run.sh
new file mode 100755
index 000000000..43b4d212b
--- /dev/null
+++ b/mcp_center/run.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+SERVICE_DIR="/usr/lib/euler-copilot-framework/mcp_center/service"
+
+for service_file in "$SERVICE_DIR"/*.service; do
+ if [ -f "$service_file" ]; then
+ service_name=$(basename "$service_file" .service)
+ systemctl enable "$service_name"
+ systemctl start "$service_name"
+ fi
+done
+
+pip install -r /usr/lib/euler-copilot-framework/mcp_center/requiremenets.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
+
+SCRIPT_PATH=$(cd $(dirname $0) && pwd)
+echo "当前脚本所在目录: $SCRIPT_PATH"
+
+#源码启动systrace和euler-copilot-tune服务
+WORK_PATH="$SCRIPT_PATH/servers"
+SYSTRACE_FAILSLOW_SETUP="$WORK_PATH/systrace/failslow"
+SYSTRACE_MCP_SETUP="$WORK_PATH/systrace/systrace_mcp"
+TUNE_SETUP="$WORK_PATH/euler-copilot-tune"
+SYSTEMD_SVC1="systrace-mcpserver"
+SYSTEMD_SVC2="tune-mcpserver"
+REPO_URL="https://mirrors.huaweicloud.com/repository/pypi/simple/"
+REPO_HOST="mirrors.huaweicloud.com"
+pkill -f /usr/bin/dnf
+yum install python3-devel krb5-devel -y
+pkill -f /usr/bin/dnf
+yum install sysstat perf gcc -y
+systemctl start sysstat
+yum install sysbench -y
+
+PYTHON_VERSION=$(python3 -V 2>&1 | awk '{print $2}' | cut -d '.' -f 1,2)
+# 提取主版本(如 "3.9" → "3")和次版本(如 "3.9" → "9")
+PY_MAJOR=$(echo "$PYTHON_VERSION" | cut -d '.' -f 1)
+PY_MINOR=$(echo "$PYTHON_VERSION" | cut -d '.' -f 2)
+
+if [ -z "$PY_MAJOR" ] || [ -z "$PY_MINOR" ] || ! [[ "$PY_MAJOR" =~ ^[0-9]+$ ]] || ! [[ "$PY_MINOR" =~ ^[0-9]+$ ]]; then
+ echo -e "\033[31m错误:无法识别 Python 版本,当前输出为:$(python3 -V 2>&1)\033[0m"
+ exit 1
+fi
+
+echo -e "\033[34m当前系统 Python 版本:$PYTHON_VERSION\033[0m"
+if [ "$PY_MAJOR" -eq 3 ] && [ "$PY_MINOR" -eq 9 ]; then
+ echo -e "\033[32mPython 版本符合要求(3.9),无需执行 pip install mcp\033[0m"
+else
+ echo -e "\033[33mPython 版本不符合要求(需 3.9,当前为 $PYTHON_VERSION),开始执行 pip install mcp...\033[0m"
+
+ if pip install mcp -i https://pypi.tuna.tsinghua.edu.cn/simple; then
+ echo -e "\033[32mpip install mcp 执行成功!\033[0m"
+ else
+ echo -e "\033[31m错误:pip install mcp 执行失败,请检查网络或 pip 环境!\033[0m"
+ exit 1
+ fi
+fi
+
+if [ ! -d "$WORK_PATH" ]; then
+ echo -e "\033[31m错误:核心工作目录不存在!\033[0m"
+ echo -e "目标目录:$WORK_PATH"
+ echo -e "请先确认 euler-copilot-framework 已正确部署,或调整 WORK_PATH 路径后重试。"
+ exit 1
+fi
+
+pip install "$SYSTRACE_FAILSLOW_SETUP" -i $REPO_URL --trusted-host $REPO_HOST
+pip install "$SYSTRACE_MCP_SETUP" -i $REPO_URL --trusted-host $REPO_HOST
+pip install "$TUNE_SETUP" -i $REPO_URL --trusted-host $REPO_HOST
+
+cp -rf $SYSTRACE_FAILSLOW_SETUP/service/systrace-failslow.service /usr/lib/systemd/system/systrace-failslow.service
+cp -rf $SYSTRACE_MCP_SETUP/service/systrace-mcpserver.service /usr/lib/systemd/system/systrace-mcpserver.service
+mkdir -p /etc/systrace/config/
+cp -rf $SYSTRACE_MCP_SETUP/config/* /etc/systrace/config/
+cp -rf $SYSTRACE_FAILSLOW_SETUP/config/* /etc/systrace/config/
+
+cp -rf $TUNE_SETUP/service/tune-mcpserver.service /usr/lib/systemd/system/tune-mcpserver.service
+mkdir -p /etc/euler-copilot-tune
+cp -rf $TUNE_SETUP/config /etc/euler-copilot-tune/
+cp -rf $TUNE_SETUP/config/.env.yaml /etc/euler-copilot-tune/config/.env.yaml
+cp -rf $TUNE_SETUP/scripts /etc/euler-copilot-tune/
+cp -rf $TUNE_SETUP/src/knowledge_base /etc/euler-copilot-tune/
+
+
+systemctl daemon-reload
+systemctl enable --now "$SYSTEMD_SVC1"
+systemctl enable --now "$SYSTEMD_SVC2"
\ No newline at end of file
--
Gitee
From 1928fef777b2911dd15c8ac3b14f85a9005050ce Mon Sep 17 00:00:00 2001
From: cui-gaoleng <562344211@qq.com>
Date: Fri, 14 Nov 2025 11:38:15 +0800
Subject: [PATCH 2/7] =?UTF-8?q?mcp=5Fservers=5Fconfig+=E9=83=A8=E5=88=86mc?=
=?UTF-8?q?p=E7=A7=81=E6=9C=89=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../private/cache_miss_audit/config.toml | 0
.../private/cache_miss_audit/config_loader.py | 26 ++++++++++++++++
mcp_center/config/private/cat/config.toml | 0
.../config/private/cat/config_loader.py | 26 ++++++++++++++++
mcp_center/config/private/chmod/config.toml | 0
.../config/private/chmod/config_loader.py | 26 ++++++++++++++++
mcp_center/config/private/chown/config.toml | 0
.../config/private/chown/config_loader.py | 26 ++++++++++++++++
.../config/private/cmd_generator/config.toml | 0
.../private/cmd_generator/config_loader.py | 31 +++++++++++++++++++
.../config/private/disk_manager/config.toml | 0
.../private/disk_manager/config_loader.py | 26 ++++++++++++++++
mcp_center/config/private/docker/config.toml | 0
.../config/private/docker/config_loader.py | 26 ++++++++++++++++
mcp_center/config/private/echo/config.toml | 0
.../config/private/echo/config_loader.py | 26 ++++++++++++++++
mcp_center/config/private/ethtool/config.toml | 0
.../config/private/ethtool/config_loader.py | 26 ++++++++++++++++
.../config/private/fallocate/config.toml | 0
.../config/private/fallocate/config_loader.py | 26 ++++++++++++++++
.../private/file_content_tool/config.toml | 0
.../file_content_tool/config_loader.py | 26 ++++++++++++++++
.../config/private/file_transfer/config.toml | 0
.../private/file_transfer/config_loader.py | 26 ++++++++++++++++
mcp_center/config/private/find/config.toml | 0
.../config/private/find/config_loader.py | 26 ++++++++++++++++
.../config/private/firewalld/config.toml | 0
.../config/private/firewalld/config_loader.py | 26 ++++++++++++++++
.../config/private/flame_graph/config.toml | 0
.../private/flame_graph/config_loader.py | 26 ++++++++++++++++
.../cache_miss_audit_mcp/config.json | 9 ++++++
mcp_center/mcp_config/cat_mcp/config.json | 9 ++++++
mcp_center/mcp_config/chmod_mcp/config.json | 9 ++++++
mcp_center/mcp_config/chown_mcp/config.json | 9 ++++++
mcp_center/mcp_config/docker_mcp/config.json | 9 ++++++
mcp_center/mcp_config/echo_mcp/config.json | 9 ++++++
mcp_center/mcp_config/ethtool_mcp/config.json | 9 ++++++
.../mcp_config/fallocate_mcp/config.json | 9 ++++++
.../file_content_tool_mcp/config.json | 9 ++++++
.../mcp_config/file_transfer_mcp/config.json | 9 ++++++
mcp_center/mcp_config/find_mcp/config.json | 9 ++++++
.../mcp_config/firewalld_mcp/config.json | 9 ++++++
.../mcp_config/flame_graph_mcp/config.json | 9 ++++++
mcp_center/mcp_config/free_mcp/config.json | 9 ++++++
.../func_timing_trace_mcp/config.json | 9 ++++++
mcp_center/mcp_config/grep_mcp/config.json | 9 ++++++
mcp_center/mcp_config/head_mcp/config.json | 9 ++++++
.../mcp_config/hotspot_trace_mcp/config.json | 9 ++++++
.../mcp_config/ifconfig_mcp/config.json | 9 ++++++
mcp_center/mcp_config/iftop_mcp/config.json | 9 ++++++
.../mcp_config/iptables_mcp/config.json | 9 ++++++
mcp_center/mcp_config/kill_mcp/config.json | 9 ++++++
mcp_center/mcp_config/ls_mcp/config.json | 9 ++++++
mcp_center/mcp_config/lscpu_mcp/config.json | 9 ++++++
mcp_center/mcp_config/lsof_mcp/config.json | 9 ++++++
mcp_center/mcp_config/mkdir_mcp/config.json | 9 ++++++
mcp_center/mcp_config/mv_mcp/config.json | 9 ++++++
mcp_center/mcp_config/netstat_mcp/config.json | 9 ++++++
mcp_center/mcp_config/nload_mcp/config.json | 9 ++++++
mcp_center/mcp_config/nmap_mcp/config.json | 9 ++++++
mcp_center/mcp_config/nohup_mcp/config.json | 9 ++++++
mcp_center/mcp_config/npu_mcp/config.json | 9 ++++++
.../numa_bind_docker_mcp/config.json | 9 ++++++
.../mcp_config/numa_bind_proc_mcp/config.json | 9 ++++++
.../mcp_config/numa_container_mcp/config.json | 9 ++++++
.../numa_cross_node_mcp/config.json | 9 ++++++
.../mcp_config/numa_diagnose_mcp/config.json | 9 ++++++
.../numa_perf_compare_mcp/config.json | 9 ++++++
.../numa_rebind_proc_mcp/config.json | 9 ++++++
.../mcp_config/numa_topo_mcp/config.json | 9 ++++++
.../mcp_config/numastat_mcp/config.json | 9 ++++++
mcp_center/mcp_config/nvidia_mcp/config.json | 9 ++++++
.../mcp_config/perf_interrupt_mcp/config.json | 9 ++++++
mcp_center/mcp_config/qemu_mcp/config.json | 9 ++++++
.../mcp_config/remote_info_mcp/config.json | 9 ++++++
mcp_center/mcp_config/rm_mcp/config.json | 9 ++++++
mcp_center/mcp_config/sar_mcp/config.json | 9 ++++++
mcp_center/mcp_config/sed_mcp/config.json | 9 ++++++
.../shell_generator_mcp/config.json | 9 ++++++
mcp_center/mcp_config/strace_mcp/config.json | 9 ++++++
.../mcp_config/strace_syscall_mcp/config.json | 9 ++++++
mcp_center/mcp_config/swapoff_mcp/config.json | 9 ++++++
mcp_center/mcp_config/swapon_mcp/config.json | 9 ++++++
mcp_center/mcp_config/sync_mcp/config.json | 9 ++++++
.../mcp_config/systrace_mcp/config.json | 9 ++++++
mcp_center/mcp_config/tail_mcp/config.json | 9 ++++++
mcp_center/mcp_config/tar_mcp/config.json | 9 ++++++
mcp_center/mcp_config/top_mcp/config.json | 9 ++++++
mcp_center/mcp_config/touch_mcp/config.json | 9 ++++++
mcp_center/mcp_config/tshark_mcp/config.json | 9 ++++++
mcp_center/mcp_config/tune_mcp/config.json | 9 ++++++
mcp_center/mcp_config/vmstat_mcp/config.json | 9 ++++++
mcp_center/mcp_config/zip_mcp/config.json | 9 ++++++
93 files changed, 962 insertions(+)
create mode 100644 mcp_center/config/private/cache_miss_audit/config.toml
create mode 100644 mcp_center/config/private/cache_miss_audit/config_loader.py
create mode 100644 mcp_center/config/private/cat/config.toml
create mode 100644 mcp_center/config/private/cat/config_loader.py
create mode 100644 mcp_center/config/private/chmod/config.toml
create mode 100644 mcp_center/config/private/chmod/config_loader.py
create mode 100644 mcp_center/config/private/chown/config.toml
create mode 100644 mcp_center/config/private/chown/config_loader.py
create mode 100644 mcp_center/config/private/cmd_generator/config.toml
create mode 100644 mcp_center/config/private/cmd_generator/config_loader.py
create mode 100644 mcp_center/config/private/disk_manager/config.toml
create mode 100644 mcp_center/config/private/disk_manager/config_loader.py
create mode 100644 mcp_center/config/private/docker/config.toml
create mode 100644 mcp_center/config/private/docker/config_loader.py
create mode 100644 mcp_center/config/private/echo/config.toml
create mode 100644 mcp_center/config/private/echo/config_loader.py
create mode 100644 mcp_center/config/private/ethtool/config.toml
create mode 100644 mcp_center/config/private/ethtool/config_loader.py
create mode 100644 mcp_center/config/private/fallocate/config.toml
create mode 100644 mcp_center/config/private/fallocate/config_loader.py
create mode 100644 mcp_center/config/private/file_content_tool/config.toml
create mode 100644 mcp_center/config/private/file_content_tool/config_loader.py
create mode 100644 mcp_center/config/private/file_transfer/config.toml
create mode 100644 mcp_center/config/private/file_transfer/config_loader.py
create mode 100644 mcp_center/config/private/find/config.toml
create mode 100644 mcp_center/config/private/find/config_loader.py
create mode 100644 mcp_center/config/private/firewalld/config.toml
create mode 100644 mcp_center/config/private/firewalld/config_loader.py
create mode 100644 mcp_center/config/private/flame_graph/config.toml
create mode 100644 mcp_center/config/private/flame_graph/config_loader.py
create mode 100644 mcp_center/mcp_config/cache_miss_audit_mcp/config.json
create mode 100644 mcp_center/mcp_config/cat_mcp/config.json
create mode 100644 mcp_center/mcp_config/chmod_mcp/config.json
create mode 100644 mcp_center/mcp_config/chown_mcp/config.json
create mode 100644 mcp_center/mcp_config/docker_mcp/config.json
create mode 100644 mcp_center/mcp_config/echo_mcp/config.json
create mode 100644 mcp_center/mcp_config/ethtool_mcp/config.json
create mode 100644 mcp_center/mcp_config/fallocate_mcp/config.json
create mode 100644 mcp_center/mcp_config/file_content_tool_mcp/config.json
create mode 100644 mcp_center/mcp_config/file_transfer_mcp/config.json
create mode 100644 mcp_center/mcp_config/find_mcp/config.json
create mode 100644 mcp_center/mcp_config/firewalld_mcp/config.json
create mode 100644 mcp_center/mcp_config/flame_graph_mcp/config.json
create mode 100644 mcp_center/mcp_config/free_mcp/config.json
create mode 100644 mcp_center/mcp_config/func_timing_trace_mcp/config.json
create mode 100644 mcp_center/mcp_config/grep_mcp/config.json
create mode 100644 mcp_center/mcp_config/head_mcp/config.json
create mode 100644 mcp_center/mcp_config/hotspot_trace_mcp/config.json
create mode 100644 mcp_center/mcp_config/ifconfig_mcp/config.json
create mode 100644 mcp_center/mcp_config/iftop_mcp/config.json
create mode 100644 mcp_center/mcp_config/iptables_mcp/config.json
create mode 100644 mcp_center/mcp_config/kill_mcp/config.json
create mode 100644 mcp_center/mcp_config/ls_mcp/config.json
create mode 100644 mcp_center/mcp_config/lscpu_mcp/config.json
create mode 100644 mcp_center/mcp_config/lsof_mcp/config.json
create mode 100644 mcp_center/mcp_config/mkdir_mcp/config.json
create mode 100644 mcp_center/mcp_config/mv_mcp/config.json
create mode 100644 mcp_center/mcp_config/netstat_mcp/config.json
create mode 100644 mcp_center/mcp_config/nload_mcp/config.json
create mode 100644 mcp_center/mcp_config/nmap_mcp/config.json
create mode 100644 mcp_center/mcp_config/nohup_mcp/config.json
create mode 100644 mcp_center/mcp_config/npu_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_bind_docker_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_bind_proc_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_container_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_cross_node_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_diagnose_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_perf_compare_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_rebind_proc_mcp/config.json
create mode 100644 mcp_center/mcp_config/numa_topo_mcp/config.json
create mode 100644 mcp_center/mcp_config/numastat_mcp/config.json
create mode 100644 mcp_center/mcp_config/nvidia_mcp/config.json
create mode 100644 mcp_center/mcp_config/perf_interrupt_mcp/config.json
create mode 100644 mcp_center/mcp_config/qemu_mcp/config.json
create mode 100644 mcp_center/mcp_config/remote_info_mcp/config.json
create mode 100644 mcp_center/mcp_config/rm_mcp/config.json
create mode 100644 mcp_center/mcp_config/sar_mcp/config.json
create mode 100644 mcp_center/mcp_config/sed_mcp/config.json
create mode 100644 mcp_center/mcp_config/shell_generator_mcp/config.json
create mode 100644 mcp_center/mcp_config/strace_mcp/config.json
create mode 100644 mcp_center/mcp_config/strace_syscall_mcp/config.json
create mode 100644 mcp_center/mcp_config/swapoff_mcp/config.json
create mode 100644 mcp_center/mcp_config/swapon_mcp/config.json
create mode 100644 mcp_center/mcp_config/sync_mcp/config.json
create mode 100644 mcp_center/mcp_config/systrace_mcp/config.json
create mode 100644 mcp_center/mcp_config/tail_mcp/config.json
create mode 100644 mcp_center/mcp_config/tar_mcp/config.json
create mode 100644 mcp_center/mcp_config/top_mcp/config.json
create mode 100644 mcp_center/mcp_config/touch_mcp/config.json
create mode 100644 mcp_center/mcp_config/tshark_mcp/config.json
create mode 100644 mcp_center/mcp_config/tune_mcp/config.json
create mode 100644 mcp_center/mcp_config/vmstat_mcp/config.json
create mode 100644 mcp_center/mcp_config/zip_mcp/config.json
diff --git a/mcp_center/config/private/cache_miss_audit/config.toml b/mcp_center/config/private/cache_miss_audit/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/cache_miss_audit/config_loader.py b/mcp_center/config/private/cache_miss_audit/config_loader.py
new file mode 100644
index 000000000..2742ddbc8
--- /dev/null
+++ b/mcp_center/config/private/cache_miss_audit/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class CacheMissAuditConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12217, description="MCP服务端口")
+
+
+class CacheMissAuditConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "cache_miss_audit", "config.toml")
+ self._config.private_config = CacheMissAuditConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/cat/config.toml b/mcp_center/config/private/cat/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/cat/config_loader.py b/mcp_center/config/private/cat/config_loader.py
new file mode 100644
index 000000000..24027f1e3
--- /dev/null
+++ b/mcp_center/config/private/cat/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class CatConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13115, description="MCP服务端口")
+
+
+class CatConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "cat", "config.toml")
+ self._config.private_config = CatConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/chmod/config.toml b/mcp_center/config/private/chmod/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/chmod/config_loader.py b/mcp_center/config/private/chmod/config_loader.py
new file mode 100644
index 000000000..ca1edd922
--- /dev/null
+++ b/mcp_center/config/private/chmod/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class ChmodConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13117, description="MCP服务端口")
+
+
+class ChmodConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "chmod", "config.toml")
+ self._config.private_config = ChmodConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/chown/config.toml b/mcp_center/config/private/chown/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/chown/config_loader.py b/mcp_center/config/private/chown/config_loader.py
new file mode 100644
index 000000000..112776f7f
--- /dev/null
+++ b/mcp_center/config/private/chown/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class ChownConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13116, description="MCP服务端口")
+
+
+class ChownConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "chown", "config.toml")
+ self._config.private_config = ChownConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/cmd_generator/config.toml b/mcp_center/config/private/cmd_generator/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/cmd_generator/config_loader.py b/mcp_center/config/private/cmd_generator/config_loader.py
new file mode 100644
index 000000000..26dadab82
--- /dev/null
+++ b/mcp_center/config/private/cmd_generator/config_loader.py
@@ -0,0 +1,31 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class CMDGeneratorConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12101, description="MCP服务端口")
+ llm_remote: str = Field(default="", description="LLM远程主机地址")
+ llm_model: str = Field(default="gpt-3.5-turbo", description="LLM模型名称")
+ llm_api_key: str = Field(default="", description="LLM API Key")
+ max_tokens: int = Field(default=2048, description="LLM最大Token数")
+ temperature: float = Field(default=0.7, description="LLM温度参数")
+
+
+class CMDGeneratorConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CMD_GENERATOR_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "cmd_generator", "config.toml")
+ self._config.private_config = CMDGeneratorConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/disk_manager/config.toml b/mcp_center/config/private/disk_manager/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/disk_manager/config_loader.py b/mcp_center/config/private/disk_manager/config_loader.py
new file mode 100644
index 000000000..a43318dac
--- /dev/null
+++ b/mcp_center/config/private/disk_manager/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class DiskManagerConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12102, description="MCP服务端口")
+
+
+class DiskManagerConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("REMOTE_INFO_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "disk_manager", "config.toml")
+ self._config.private_config = DiskManagerConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/docker/config.toml b/mcp_center/config/private/docker/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/docker/config_loader.py b/mcp_center/config/private/docker/config_loader.py
new file mode 100644
index 000000000..61ecad785
--- /dev/null
+++ b/mcp_center/config/private/docker/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class DockerConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12133, description="MCP服务端口")
+
+
+class DockerConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("DOCKER_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "docker", "config.toml")
+ self._config.private_config = DockerConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/echo/config.toml b/mcp_center/config/private/echo/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/echo/config_loader.py b/mcp_center/config/private/echo/config_loader.py
new file mode 100644
index 000000000..80078995e
--- /dev/null
+++ b/mcp_center/config/private/echo/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class EchoConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13125, description="MCP服务端口")
+
+
+class EchoConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "echo", "config.toml")
+ self._config.private_config = EchoConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/ethtool/config.toml b/mcp_center/config/private/ethtool/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/ethtool/config_loader.py b/mcp_center/config/private/ethtool/config_loader.py
new file mode 100644
index 000000000..a9bbb9cd0
--- /dev/null
+++ b/mcp_center/config/private/ethtool/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class EthtoolConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12121, description="MCP服务端口")
+
+
+class EthtoolConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("ETHTOOL_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "ethtool", "config.toml")
+ self._config.private_config = EthtoolConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/fallocate/config.toml b/mcp_center/config/private/fallocate/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/fallocate/config_loader.py b/mcp_center/config/private/fallocate/config_loader.py
new file mode 100644
index 000000000..922c81f66
--- /dev/null
+++ b/mcp_center/config/private/fallocate/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FallocateConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13106, description="MCP服务端口")
+
+
+class FallocateConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "fallocate", "config.toml")
+ self._config.private_config = FallocateConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/file_content_tool/config.toml b/mcp_center/config/private/file_content_tool/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/file_content_tool/config_loader.py b/mcp_center/config/private/file_content_tool/config_loader.py
new file mode 100644
index 000000000..990efca80
--- /dev/null
+++ b/mcp_center/config/private/file_content_tool/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FileCommandConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12125, description="MCP服务端口")
+
+
+class FileCommandConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "file_content_tool", "config.toml")
+ self._config.private_config = FileCommandConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/file_transfer/config.toml b/mcp_center/config/private/file_transfer/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/file_transfer/config_loader.py b/mcp_center/config/private/file_transfer/config_loader.py
new file mode 100644
index 000000000..51316a0a0
--- /dev/null
+++ b/mcp_center/config/private/file_transfer/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FileTransferConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12136, description="MCP服务端口")
+
+
+class FileTransferConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "file_transfer", "config.toml")
+ self._config.private_config = FileTransferConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/find/config.toml b/mcp_center/config/private/find/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/find/config_loader.py b/mcp_center/config/private/find/config_loader.py
new file mode 100644
index 000000000..7e8b69580
--- /dev/null
+++ b/mcp_center/config/private/find/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FindConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13107, description="MCP服务端口")
+
+
+class FindConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "find", "config.toml")
+ self._config.private_config = FindConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/firewalld/config.toml b/mcp_center/config/private/firewalld/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/firewalld/config_loader.py b/mcp_center/config/private/firewalld/config_loader.py
new file mode 100644
index 000000000..7c365cf83
--- /dev/null
+++ b/mcp_center/config/private/firewalld/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FirewalldConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12130, description="MCP服务端口")
+
+
+class FirewalldConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("FIREWALLD_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "firewalld", "config.toml")
+ self._config.private_config = FirewalldConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/flame_graph/config.toml b/mcp_center/config/private/flame_graph/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/flame_graph/config_loader.py b/mcp_center/config/private/flame_graph/config_loader.py
new file mode 100644
index 000000000..48e04e390
--- /dev/null
+++ b/mcp_center/config/private/flame_graph/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FlameGraphConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12222, description="MCP服务端口")
+
+
+class FlameGraphConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "flame_graph", "config.toml")
+ self._config.private_config = FlameGraphConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/mcp_config/cache_miss_audit_mcp/config.json b/mcp_center/mcp_config/cache_miss_audit_mcp/config.json
new file mode 100644
index 000000000..e238ae0d6
--- /dev/null
+++ b/mcp_center/mcp_config/cache_miss_audit_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "定位 CPU 缓存失效导致的性能损耗mcp",
+ "overview": "定位 CPU 缓存失效导致的性能损耗mcp",
+ "description": "定位 CPU 缓存失效导致的性能损耗mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12217/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/cat_mcp/config.json b/mcp_center/mcp_config/cat_mcp/config.json
new file mode 100644
index 000000000..48d133627
--- /dev/null
+++ b/mcp_center/mcp_config/cat_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件内容查看工具",
+ "overview": "文件内容查看工具",
+ "description": "文件内容查看工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13115/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/chmod_mcp/config.json b/mcp_center/mcp_config/chmod_mcp/config.json
new file mode 100644
index 000000000..d8494f337
--- /dev/null
+++ b/mcp_center/mcp_config/chmod_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件权限修改工具",
+ "overview": "文件权限修改工具",
+ "description": "文件权限修改工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13117/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/chown_mcp/config.json b/mcp_center/mcp_config/chown_mcp/config.json
new file mode 100644
index 000000000..a6e0baac2
--- /dev/null
+++ b/mcp_center/mcp_config/chown_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件所有者修改工具",
+ "overview": "文件所有者修改工具",
+ "description": "文件所有者修改工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13116/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/docker_mcp/config.json b/mcp_center/mcp_config/docker_mcp/config.json
new file mode 100644
index 000000000..bdab03d5c
--- /dev/null
+++ b/mcp_center/mcp_config/docker_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "docker工具",
+ "overview": "docker工具",
+ "description": "docker工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12133/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/echo_mcp/config.json b/mcp_center/mcp_config/echo_mcp/config.json
new file mode 100644
index 000000000..c9966996f
--- /dev/null
+++ b/mcp_center/mcp_config/echo_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文本写入工具",
+ "overview": "文本写入工具",
+ "description": "文本写入工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13125/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/ethtool_mcp/config.json b/mcp_center/mcp_config/ethtool_mcp/config.json
new file mode 100644
index 000000000..c5f5d8eff
--- /dev/null
+++ b/mcp_center/mcp_config/ethtool_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "ethtool网卡信息查询,特性情况,网卡设置",
+ "overview": "ethtool网卡信息查询,特性情况,网卡设置",
+ "description": "ethtool网卡信息查询,特性情况,网卡设置",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12121/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/fallocate_mcp/config.json b/mcp_center/mcp_config/fallocate_mcp/config.json
new file mode 100644
index 000000000..50bfe29dc
--- /dev/null
+++ b/mcp_center/mcp_config/fallocate_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "创建启用启用swap文件工具",
+ "overview": "创建启用启用swap文件工具",
+ "description": "创建启用启用swap文件工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13106/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/file_content_tool_mcp/config.json b/mcp_center/mcp_config/file_content_tool_mcp/config.json
new file mode 100644
index 000000000..73f71ff97
--- /dev/null
+++ b/mcp_center/mcp_config/file_content_tool_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件内容增删改查",
+ "overview": "文件内容增删改查",
+ "description": "文件内容增删改查",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12125/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/file_transfer_mcp/config.json b/mcp_center/mcp_config/file_transfer_mcp/config.json
new file mode 100644
index 000000000..4dfbc4b1b
--- /dev/null
+++ b/mcp_center/mcp_config/file_transfer_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "基于`curl`、`wget`、`scp`、`sftp`工具的文件传输MCP",
+ "overview": "基于`curl`、`wget`、`scp`、`sftp`工具的文件传输MCP",
+ "description": "基于`curl`、`wget`、`scp`、`sftp`工具的文件传输MCP",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12136/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/find_mcp/config.json b/mcp_center/mcp_config/find_mcp/config.json
new file mode 100644
index 000000000..206c0db8b
--- /dev/null
+++ b/mcp_center/mcp_config/find_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件查找工具",
+ "overview": "文件查找工具",
+ "description": "文件查找工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13107/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/firewalld_mcp/config.json b/mcp_center/mcp_config/firewalld_mcp/config.json
new file mode 100644
index 000000000..a04907a55
--- /dev/null
+++ b/mcp_center/mcp_config/firewalld_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "Firewalld网络防火墙管理工具",
+ "overview": "Firewalld网络防火墙管理工具",
+ "description": "Firewalld网络防火墙管理工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12130/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/flame_graph_mcp/config.json b/mcp_center/mcp_config/flame_graph_mcp/config.json
new file mode 100644
index 000000000..7e89be955
--- /dev/null
+++ b/mcp_center/mcp_config/flame_graph_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "火焰图生成:可视化展示性能瓶颈mcp",
+ "overview": "火焰图生成:可视化展示性能瓶颈mcp",
+ "description": "火焰图生成:可视化展示性能瓶颈mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12222/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/free_mcp/config.json b/mcp_center/mcp_config/free_mcp/config.json
new file mode 100644
index 000000000..e88ddc265
--- /dev/null
+++ b/mcp_center/mcp_config/free_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "系统整体内存资源信息收集工具",
+ "overview": "系统整体内存资源信息收集工具",
+ "description": "系统整体内存资源信息收集工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13100/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/func_timing_trace_mcp/config.json b/mcp_center/mcp_config/func_timing_trace_mcp/config.json
new file mode 100644
index 000000000..39515c29b
--- /dev/null
+++ b/mcp_center/mcp_config/func_timing_trace_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "精准测量函数执行时间(含调用栈)mcp",
+ "overview": "精准测量函数执行时间(含调用栈)mcp",
+ "description": "精准测量函数执行时间(含调用栈)mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12218/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/grep_mcp/config.json b/mcp_center/mcp_config/grep_mcp/config.json
new file mode 100644
index 000000000..fb5444d43
--- /dev/null
+++ b/mcp_center/mcp_config/grep_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件内容搜索工具",
+ "overview": "文件内容搜索工具",
+ "description": "文件内容搜索工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13120/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/head_mcp/config.json b/mcp_center/mcp_config/head_mcp/config.json
new file mode 100644
index 000000000..4266e6b95
--- /dev/null
+++ b/mcp_center/mcp_config/head_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件开头内容查看工具",
+ "overview": "文件开头内容查看工具",
+ "description": "文件开头内容查看工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13113/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/hotspot_trace_mcp/config.json b/mcp_center/mcp_config/hotspot_trace_mcp/config.json
new file mode 100644
index 000000000..4bf74db94
--- /dev/null
+++ b/mcp_center/mcp_config/hotspot_trace_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "快速定位系统 / 进程的 CPU 性能瓶颈mcp",
+ "overview": "快速定位系统 / 进程的 CPU 性能瓶颈mcp",
+ "description": "快速定位系统 / 进程的 CPU 性能瓶颈mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12216/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/ifconfig_mcp/config.json b/mcp_center/mcp_config/ifconfig_mcp/config.json
new file mode 100644
index 000000000..f151afa0d
--- /dev/null
+++ b/mcp_center/mcp_config/ifconfig_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "ifconfig 网络接口信息监控",
+ "overview": "ifconfig 网络接口信息监控",
+ "description": "ifconfig 网络接口信息监控",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12120/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/iftop_mcp/config.json b/mcp_center/mcp_config/iftop_mcp/config.json
new file mode 100644
index 000000000..efa10860b
--- /dev/null
+++ b/mcp_center/mcp_config/iftop_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "Iftop网络流量监控",
+ "overview": "Iftop网络流量监控",
+ "description": "Iftop网络流量监控",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12116/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/iptables_mcp/config.json b/mcp_center/mcp_config/iptables_mcp/config.json
new file mode 100644
index 000000000..9d952e90f
--- /dev/null
+++ b/mcp_center/mcp_config/iptables_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "iptables防火墙管理工具",
+ "overview": "iptables防火墙管理工具",
+ "description": "iptables防火墙管理工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12131/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/kill_mcp/config.json b/mcp_center/mcp_config/kill_mcp/config.json
new file mode 100644
index 000000000..bcd3f1419
--- /dev/null
+++ b/mcp_center/mcp_config/kill_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "kill命令暂停/恢复进程&查询信号量含义",
+ "overview": "kill命令暂停/恢复进程&查询信号量含义",
+ "description": "kill命令暂停/恢复进程&查询信号量含义",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12111/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/ls_mcp/config.json b/mcp_center/mcp_config/ls_mcp/config.json
new file mode 100644
index 000000000..37143eaeb
--- /dev/null
+++ b/mcp_center/mcp_config/ls_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "目录结构查看工具",
+ "overview": "目录结构查看工具",
+ "description": "目录结构查看工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13112/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/lscpu_mcp/config.json b/mcp_center/mcp_config/lscpu_mcp/config.json
new file mode 100644
index 000000000..038281248
--- /dev/null
+++ b/mcp_center/mcp_config/lscpu_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "cpu架构等静态信息收集mcp",
+ "overview": "cpu架构等静态信息收集mcp",
+ "description": "cpu架构等静态信息收集mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12202/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/lsof_mcp/config.json b/mcp_center/mcp_config/lsof_mcp/config.json
new file mode 100644
index 000000000..c0d782c0b
--- /dev/null
+++ b/mcp_center/mcp_config/lsof_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "快速排查文件占用冲突、网络连接异常及进程资源占用问题",
+ "overview": "快速排查文件占用冲突、网络连接异常及进程资源占用问题",
+ "description": "快速排查文件占用冲突、网络连接异常及进程资源占用问题",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12119/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/mkdir_mcp/config.json b/mcp_center/mcp_config/mkdir_mcp/config.json
new file mode 100644
index 000000000..e8d88c6ee
--- /dev/null
+++ b/mcp_center/mcp_config/mkdir_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件夹创建工具",
+ "overview": "文件夹创建工具",
+ "description": "文件夹创建工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13109/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/mv_mcp/config.json b/mcp_center/mcp_config/mv_mcp/config.json
new file mode 100644
index 000000000..2f9d37286
--- /dev/null
+++ b/mcp_center/mcp_config/mv_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件移动工具",
+ "overview": "文件移动工具",
+ "description": "文件移动工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13111/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/netstat_mcp/config.json b/mcp_center/mcp_config/netstat_mcp/config.json
new file mode 100644
index 000000000..67ce2c686
--- /dev/null
+++ b/mcp_center/mcp_config/netstat_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "netstat网络连接监控",
+ "overview": "netstat网络连接监控",
+ "description": "netstat网络连接监控",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12118/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nload_mcp/config.json b/mcp_center/mcp_config/nload_mcp/config.json
new file mode 100644
index 000000000..93f49bfca
--- /dev/null
+++ b/mcp_center/mcp_config/nload_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "Nload带宽监控",
+ "overview": "Nload带宽监控",
+ "description": "Nload带宽监控",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12117/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nmap_mcp/config.json b/mcp_center/mcp_config/nmap_mcp/config.json
new file mode 100644
index 000000000..6ecad2504
--- /dev/null
+++ b/mcp_center/mcp_config/nmap_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "Nmap扫描IP(网段)",
+ "overview": "Nmap扫描IP(网段)",
+ "description": "Nmap扫描IP(网段)",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12135/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nohup_mcp/config.json b/mcp_center/mcp_config/nohup_mcp/config.json
new file mode 100644
index 000000000..cd2b5bad7
--- /dev/null
+++ b/mcp_center/mcp_config/nohup_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "后台运行进程",
+ "overview": "后台运行进程",
+ "description": "后台运行进程",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12112/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/npu_mcp/config.json b/mcp_center/mcp_config/npu_mcp/config.json
new file mode 100644
index 000000000..a02dfc820
--- /dev/null
+++ b/mcp_center/mcp_config/npu_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "npu的查询和控制",
+ "overview": "npu的查询和控制",
+ "description": "npu的查询和控制",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12115/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_bind_docker_mcp/config.json b/mcp_center/mcp_config/numa_bind_docker_mcp/config.json
new file mode 100644
index 000000000..36d8a769c
--- /dev/null
+++ b/mcp_center/mcp_config/numa_bind_docker_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "为 Docker 容器配置 NUMA 绑定mcp",
+ "overview": "为 Docker 容器配置 NUMA 绑定mcp",
+ "description": "为 Docker 容器配置 NUMA 绑定mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12206/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_bind_proc_mcp/config.json b/mcp_center/mcp_config/numa_bind_proc_mcp/config.json
new file mode 100644
index 000000000..aec44574a
--- /dev/null
+++ b/mcp_center/mcp_config/numa_bind_proc_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "启动时绑定进程到指定 NUMA 节点mcp",
+ "overview": "启动时绑定进程到指定 NUMA 节点mcp",
+ "description": "启动时绑定进程到指定 NUMA 节点mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12204/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_container_mcp/config.json b/mcp_center/mcp_config/numa_container_mcp/config.json
new file mode 100644
index 000000000..4ea1c2f92
--- /dev/null
+++ b/mcp_center/mcp_config/numa_container_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "监控 Docker 容器的 NUMA 内存访问mcp",
+ "overview": "监控 Docker 容器的 NUMA 内存访问mcp",
+ "description": "监控 Docker 容器的 NUMA 内存访问mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12214/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_cross_node_mcp/config.json b/mcp_center/mcp_config/numa_cross_node_mcp/config.json
new file mode 100644
index 000000000..2c8bb0b3e
--- /dev/null
+++ b/mcp_center/mcp_config/numa_cross_node_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "定位跨节点内存访问过高的进程mcp",
+ "overview": "定位跨节点内存访问过高的进程mcp",
+ "description": "定位跨节点内存访问过高的进程mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12211/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_diagnose_mcp/config.json b/mcp_center/mcp_config/numa_diagnose_mcp/config.json
new file mode 100644
index 000000000..26672639b
--- /dev/null
+++ b/mcp_center/mcp_config/numa_diagnose_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "用 NUMA 绑定定位硬件问题mcp",
+ "overview": "用 NUMA 绑定定位硬件问题mcp",
+ "description": "用 NUMA 绑定定位硬件问题mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12209/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_perf_compare_mcp/config.json b/mcp_center/mcp_config/numa_perf_compare_mcp/config.json
new file mode 100644
index 000000000..2b0bb3d13
--- /dev/null
+++ b/mcp_center/mcp_config/numa_perf_compare_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "用 NUMA 绑定控制测试变量性能测试mcp",
+ "overview": "用 NUMA 绑定控制测试变量性能测试mcp",
+ "description": "用 NUMA 绑定控制测试变量性能测试mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12208/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_rebind_proc_mcp/config.json b/mcp_center/mcp_config/numa_rebind_proc_mcp/config.json
new file mode 100644
index 000000000..4117a4e20
--- /dev/null
+++ b/mcp_center/mcp_config/numa_rebind_proc_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "修改已启动进程的 NUMA 绑定mcp",
+ "overview": "修改已启动进程的 NUMA 绑定mcp",
+ "description": "修改已启动进程的 NUMA 绑定mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12205/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_topo_mcp/config.json b/mcp_center/mcp_config/numa_topo_mcp/config.json
new file mode 100644
index 000000000..3e45b9984
--- /dev/null
+++ b/mcp_center/mcp_config/numa_topo_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "查询 NUMA 硬件拓扑与系统配置mcp",
+ "overview": "查询 NUMA 硬件拓扑与系统配置mcp",
+ "description": "查询 NUMA 硬件拓扑与系统配置mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12203/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numastat_mcp/config.json b/mcp_center/mcp_config/numastat_mcp/config.json
new file mode 100644
index 000000000..ef74979dc
--- /dev/null
+++ b/mcp_center/mcp_config/numastat_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "查看系统整体 NUMA 内存访问状态mcp",
+ "overview": "查看系统整体 NUMA 内存访问状态mcp",
+ "description": "查看系统整体 NUMA 内存访问状态mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12210/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nvidia_mcp/config.json b/mcp_center/mcp_config/nvidia_mcp/config.json
new file mode 100644
index 000000000..438c2683b
--- /dev/null
+++ b/mcp_center/mcp_config/nvidia_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "nvidia查询GPU信息",
+ "overview": "nvidia查询GPU信息",
+ "description": "nvidia查询GPU信息",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12114/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/perf_interrupt_mcp/config.json b/mcp_center/mcp_config/perf_interrupt_mcp/config.json
new file mode 100644
index 000000000..6b9b3323e
--- /dev/null
+++ b/mcp_center/mcp_config/perf_interrupt_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "定位高频中断导致的 CPU 占用mcp",
+ "overview": "定位高频中断导致的 CPU 占用mcp",
+ "description": "定位高频中断导致的 CPU 占用mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12220/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/qemu_mcp/config.json b/mcp_center/mcp_config/qemu_mcp/config.json
new file mode 100644
index 000000000..3cc69861d
--- /dev/null
+++ b/mcp_center/mcp_config/qemu_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "Qemu虚拟机管理工具",
+ "overview": "Qemu虚拟机管理工具",
+ "description": "Qemu虚拟机管理工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12134/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/remote_info_mcp/config.json b/mcp_center/mcp_config/remote_info_mcp/config.json
new file mode 100644
index 000000000..b52fd80d5
--- /dev/null
+++ b/mcp_center/mcp_config/remote_info_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "端侧信息收集工具",
+ "overview": "端侧信息收集工具",
+ "description": "端侧信息收集工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12100/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/rm_mcp/config.json b/mcp_center/mcp_config/rm_mcp/config.json
new file mode 100644
index 000000000..049291a69
--- /dev/null
+++ b/mcp_center/mcp_config/rm_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件删除工具",
+ "overview": "文件删除工具",
+ "description": "文件删除工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13110/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/sar_mcp/config.json b/mcp_center/mcp_config/sar_mcp/config.json
new file mode 100644
index 000000000..95357f3df
--- /dev/null
+++ b/mcp_center/mcp_config/sar_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "系统资源监控&历史信息分析工具",
+ "overview": "系统资源监控&历史信息分析工具",
+ "description": "系统资源监控&历史信息分析工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13102/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/sed_mcp/config.json b/mcp_center/mcp_config/sed_mcp/config.json
new file mode 100644
index 000000000..eb6c61e53
--- /dev/null
+++ b/mcp_center/mcp_config/sed_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文本处理工具",
+ "overview": "文本处理工具",
+ "description": "文本处理工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13121/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/shell_generator_mcp/config.json b/mcp_center/mcp_config/shell_generator_mcp/config.json
new file mode 100644
index 000000000..4dc6f2f62
--- /dev/null
+++ b/mcp_center/mcp_config/shell_generator_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "端测命令生成&执行mcp",
+ "overview": "端测命令生成&执行mcp",
+ "description": "端测命令生成&执行mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12101/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/strace_mcp/config.json b/mcp_center/mcp_config/strace_mcp/config.json
new file mode 100644
index 000000000..158bf6495
--- /dev/null
+++ b/mcp_center/mcp_config/strace_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "strace命令跟踪进程",
+ "overview": "strace命令跟踪进程",
+ "description": "strace命令跟踪进程",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12113/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/strace_syscall_mcp/config.json b/mcp_center/mcp_config/strace_syscall_mcp/config.json
new file mode 100644
index 000000000..a88c2c50e
--- /dev/null
+++ b/mcp_center/mcp_config/strace_syscall_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "排查不合理的系统调用(高频 / 耗时)mcp",
+ "overview": "排查不合理的系统调用(高频 / 耗时)mcp",
+ "description": "排查不合理的系统调用(高频 / 耗时)mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12219/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/swapoff_mcp/config.json b/mcp_center/mcp_config/swapoff_mcp/config.json
new file mode 100644
index 000000000..9e31b4001
--- /dev/null
+++ b/mcp_center/mcp_config/swapoff_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "停用swap空间工具",
+ "overview": "停用swap空间工具",
+ "description": "停用swap空间工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13105/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/swapon_mcp/config.json b/mcp_center/mcp_config/swapon_mcp/config.json
new file mode 100644
index 000000000..737085b8b
--- /dev/null
+++ b/mcp_center/mcp_config/swapon_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "swap设备查看工具",
+ "overview": "swap设备查看工具",
+ "description": "swap设备查看工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13104/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/sync_mcp/config.json b/mcp_center/mcp_config/sync_mcp/config.json
new file mode 100644
index 000000000..fcb433c61
--- /dev/null
+++ b/mcp_center/mcp_config/sync_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "内存缓冲刷新工具",
+ "overview": "内存缓冲刷新工具",
+ "description": "内存缓冲刷新工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13103/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/systrace_mcp/config.json b/mcp_center/mcp_config/systrace_mcp/config.json
new file mode 100644
index 000000000..7f19a49a6
--- /dev/null
+++ b/mcp_center/mcp_config/systrace_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "systracemcp",
+ "overview": "systracemcp",
+ "description": "systracemcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12145/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tail_mcp/config.json b/mcp_center/mcp_config/tail_mcp/config.json
new file mode 100644
index 000000000..c39582009
--- /dev/null
+++ b/mcp_center/mcp_config/tail_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件末尾内容查看工具",
+ "overview": "文件末尾内容查看工具",
+ "description": "文件末尾内容查看工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13114/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tar_mcp/config.json b/mcp_center/mcp_config/tar_mcp/config.json
new file mode 100644
index 000000000..484fa4efc
--- /dev/null
+++ b/mcp_center/mcp_config/tar_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件压缩解压工具",
+ "overview": "文件压缩解压工具",
+ "description": "文件压缩解压工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13118/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/top_mcp/config.json b/mcp_center/mcp_config/top_mcp/config.json
new file mode 100644
index 000000000..8605736a6
--- /dev/null
+++ b/mcp_center/mcp_config/top_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "top命令获取系统负载信息",
+ "overview": "top命令获取系统负载信息",
+ "description": "top命令获取系统负载信息",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12110/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/touch_mcp/config.json b/mcp_center/mcp_config/touch_mcp/config.json
new file mode 100644
index 000000000..99786c85c
--- /dev/null
+++ b/mcp_center/mcp_config/touch_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "系统整体内存资源信息收集工具",
+ "overview": "系统整体内存资源信息收集工具",
+ "description": "系统整体内存资源信息收集工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13108/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tshark_mcp/config.json b/mcp_center/mcp_config/tshark_mcp/config.json
new file mode 100644
index 000000000..ce7e55bab
--- /dev/null
+++ b/mcp_center/mcp_config/tshark_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "捕获、显示和分析网络流量",
+ "overview": "捕获、显示和分析网络流量",
+ "description": "捕获、显示和分析网络流量",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12122/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tune_mcp/config.json b/mcp_center/mcp_config/tune_mcp/config.json
new file mode 100644
index 000000000..1ce62b09b
--- /dev/null
+++ b/mcp_center/mcp_config/tune_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "调优mcp",
+ "overview": "调优mcp",
+ "description": "调优mcp",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:12147/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/vmstat_mcp/config.json b/mcp_center/mcp_config/vmstat_mcp/config.json
new file mode 100644
index 000000000..cbff7a7bb
--- /dev/null
+++ b/mcp_center/mcp_config/vmstat_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "系统资源交互瓶颈信息收集工具",
+ "overview": "系统资源交互瓶颈信息收集工具",
+ "description": "系统资源交互瓶颈信息收集工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13101/sse"
+ }
+}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/zip_mcp/config.json b/mcp_center/mcp_config/zip_mcp/config.json
new file mode 100644
index 000000000..3c53bd4e9
--- /dev/null
+++ b/mcp_center/mcp_config/zip_mcp/config.json
@@ -0,0 +1,9 @@
+{
+ "name": "文件压缩解压工具",
+ "overview": "文件压缩解压工具",
+ "description": "文件压缩解压工具",
+ "mcpType": "sse",
+ "config": {
+ "url": "http://127.0.0.1:13119/sse"
+ }
+}
\ No newline at end of file
--
Gitee
From 7eded1c92bbcf45784287d9e2d5601e4d59a580c Mon Sep 17 00:00:00 2001
From: cui-gaoleng <562344211@qq.com>
Date: Fri, 14 Nov 2025 11:45:23 +0800
Subject: [PATCH 3/7] =?UTF-8?q?mcp=5Fserver=E7=9A=84service=E6=96=87?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 2 +-
.../service/cache-miss-audit-server.service | 21 +++++++++++++++++++
mcp_center/service/cat-server.service | 20 ++++++++++++++++++
mcp_center/service/chmod-server.service | 20 ++++++++++++++++++
mcp_center/service/chown-server.service | 20 ++++++++++++++++++
mcp_center/service/docker-server.service | 20 ++++++++++++++++++
mcp_center/service/echo-server.service | 20 ++++++++++++++++++
mcp_center/service/ethtool-server.service | 20 ++++++++++++++++++
mcp_center/service/fallocate-server.service | 20 ++++++++++++++++++
.../service/file-content-tool-server.service | 21 +++++++++++++++++++
.../service/file-transfer-server.service | 21 +++++++++++++++++++
mcp_center/service/find-server.service | 20 ++++++++++++++++++
mcp_center/service/firewalld-server.service | 20 ++++++++++++++++++
mcp_center/service/flame-graph-server.service | 21 +++++++++++++++++++
mcp_center/service/free-server.service | 20 ++++++++++++++++++
.../service/func-timing-trace-server.service | 21 +++++++++++++++++++
mcp_center/service/grep-server.service | 20 ++++++++++++++++++
mcp_center/service/head-server.service | 20 ++++++++++++++++++
.../service/hotspot-trace-server.service | 21 +++++++++++++++++++
mcp_center/service/ifconfig-server.service | 20 ++++++++++++++++++
mcp_center/service/iftop-server.service | 20 ++++++++++++++++++
mcp_center/service/iptable-server.service | 20 ++++++++++++++++++
.../service/kill-command-server.service | 20 ++++++++++++++++++
mcp_center/service/ls-server.service | 20 ++++++++++++++++++
mcp_center/service/lscpu-server.service | 21 +++++++++++++++++++
mcp_center/service/lsof-server.service | 20 ++++++++++++++++++
mcp_center/service/mkdir-server.service | 20 ++++++++++++++++++
mcp_center/service/mv-server.service | 20 ++++++++++++++++++
mcp_center/service/netstat-server.service | 20 ++++++++++++++++++
mcp_center/service/nload-server.service | 20 ++++++++++++++++++
mcp_center/service/nmap-server.service | 20 ++++++++++++++++++
.../service/nohup-command-server.service | 20 ++++++++++++++++++
mcp_center/service/npu-smi-server.service | 20 ++++++++++++++++++
.../service/numa-bind-docker-server.service | 21 +++++++++++++++++++
.../service/numa-bind-proc-servcer.service | 21 +++++++++++++++++++
.../service/numa-container-server.service | 21 +++++++++++++++++++
.../service/numa-cross-node-server.service | 21 +++++++++++++++++++
.../service/numa-diagnose-server.service | 21 +++++++++++++++++++
.../service/numa-perf-compare-server.service | 21 +++++++++++++++++++
.../service/numa-rebind-proc-server.service | 21 +++++++++++++++++++
mcp_center/service/numa-topo-server.service | 21 +++++++++++++++++++
mcp_center/service/numastat-server.service | 21 +++++++++++++++++++
mcp_center/service/nvidia-smi-server.service | 20 ++++++++++++++++++
.../service/perf-interrupt-server.service | 21 +++++++++++++++++++
mcp_center/service/qemu-server.service | 20 ++++++++++++++++++
mcp_center/service/remote-info-server.service | 20 ++++++++++++++++++
mcp_center/service/rm-server.service | 20 ++++++++++++++++++
mcp_center/service/sar-server.service | 20 ++++++++++++++++++
mcp_center/service/sed-server.service | 20 ++++++++++++++++++
.../service/shell-generator-server.service | 21 +++++++++++++++++++
.../service/strace-command-server.service | 20 ++++++++++++++++++
.../service/strace-syscall-server.service | 21 +++++++++++++++++++
mcp_center/service/swapoff-server.service | 20 ++++++++++++++++++
mcp_center/service/swapon-server.service | 20 ++++++++++++++++++
mcp_center/service/sync-server.service | 20 ++++++++++++++++++
mcp_center/service/tail-server.service | 20 ++++++++++++++++++
mcp_center/service/tar-server.service | 20 ++++++++++++++++++
mcp_center/service/top-command-server.service | 20 ++++++++++++++++++
mcp_center/service/touch-server.service | 20 ++++++++++++++++++
mcp_center/service/tshark-server.service | 20 ++++++++++++++++++
mcp_center/service/vmstat-server.service | 20 ++++++++++++++++++
mcp_center/service/zip-server.service | 20 ++++++++++++++++++
62 files changed, 1240 insertions(+), 1 deletion(-)
create mode 100644 mcp_center/service/cache-miss-audit-server.service
create mode 100644 mcp_center/service/cat-server.service
create mode 100644 mcp_center/service/chmod-server.service
create mode 100644 mcp_center/service/chown-server.service
create mode 100644 mcp_center/service/docker-server.service
create mode 100644 mcp_center/service/echo-server.service
create mode 100644 mcp_center/service/ethtool-server.service
create mode 100644 mcp_center/service/fallocate-server.service
create mode 100644 mcp_center/service/file-content-tool-server.service
create mode 100644 mcp_center/service/file-transfer-server.service
create mode 100644 mcp_center/service/find-server.service
create mode 100644 mcp_center/service/firewalld-server.service
create mode 100644 mcp_center/service/flame-graph-server.service
create mode 100644 mcp_center/service/free-server.service
create mode 100644 mcp_center/service/func-timing-trace-server.service
create mode 100644 mcp_center/service/grep-server.service
create mode 100644 mcp_center/service/head-server.service
create mode 100644 mcp_center/service/hotspot-trace-server.service
create mode 100644 mcp_center/service/ifconfig-server.service
create mode 100644 mcp_center/service/iftop-server.service
create mode 100644 mcp_center/service/iptable-server.service
create mode 100644 mcp_center/service/kill-command-server.service
create mode 100644 mcp_center/service/ls-server.service
create mode 100644 mcp_center/service/lscpu-server.service
create mode 100644 mcp_center/service/lsof-server.service
create mode 100644 mcp_center/service/mkdir-server.service
create mode 100644 mcp_center/service/mv-server.service
create mode 100644 mcp_center/service/netstat-server.service
create mode 100644 mcp_center/service/nload-server.service
create mode 100644 mcp_center/service/nmap-server.service
create mode 100644 mcp_center/service/nohup-command-server.service
create mode 100644 mcp_center/service/npu-smi-server.service
create mode 100644 mcp_center/service/numa-bind-docker-server.service
create mode 100644 mcp_center/service/numa-bind-proc-servcer.service
create mode 100644 mcp_center/service/numa-container-server.service
create mode 100644 mcp_center/service/numa-cross-node-server.service
create mode 100644 mcp_center/service/numa-diagnose-server.service
create mode 100644 mcp_center/service/numa-perf-compare-server.service
create mode 100644 mcp_center/service/numa-rebind-proc-server.service
create mode 100644 mcp_center/service/numa-topo-server.service
create mode 100644 mcp_center/service/numastat-server.service
create mode 100644 mcp_center/service/nvidia-smi-server.service
create mode 100644 mcp_center/service/perf-interrupt-server.service
create mode 100644 mcp_center/service/qemu-server.service
create mode 100644 mcp_center/service/remote-info-server.service
create mode 100644 mcp_center/service/rm-server.service
create mode 100644 mcp_center/service/sar-server.service
create mode 100644 mcp_center/service/sed-server.service
create mode 100644 mcp_center/service/shell-generator-server.service
create mode 100644 mcp_center/service/strace-command-server.service
create mode 100644 mcp_center/service/strace-syscall-server.service
create mode 100644 mcp_center/service/swapoff-server.service
create mode 100644 mcp_center/service/swapon-server.service
create mode 100644 mcp_center/service/sync-server.service
create mode 100644 mcp_center/service/tail-server.service
create mode 100644 mcp_center/service/tar-server.service
create mode 100644 mcp_center/service/top-command-server.service
create mode 100644 mcp_center/service/touch-server.service
create mode 100644 mcp_center/service/tshark-server.service
create mode 100644 mcp_center/service/vmstat-server.service
create mode 100644 mcp_center/service/zip-server.service
diff --git a/.gitignore b/.gitignore
index d098d3cbd..d2ba11948 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,4 +17,4 @@ config
uv.lock
!mcp_center/config
-
+!mcp_center/servers/euler-copilot-tune/config
diff --git a/mcp_center/service/cache-miss-audit-server.service b/mcp_center/service/cache-miss-audit-server.service
new file mode 100644
index 000000000..a29c4161e
--- /dev/null
+++ b/mcp_center/service/cache-miss-audit-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Cache Miss Audit Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/cache_miss_audit/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/cat-server.service b/mcp_center/service/cat-server.service
new file mode 100644
index 000000000..27d5d76da
--- /dev/null
+++ b/mcp_center/service/cat-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Cat Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/cat/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/chmod-server.service b/mcp_center/service/chmod-server.service
new file mode 100644
index 000000000..a34e0f3d7
--- /dev/null
+++ b/mcp_center/service/chmod-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Chmod Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/chmod/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/chown-server.service b/mcp_center/service/chown-server.service
new file mode 100644
index 000000000..a4c4dbb8f
--- /dev/null
+++ b/mcp_center/service/chown-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Chown Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/chown/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/docker-server.service b/mcp_center/service/docker-server.service
new file mode 100644
index 000000000..466854bd9
--- /dev/null
+++ b/mcp_center/service/docker-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Docker Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/docker/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/echo-server.service b/mcp_center/service/echo-server.service
new file mode 100644
index 000000000..3a5c01ade
--- /dev/null
+++ b/mcp_center/service/echo-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Echo Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/echo/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/ethtool-server.service b/mcp_center/service/ethtool-server.service
new file mode 100644
index 000000000..80e1b298a
--- /dev/null
+++ b/mcp_center/service/ethtool-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Ethtool Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/ethtool/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/fallocate-server.service b/mcp_center/service/fallocate-server.service
new file mode 100644
index 000000000..ec65e42e0
--- /dev/null
+++ b/mcp_center/service/fallocate-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Fallocate Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/fallocate/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/file-content-tool-server.service b/mcp_center/service/file-content-tool-server.service
new file mode 100644
index 000000000..fdd389562
--- /dev/null
+++ b/mcp_center/service/file-content-tool-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Cache Miss Audit Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/file_content_tool/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/file-transfer-server.service b/mcp_center/service/file-transfer-server.service
new file mode 100644
index 000000000..9fdb16fd5
--- /dev/null
+++ b/mcp_center/service/file-transfer-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Cache Miss Audit Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/file_transfer/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/find-server.service b/mcp_center/service/find-server.service
new file mode 100644
index 000000000..43951370a
--- /dev/null
+++ b/mcp_center/service/find-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Find Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/find/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/firewalld-server.service b/mcp_center/service/firewalld-server.service
new file mode 100644
index 000000000..1aa24b4a6
--- /dev/null
+++ b/mcp_center/service/firewalld-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Firewalld Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/firewalld/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/flame-graph-server.service b/mcp_center/service/flame-graph-server.service
new file mode 100644
index 000000000..f9fa403d9
--- /dev/null
+++ b/mcp_center/service/flame-graph-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Flame Graph Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/flame_graph/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/free-server.service b/mcp_center/service/free-server.service
new file mode 100644
index 000000000..666560406
--- /dev/null
+++ b/mcp_center/service/free-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Free Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/free/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/func-timing-trace-server.service b/mcp_center/service/func-timing-trace-server.service
new file mode 100644
index 000000000..fb6b111ef
--- /dev/null
+++ b/mcp_center/service/func-timing-trace-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Func Timing Trace Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/func_timing_trace/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/grep-server.service b/mcp_center/service/grep-server.service
new file mode 100644
index 000000000..10e2ac105
--- /dev/null
+++ b/mcp_center/service/grep-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Grep Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/grep/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/head-server.service b/mcp_center/service/head-server.service
new file mode 100644
index 000000000..17e8577dc
--- /dev/null
+++ b/mcp_center/service/head-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Head Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/head/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/hotspot-trace-server.service b/mcp_center/service/hotspot-trace-server.service
new file mode 100644
index 000000000..165f65d82
--- /dev/null
+++ b/mcp_center/service/hotspot-trace-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Hotspot Trace Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/hotspot_trace/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/ifconfig-server.service b/mcp_center/service/ifconfig-server.service
new file mode 100644
index 000000000..fbef52c2a
--- /dev/null
+++ b/mcp_center/service/ifconfig-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Ifconfig Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/ifconfig/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/iftop-server.service b/mcp_center/service/iftop-server.service
new file mode 100644
index 000000000..5c87a23a7
--- /dev/null
+++ b/mcp_center/service/iftop-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Iftop Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/iftop/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/iptable-server.service b/mcp_center/service/iptable-server.service
new file mode 100644
index 000000000..b04eb0641
--- /dev/null
+++ b/mcp_center/service/iptable-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Iptables Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/iptables/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/kill-command-server.service b/mcp_center/service/kill-command-server.service
new file mode 100644
index 000000000..1ffd9b693
--- /dev/null
+++ b/mcp_center/service/kill-command-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Kill Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/kill/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/ls-server.service b/mcp_center/service/ls-server.service
new file mode 100644
index 000000000..3978f3fda
--- /dev/null
+++ b/mcp_center/service/ls-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Ls Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/ls/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/lscpu-server.service b/mcp_center/service/lscpu-server.service
new file mode 100644
index 000000000..4fc8593e2
--- /dev/null
+++ b/mcp_center/service/lscpu-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Lscpu Info Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/lscpu/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/lsof-server.service b/mcp_center/service/lsof-server.service
new file mode 100644
index 000000000..0f03a008a
--- /dev/null
+++ b/mcp_center/service/lsof-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Lsof Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/lsof/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/mkdir-server.service b/mcp_center/service/mkdir-server.service
new file mode 100644
index 000000000..81dcc576f
--- /dev/null
+++ b/mcp_center/service/mkdir-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Mkdir Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/mkdir/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/mv-server.service b/mcp_center/service/mv-server.service
new file mode 100644
index 000000000..cb2078c14
--- /dev/null
+++ b/mcp_center/service/mv-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Mv Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/mv/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/netstat-server.service b/mcp_center/service/netstat-server.service
new file mode 100644
index 000000000..488e1a572
--- /dev/null
+++ b/mcp_center/service/netstat-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Netstat Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/netstat/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/nload-server.service b/mcp_center/service/nload-server.service
new file mode 100644
index 000000000..3e8614c4a
--- /dev/null
+++ b/mcp_center/service/nload-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Nload Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/nload/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/nmap-server.service b/mcp_center/service/nmap-server.service
new file mode 100644
index 000000000..83a3d8dba
--- /dev/null
+++ b/mcp_center/service/nmap-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Nmap Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/nmap/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/nohup-command-server.service b/mcp_center/service/nohup-command-server.service
new file mode 100644
index 000000000..455c03620
--- /dev/null
+++ b/mcp_center/service/nohup-command-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Nohup Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/nohup/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/npu-smi-server.service b/mcp_center/service/npu-smi-server.service
new file mode 100644
index 000000000..f7d174a88
--- /dev/null
+++ b/mcp_center/service/npu-smi-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Npu Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/npu/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-bind-docker-server.service b/mcp_center/service/numa-bind-docker-server.service
new file mode 100644
index 000000000..83ba2c01f
--- /dev/null
+++ b/mcp_center/service/numa-bind-docker-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Bind Docker Container Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_bind_docker/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-bind-proc-servcer.service b/mcp_center/service/numa-bind-proc-servcer.service
new file mode 100644
index 000000000..74a06821f
--- /dev/null
+++ b/mcp_center/service/numa-bind-proc-servcer.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Bind Process Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_bind_proc/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-container-server.service b/mcp_center/service/numa-container-server.service
new file mode 100644
index 000000000..3da5c41c1
--- /dev/null
+++ b/mcp_center/service/numa-container-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Container Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_container/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-cross-node-server.service b/mcp_center/service/numa-cross-node-server.service
new file mode 100644
index 000000000..4afdc57ed
--- /dev/null
+++ b/mcp_center/service/numa-cross-node-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Cross Node Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_cross_node/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-diagnose-server.service b/mcp_center/service/numa-diagnose-server.service
new file mode 100644
index 000000000..bdae38626
--- /dev/null
+++ b/mcp_center/service/numa-diagnose-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Diagnose Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_diagnose/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-perf-compare-server.service b/mcp_center/service/numa-perf-compare-server.service
new file mode 100644
index 000000000..ba72eb2bd
--- /dev/null
+++ b/mcp_center/service/numa-perf-compare-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Performance Comapare Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_perf_compare/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-rebind-proc-server.service b/mcp_center/service/numa-rebind-proc-server.service
new file mode 100644
index 000000000..890a9ede6
--- /dev/null
+++ b/mcp_center/service/numa-rebind-proc-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Rebind Process Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_rebind_proc/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-topo-server.service b/mcp_center/service/numa-topo-server.service
new file mode 100644
index 000000000..e2c44b99d
--- /dev/null
+++ b/mcp_center/service/numa-topo-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numa Topo Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numa_topo/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/numastat-server.service b/mcp_center/service/numastat-server.service
new file mode 100644
index 000000000..0f071605d
--- /dev/null
+++ b/mcp_center/service/numastat-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Numastat Info Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/numastat/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/nvidia-smi-server.service b/mcp_center/service/nvidia-smi-server.service
new file mode 100644
index 000000000..3ee863a01
--- /dev/null
+++ b/mcp_center/service/nvidia-smi-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Nvidia-smi Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/nvidia/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/perf-interrupt-server.service b/mcp_center/service/perf-interrupt-server.service
new file mode 100644
index 000000000..c80f8c9cf
--- /dev/null
+++ b/mcp_center/service/perf-interrupt-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Irq Latency Trace Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/perf_interrupt/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/qemu-server.service b/mcp_center/service/qemu-server.service
new file mode 100644
index 000000000..f26114cb0
--- /dev/null
+++ b/mcp_center/service/qemu-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Qemu Info Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/qemu/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/remote-info-server.service b/mcp_center/service/remote-info-server.service
new file mode 100644
index 000000000..6dfaad8cb
--- /dev/null
+++ b/mcp_center/service/remote-info-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Remote Info Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/remote_info/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/rm-server.service b/mcp_center/service/rm-server.service
new file mode 100644
index 000000000..3c98f3e8b
--- /dev/null
+++ b/mcp_center/service/rm-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Rm Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/rm/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/sar-server.service b/mcp_center/service/sar-server.service
new file mode 100644
index 000000000..51bcc2c14
--- /dev/null
+++ b/mcp_center/service/sar-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Sar Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/sar/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/sed-server.service b/mcp_center/service/sed-server.service
new file mode 100644
index 000000000..ffbfe51cf
--- /dev/null
+++ b/mcp_center/service/sed-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Sed Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/sed/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/shell-generator-server.service b/mcp_center/service/shell-generator-server.service
new file mode 100644
index 000000000..44df19365
--- /dev/null
+++ b/mcp_center/service/shell-generator-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Shell generator Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/shell_generator/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/strace-command-server.service b/mcp_center/service/strace-command-server.service
new file mode 100644
index 000000000..3befbda27
--- /dev/null
+++ b/mcp_center/service/strace-command-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Strace Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/strace/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/strace-syscall-server.service b/mcp_center/service/strace-syscall-server.service
new file mode 100644
index 000000000..7cb591cef
--- /dev/null
+++ b/mcp_center/service/strace-syscall-server.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Strace Syscall Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+Environment=CONFIG=/etc/euler-copilot-framework/config.toml
+ExecStart=/usr/bin/python3 servers/strace_syscall/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/swapoff-server.service b/mcp_center/service/swapoff-server.service
new file mode 100644
index 000000000..f3cf75b53
--- /dev/null
+++ b/mcp_center/service/swapoff-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Swapoff Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/swapoff/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/swapon-server.service b/mcp_center/service/swapon-server.service
new file mode 100644
index 000000000..a00e9b238
--- /dev/null
+++ b/mcp_center/service/swapon-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Swapon Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/swapon/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/sync-server.service b/mcp_center/service/sync-server.service
new file mode 100644
index 000000000..7933da69e
--- /dev/null
+++ b/mcp_center/service/sync-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Sync Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/sync/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/tail-server.service b/mcp_center/service/tail-server.service
new file mode 100644
index 000000000..b47a6be08
--- /dev/null
+++ b/mcp_center/service/tail-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Tail Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/tail/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/tar-server.service b/mcp_center/service/tar-server.service
new file mode 100644
index 000000000..0a4714740
--- /dev/null
+++ b/mcp_center/service/tar-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Tar Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/tar/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/top-command-server.service b/mcp_center/service/top-command-server.service
new file mode 100644
index 000000000..b591f1ebd
--- /dev/null
+++ b/mcp_center/service/top-command-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Top Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/top/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/touch-server.service b/mcp_center/service/touch-server.service
new file mode 100644
index 000000000..4bca5bfb0
--- /dev/null
+++ b/mcp_center/service/touch-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Touch Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/touch/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/tshark-server.service b/mcp_center/service/tshark-server.service
new file mode 100644
index 000000000..d029d95b6
--- /dev/null
+++ b/mcp_center/service/tshark-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Tshark Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/tshark/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/vmstat-server.service b/mcp_center/service/vmstat-server.service
new file mode 100644
index 000000000..ad5b553cf
--- /dev/null
+++ b/mcp_center/service/vmstat-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Vmstat Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/vmstat/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mcp_center/service/zip-server.service b/mcp_center/service/zip-server.service
new file mode 100644
index 000000000..1c65f8b22
--- /dev/null
+++ b/mcp_center/service/zip-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Zip Command Server for MCP Center
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
+# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
+Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
+ExecStart=/usr/bin/python3 servers/zip/src/server.py
+Restart=always
+RestartSec=5
+KillMode=control-group
+KillSignal=SIGTERM
+TimeoutStopSec=30
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
--
Gitee
From a59f87c0882219a519c307875a4d3ffeed4eb394 Mon Sep 17 00:00:00 2001
From: cui-gaoleng <562344211@qq.com>
Date: Fri, 14 Nov 2025 11:46:59 +0800
Subject: [PATCH 4/7] =?UTF-8?q?mcp=5Fserver=E7=9A=84=E7=A7=81=E6=9C=89?=
=?UTF-8?q?=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mcp_center/config/private/free/config.toml | 0
.../config/private/free/config_loader.py | 26 +++++++++++++++++++
.../private/func_timing_trace/config.toml | 0
.../func_timing_trace/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/grep/config.toml | 0
.../config/private/grep/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/head/config.toml | 0
.../config/private/head/config_loader.py | 26 +++++++++++++++++++
.../config/private/hotspot_trace/config.toml | 0
.../private/hotspot_trace/config_loader.py | 26 +++++++++++++++++++
.../config/private/ifconfig/config.toml | 0
.../config/private/ifconfig/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/iftop/config.toml | 0
.../config/private/iftop/config_loader.py | 26 +++++++++++++++++++
.../config/private/iptables/config.toml | 0
.../config/private/iptables/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/kill/config.toml | 0
.../config/private/kill/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/ls/config.toml | 0
mcp_center/config/private/ls/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/lscpu/config.toml | 0
.../config/private/lscpu/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/lsof/config.toml | 0
.../config/private/lsof/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/mkdir/config.toml | 0
.../config/private/mkdir/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/mv/config.toml | 0
mcp_center/config/private/mv/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/netstat/config.toml | 0
.../config/private/netstat/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/nload/config.toml | 0
.../config/private/nload/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/nmap/config.toml | 0
.../config/private/nmap/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/nohup/config.toml | 0
.../config/private/nohup/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/npu/config.toml | 0
.../config/private/npu/config_loader.py | 26 +++++++++++++++++++
.../private/numa_bind_docker/config.toml | 0
.../private/numa_bind_docker/config_loader.py | 25 ++++++++++++++++++
.../config/private/numa_bind_proc/config.toml | 0
.../private/numa_bind_proc/config_loader.py | 25 ++++++++++++++++++
.../config/private/numa_container/config.toml | 0
.../private/numa_container/config_loader.py | 25 ++++++++++++++++++
.../private/numa_cross_node/config.toml | 0
.../private/numa_cross_node/config_loader.py | 26 +++++++++++++++++++
.../config/private/numa_diagnose/config.toml | 0
.../private/numa_diagnose/config_loader.py | 26 +++++++++++++++++++
.../private/numa_perf_compare/config.toml | 0
.../numa_perf_compare/config_loader.py | 25 ++++++++++++++++++
.../private/numa_rebind_proc/config.toml | 0
.../private/numa_rebind_proc/config_loader.py | 25 ++++++++++++++++++
.../config/private/numa_topo/config.toml | 0
.../config/private/numa_topo/config_loader.py | 26 +++++++++++++++++++
.../config/private/numastat/config.toml | 0
.../config/private/numastat/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/nvidia/config.toml | 0
.../config/private/nvidia/config_loader.py | 26 +++++++++++++++++++
.../config/private/perf_interrupt/config.toml | 0
.../private/perf_interrupt/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/qemu/config.toml | 0
.../config/private/qemu/config_loader.py | 26 +++++++++++++++++++
.../config/private/remote_info/config.toml | 0
.../private/remote_info/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/rm/config.toml | 0
mcp_center/config/private/rm/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/sar/config.toml | 0
.../config/private/sar/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/sed/config.toml | 0
.../config/private/sed/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/strace/config.toml | 0
.../config/private/strace/config_loader.py | 26 +++++++++++++++++++
.../config/private/strace_syscall/config.toml | 0
.../private/strace_syscall/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/swapoff/config.toml | 0
.../config/private/swapoff/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/swapon/config.toml | 0
.../config/private/swapon/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/sync/config.toml | 0
.../config/private/sync/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/tail/config.toml | 0
.../config/private/tail/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/tar/config.toml | 0
.../config/private/tar/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/top/config.toml | 0
.../config/private/top/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/touch/config.toml | 0
.../config/private/touch/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/tshark/config.toml | 0
.../config/private/tshark/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/vmstat/config.toml | 0
.../config/private/vmstat/config_loader.py | 26 +++++++++++++++++++
mcp_center/config/private/zip/config.toml | 0
.../config/private/zip/config_loader.py | 26 +++++++++++++++++++
94 files changed, 1217 insertions(+)
create mode 100644 mcp_center/config/private/free/config.toml
create mode 100644 mcp_center/config/private/free/config_loader.py
create mode 100644 mcp_center/config/private/func_timing_trace/config.toml
create mode 100644 mcp_center/config/private/func_timing_trace/config_loader.py
create mode 100644 mcp_center/config/private/grep/config.toml
create mode 100644 mcp_center/config/private/grep/config_loader.py
create mode 100644 mcp_center/config/private/head/config.toml
create mode 100644 mcp_center/config/private/head/config_loader.py
create mode 100644 mcp_center/config/private/hotspot_trace/config.toml
create mode 100644 mcp_center/config/private/hotspot_trace/config_loader.py
create mode 100644 mcp_center/config/private/ifconfig/config.toml
create mode 100644 mcp_center/config/private/ifconfig/config_loader.py
create mode 100644 mcp_center/config/private/iftop/config.toml
create mode 100644 mcp_center/config/private/iftop/config_loader.py
create mode 100644 mcp_center/config/private/iptables/config.toml
create mode 100644 mcp_center/config/private/iptables/config_loader.py
create mode 100644 mcp_center/config/private/kill/config.toml
create mode 100644 mcp_center/config/private/kill/config_loader.py
create mode 100644 mcp_center/config/private/ls/config.toml
create mode 100644 mcp_center/config/private/ls/config_loader.py
create mode 100644 mcp_center/config/private/lscpu/config.toml
create mode 100644 mcp_center/config/private/lscpu/config_loader.py
create mode 100644 mcp_center/config/private/lsof/config.toml
create mode 100644 mcp_center/config/private/lsof/config_loader.py
create mode 100644 mcp_center/config/private/mkdir/config.toml
create mode 100644 mcp_center/config/private/mkdir/config_loader.py
create mode 100644 mcp_center/config/private/mv/config.toml
create mode 100644 mcp_center/config/private/mv/config_loader.py
create mode 100644 mcp_center/config/private/netstat/config.toml
create mode 100644 mcp_center/config/private/netstat/config_loader.py
create mode 100644 mcp_center/config/private/nload/config.toml
create mode 100644 mcp_center/config/private/nload/config_loader.py
create mode 100644 mcp_center/config/private/nmap/config.toml
create mode 100644 mcp_center/config/private/nmap/config_loader.py
create mode 100644 mcp_center/config/private/nohup/config.toml
create mode 100644 mcp_center/config/private/nohup/config_loader.py
create mode 100644 mcp_center/config/private/npu/config.toml
create mode 100644 mcp_center/config/private/npu/config_loader.py
create mode 100644 mcp_center/config/private/numa_bind_docker/config.toml
create mode 100644 mcp_center/config/private/numa_bind_docker/config_loader.py
create mode 100644 mcp_center/config/private/numa_bind_proc/config.toml
create mode 100644 mcp_center/config/private/numa_bind_proc/config_loader.py
create mode 100644 mcp_center/config/private/numa_container/config.toml
create mode 100644 mcp_center/config/private/numa_container/config_loader.py
create mode 100644 mcp_center/config/private/numa_cross_node/config.toml
create mode 100644 mcp_center/config/private/numa_cross_node/config_loader.py
create mode 100644 mcp_center/config/private/numa_diagnose/config.toml
create mode 100644 mcp_center/config/private/numa_diagnose/config_loader.py
create mode 100644 mcp_center/config/private/numa_perf_compare/config.toml
create mode 100644 mcp_center/config/private/numa_perf_compare/config_loader.py
create mode 100644 mcp_center/config/private/numa_rebind_proc/config.toml
create mode 100644 mcp_center/config/private/numa_rebind_proc/config_loader.py
create mode 100644 mcp_center/config/private/numa_topo/config.toml
create mode 100644 mcp_center/config/private/numa_topo/config_loader.py
create mode 100644 mcp_center/config/private/numastat/config.toml
create mode 100644 mcp_center/config/private/numastat/config_loader.py
create mode 100644 mcp_center/config/private/nvidia/config.toml
create mode 100644 mcp_center/config/private/nvidia/config_loader.py
create mode 100644 mcp_center/config/private/perf_interrupt/config.toml
create mode 100644 mcp_center/config/private/perf_interrupt/config_loader.py
create mode 100644 mcp_center/config/private/qemu/config.toml
create mode 100644 mcp_center/config/private/qemu/config_loader.py
create mode 100644 mcp_center/config/private/remote_info/config.toml
create mode 100644 mcp_center/config/private/remote_info/config_loader.py
create mode 100644 mcp_center/config/private/rm/config.toml
create mode 100644 mcp_center/config/private/rm/config_loader.py
create mode 100644 mcp_center/config/private/sar/config.toml
create mode 100644 mcp_center/config/private/sar/config_loader.py
create mode 100644 mcp_center/config/private/sed/config.toml
create mode 100644 mcp_center/config/private/sed/config_loader.py
create mode 100644 mcp_center/config/private/strace/config.toml
create mode 100644 mcp_center/config/private/strace/config_loader.py
create mode 100644 mcp_center/config/private/strace_syscall/config.toml
create mode 100644 mcp_center/config/private/strace_syscall/config_loader.py
create mode 100644 mcp_center/config/private/swapoff/config.toml
create mode 100644 mcp_center/config/private/swapoff/config_loader.py
create mode 100644 mcp_center/config/private/swapon/config.toml
create mode 100644 mcp_center/config/private/swapon/config_loader.py
create mode 100644 mcp_center/config/private/sync/config.toml
create mode 100644 mcp_center/config/private/sync/config_loader.py
create mode 100644 mcp_center/config/private/tail/config.toml
create mode 100644 mcp_center/config/private/tail/config_loader.py
create mode 100644 mcp_center/config/private/tar/config.toml
create mode 100644 mcp_center/config/private/tar/config_loader.py
create mode 100644 mcp_center/config/private/top/config.toml
create mode 100644 mcp_center/config/private/top/config_loader.py
create mode 100644 mcp_center/config/private/touch/config.toml
create mode 100644 mcp_center/config/private/touch/config_loader.py
create mode 100644 mcp_center/config/private/tshark/config.toml
create mode 100644 mcp_center/config/private/tshark/config_loader.py
create mode 100644 mcp_center/config/private/vmstat/config.toml
create mode 100644 mcp_center/config/private/vmstat/config_loader.py
create mode 100644 mcp_center/config/private/zip/config.toml
create mode 100644 mcp_center/config/private/zip/config_loader.py
diff --git a/mcp_center/config/private/free/config.toml b/mcp_center/config/private/free/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/free/config_loader.py b/mcp_center/config/private/free/config_loader.py
new file mode 100644
index 000000000..097fe0480
--- /dev/null
+++ b/mcp_center/config/private/free/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FreeConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13100, description="MCP服务端口")
+
+
+class FreeConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "free", "config.toml")
+ self._config.private_config = FreeConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/func_timing_trace/config.toml b/mcp_center/config/private/func_timing_trace/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/func_timing_trace/config_loader.py b/mcp_center/config/private/func_timing_trace/config_loader.py
new file mode 100644
index 000000000..ec7e6c850
--- /dev/null
+++ b/mcp_center/config/private/func_timing_trace/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class FuncTimingTraceConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12218, description="MCP服务端口")
+
+
+class FuncTimingTraceConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "func_timing_trace", "config.toml")
+ self._config.private_config = FuncTimingTraceConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/grep/config.toml b/mcp_center/config/private/grep/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/grep/config_loader.py b/mcp_center/config/private/grep/config_loader.py
new file mode 100644
index 000000000..45739079f
--- /dev/null
+++ b/mcp_center/config/private/grep/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class GrepConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13120, description="MCP服务端口")
+
+
+class GrepConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "grep", "config.toml")
+ self._config.private_config = GrepConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/head/config.toml b/mcp_center/config/private/head/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/head/config_loader.py b/mcp_center/config/private/head/config_loader.py
new file mode 100644
index 000000000..bfca9fc29
--- /dev/null
+++ b/mcp_center/config/private/head/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class HeadConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13113, description="MCP服务端口")
+
+
+class HeadConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "head", "config.toml")
+ self._config.private_config = HeadConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/hotspot_trace/config.toml b/mcp_center/config/private/hotspot_trace/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/hotspot_trace/config_loader.py b/mcp_center/config/private/hotspot_trace/config_loader.py
new file mode 100644
index 000000000..073e4057c
--- /dev/null
+++ b/mcp_center/config/private/hotspot_trace/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class HotspotTraceConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12216, description="MCP服务端口")
+
+
+class HotspotTraceConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "hotspot_trace", "config.toml")
+ self._config.private_config = HotspotTraceConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/ifconfig/config.toml b/mcp_center/config/private/ifconfig/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/ifconfig/config_loader.py b/mcp_center/config/private/ifconfig/config_loader.py
new file mode 100644
index 000000000..57aa75a73
--- /dev/null
+++ b/mcp_center/config/private/ifconfig/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class IfconfigConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12120, description="MCP服务端口")
+
+
+class IfconfigConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("IFCONFIG_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "ifconfig", "config.toml")
+ self._config.private_config = IfconfigConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/iftop/config.toml b/mcp_center/config/private/iftop/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/iftop/config_loader.py b/mcp_center/config/private/iftop/config_loader.py
new file mode 100644
index 000000000..93e5bc5e9
--- /dev/null
+++ b/mcp_center/config/private/iftop/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class IftopConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12116, description="MCP服务端口")
+
+
+class IftopConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("IFTOP_COMMAND_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "iftop", "config.toml")
+ self._config.private_config = IftopConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/iptables/config.toml b/mcp_center/config/private/iptables/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/iptables/config_loader.py b/mcp_center/config/private/iptables/config_loader.py
new file mode 100644
index 000000000..8aaa1d8d5
--- /dev/null
+++ b/mcp_center/config/private/iptables/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class IptablesConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12131, description="MCP服务端口")
+
+
+class IptablesConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("IPTABLES_COMMAND_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "iptables", "config.toml")
+ self._config.private_config = IptablesConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/kill/config.toml b/mcp_center/config/private/kill/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/kill/config_loader.py b/mcp_center/config/private/kill/config_loader.py
new file mode 100644
index 000000000..9f633fc14
--- /dev/null
+++ b/mcp_center/config/private/kill/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class KillCommandConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12111, description="MCP服务端口")
+
+
+class KillCommandConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("KILL_COMMAND_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "kill", "config.toml")
+ self._config.private_config = KillCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/ls/config.toml b/mcp_center/config/private/ls/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/ls/config_loader.py b/mcp_center/config/private/ls/config_loader.py
new file mode 100644
index 000000000..36b6416e4
--- /dev/null
+++ b/mcp_center/config/private/ls/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class LsConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13112, description="MCP服务端口")
+
+
+class LsConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "ls", "config.toml")
+ self._config.private_config = LsConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/lscpu/config.toml b/mcp_center/config/private/lscpu/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/lscpu/config_loader.py b/mcp_center/config/private/lscpu/config_loader.py
new file mode 100644
index 000000000..caa57fe78
--- /dev/null
+++ b/mcp_center/config/private/lscpu/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class LscpuConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12202, description="MCP服务端口")
+
+
+class LscpuConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "lscpu", "config.toml")
+ self._config.private_config = LscpuConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/lsof/config.toml b/mcp_center/config/private/lsof/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/lsof/config_loader.py b/mcp_center/config/private/lsof/config_loader.py
new file mode 100644
index 000000000..59b8ae1db
--- /dev/null
+++ b/mcp_center/config/private/lsof/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class LsofConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12119, description="MCP服务端口")
+
+
+class LsofConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("LSOF_COMMAND_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "lsof", "config.toml")
+ self._config.private_config = LsofConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/mkdir/config.toml b/mcp_center/config/private/mkdir/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/mkdir/config_loader.py b/mcp_center/config/private/mkdir/config_loader.py
new file mode 100644
index 000000000..446789781
--- /dev/null
+++ b/mcp_center/config/private/mkdir/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class MkdirConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13109, description="MCP服务端口")
+
+
+class MkdirConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "mkdir", "config.toml")
+ self._config.private_config = MkdirConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/mv/config.toml b/mcp_center/config/private/mv/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/mv/config_loader.py b/mcp_center/config/private/mv/config_loader.py
new file mode 100644
index 000000000..383641f4f
--- /dev/null
+++ b/mcp_center/config/private/mv/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class MvConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13111, description="MCP服务端口")
+
+
+class MvConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "mv", "config.toml")
+ self._config.private_config = MvConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/netstat/config.toml b/mcp_center/config/private/netstat/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/netstat/config_loader.py b/mcp_center/config/private/netstat/config_loader.py
new file mode 100644
index 000000000..d6d314aa9
--- /dev/null
+++ b/mcp_center/config/private/netstat/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NetstatConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12118, description="MCP服务端口")
+
+
+class NetstatConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("NETSTAT_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "netstat", "config.toml")
+ self._config.private_config = NetstatConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/nload/config.toml b/mcp_center/config/private/nload/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/nload/config_loader.py b/mcp_center/config/private/nload/config_loader.py
new file mode 100644
index 000000000..7d6068b18
--- /dev/null
+++ b/mcp_center/config/private/nload/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NloadConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12117, description="MCP服务端口")
+
+
+class NloadConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("NLOAD_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "nload", "config.toml")
+ self._config.private_config = NloadConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/nmap/config.toml b/mcp_center/config/private/nmap/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/nmap/config_loader.py b/mcp_center/config/private/nmap/config_loader.py
new file mode 100644
index 000000000..803012d49
--- /dev/null
+++ b/mcp_center/config/private/nmap/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NmapConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12135, description="MCP服务端口")
+
+
+class NmapConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("NMAP_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "nmap", "config.toml")
+ self._config.private_config = NmapConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/nohup/config.toml b/mcp_center/config/private/nohup/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/nohup/config_loader.py b/mcp_center/config/private/nohup/config_loader.py
new file mode 100644
index 000000000..2fe5162dc
--- /dev/null
+++ b/mcp_center/config/private/nohup/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NohupCommandConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12112, description="MCP服务端口")
+
+
+class NohupCommandConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("NOHUP_COMMAND_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "nohup", "config.toml")
+ self._config.private_config = NohupCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/npu/config.toml b/mcp_center/config/private/npu/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/npu/config_loader.py b/mcp_center/config/private/npu/config_loader.py
new file mode 100644
index 000000000..61f268459
--- /dev/null
+++ b/mcp_center/config/private/npu/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NpuSmiConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12115, description="MCP服务端口")
+
+
+class NpuSmiConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("NPU_SMI_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "npu", "config.toml")
+ self._config.private_config = NpuSmiConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/numa_bind_docker/config.toml b/mcp_center/config/private/numa_bind_docker/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_bind_docker/config_loader.py b/mcp_center/config/private/numa_bind_docker/config_loader.py
new file mode 100644
index 000000000..dd8ec870c
--- /dev/null
+++ b/mcp_center/config/private/numa_bind_docker/config_loader.py
@@ -0,0 +1,25 @@
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaBindDockerConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12206, description="MCP服务端口")
+
+
+class NumaBindDockerConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_bind_docker", "config.toml")
+ self._config.private_config = NumaBindDockerConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_bind_proc/config.toml b/mcp_center/config/private/numa_bind_proc/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_bind_proc/config_loader.py b/mcp_center/config/private/numa_bind_proc/config_loader.py
new file mode 100644
index 000000000..c5d92f967
--- /dev/null
+++ b/mcp_center/config/private/numa_bind_proc/config_loader.py
@@ -0,0 +1,25 @@
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaBindProcConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12204, description="MCP服务端口")
+
+
+class NumaBindProcConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_bind_proc", "config.toml")
+ self._config.private_config = NumaBindProcConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_container/config.toml b/mcp_center/config/private/numa_container/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_container/config_loader.py b/mcp_center/config/private/numa_container/config_loader.py
new file mode 100644
index 000000000..38fe318f6
--- /dev/null
+++ b/mcp_center/config/private/numa_container/config_loader.py
@@ -0,0 +1,25 @@
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaContainerConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12214, description="MCP服务端口")
+
+
+class NumaContainerConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_container", "config.toml")
+ self._config.private_config = NumaContainerConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_cross_node/config.toml b/mcp_center/config/private/numa_cross_node/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_cross_node/config_loader.py b/mcp_center/config/private/numa_cross_node/config_loader.py
new file mode 100644
index 000000000..528e3a0ba
--- /dev/null
+++ b/mcp_center/config/private/numa_cross_node/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaCrossNodeConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12211, description="MCP服务端口")
+
+
+class NumaCrossNodeConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_cross_node", "config.toml")
+ self._config.private_config = NumaCrossNodeConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_diagnose/config.toml b/mcp_center/config/private/numa_diagnose/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_diagnose/config_loader.py b/mcp_center/config/private/numa_diagnose/config_loader.py
new file mode 100644
index 000000000..f12299e4d
--- /dev/null
+++ b/mcp_center/config/private/numa_diagnose/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaDiagnoseConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12209, description="MCP服务端口")
+
+
+class NumaDiagnoseConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_diagnose", "config.toml")
+ self._config.private_config = NumaDiagnoseConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_perf_compare/config.toml b/mcp_center/config/private/numa_perf_compare/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_perf_compare/config_loader.py b/mcp_center/config/private/numa_perf_compare/config_loader.py
new file mode 100644
index 000000000..cea3afffb
--- /dev/null
+++ b/mcp_center/config/private/numa_perf_compare/config_loader.py
@@ -0,0 +1,25 @@
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaPerfCompareConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12208, description="MCP服务端口")
+
+
+class NumaPerfCompareConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_perf_compare", "config.toml")
+ self._config.private_config = NumaPerfCompareConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_rebind_proc/config.toml b/mcp_center/config/private/numa_rebind_proc/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_rebind_proc/config_loader.py b/mcp_center/config/private/numa_rebind_proc/config_loader.py
new file mode 100644
index 000000000..e1d2f347d
--- /dev/null
+++ b/mcp_center/config/private/numa_rebind_proc/config_loader.py
@@ -0,0 +1,25 @@
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaRebindProcConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12205, description="MCP服务端口")
+
+
+class NumaRebindProcConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_rebind_proc", "config.toml")
+ self._config.private_config = NumaRebindProcConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_topo/config.toml b/mcp_center/config/private/numa_topo/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numa_topo/config_loader.py b/mcp_center/config/private/numa_topo/config_loader.py
new file mode 100644
index 000000000..de70c1d2e
--- /dev/null
+++ b/mcp_center/config/private/numa_topo/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumaTopoConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12203, description="MCP服务端口")
+
+
+class NumaTopoConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numa_topo", "config.toml")
+ self._config.private_config = NumaTopoConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numastat/config.toml b/mcp_center/config/private/numastat/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/numastat/config_loader.py b/mcp_center/config/private/numastat/config_loader.py
new file mode 100644
index 000000000..824809c4b
--- /dev/null
+++ b/mcp_center/config/private/numastat/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NumastatConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12210, description="MCP服务端口")
+
+
+class NumastatConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "numastat", "config.toml")
+ self._config.private_config = NumastatConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/nvidia/config.toml b/mcp_center/config/private/nvidia/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/nvidia/config_loader.py b/mcp_center/config/private/nvidia/config_loader.py
new file mode 100644
index 000000000..ecc7a0d02
--- /dev/null
+++ b/mcp_center/config/private/nvidia/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class NvidiaSmiConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12114, description="MCP服务端口")
+
+
+class NvidiaSmiConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("NVIDIA_SMI_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "nvidia", "config.toml")
+ self._config.private_config = NvidiaSmiConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/perf_interrupt/config.toml b/mcp_center/config/private/perf_interrupt/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/perf_interrupt/config_loader.py b/mcp_center/config/private/perf_interrupt/config_loader.py
new file mode 100644
index 000000000..5d7b93d2c
--- /dev/null
+++ b/mcp_center/config/private/perf_interrupt/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class PerfInterruptConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12220, description="MCP服务端口")
+
+
+class PerfInterruptConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "perf_interrupt", "config.toml")
+ self._config.private_config = PerfInterruptConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/qemu/config.toml b/mcp_center/config/private/qemu/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/qemu/config_loader.py b/mcp_center/config/private/qemu/config_loader.py
new file mode 100644
index 000000000..63c5b3b51
--- /dev/null
+++ b/mcp_center/config/private/qemu/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class QemuConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12134, description="MCP服务端口")
+
+
+class QemuConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("QEMU_SMI_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "qemu", "config.toml")
+ self._config.private_config = QemuConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/remote_info/config.toml b/mcp_center/config/private/remote_info/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/remote_info/config_loader.py b/mcp_center/config/private/remote_info/config_loader.py
new file mode 100644
index 000000000..10c4af23a
--- /dev/null
+++ b/mcp_center/config/private/remote_info/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class RemoteInfoConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12100, description="MCP服务端口")
+
+
+class RemoteInfoConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("REMOTE_INFO_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "remote_info", "config.toml")
+ self._config.private_config = RemoteInfoConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/rm/config.toml b/mcp_center/config/private/rm/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/rm/config_loader.py b/mcp_center/config/private/rm/config_loader.py
new file mode 100644
index 000000000..b3a91cee2
--- /dev/null
+++ b/mcp_center/config/private/rm/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class RmConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13110, description="MCP服务端口")
+
+
+class RmConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "rm", "config.toml")
+ self._config.private_config = RmConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/sar/config.toml b/mcp_center/config/private/sar/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/sar/config_loader.py b/mcp_center/config/private/sar/config_loader.py
new file mode 100644
index 000000000..b48125b25
--- /dev/null
+++ b/mcp_center/config/private/sar/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class SarConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13102, description="MCP服务端口")
+
+
+class SarConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "sar", "config.toml")
+ self._config.private_config = SarConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/sed/config.toml b/mcp_center/config/private/sed/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/sed/config_loader.py b/mcp_center/config/private/sed/config_loader.py
new file mode 100644
index 000000000..9d1c5ca7d
--- /dev/null
+++ b/mcp_center/config/private/sed/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class SedConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13121, description="MCP服务端口")
+
+
+class SedConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "sed", "config.toml")
+ self._config.private_config = SedConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/strace/config.toml b/mcp_center/config/private/strace/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/strace/config_loader.py b/mcp_center/config/private/strace/config_loader.py
new file mode 100644
index 000000000..d786a396e
--- /dev/null
+++ b/mcp_center/config/private/strace/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class StraceCommandConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12113, description="MCP服务端口")
+
+
+class StraceCommandConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("STRACE_COMMAND_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "strace", "config.toml")
+ self._config.private_config = StraceCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/strace_syscall/config.toml b/mcp_center/config/private/strace_syscall/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/strace_syscall/config_loader.py b/mcp_center/config/private/strace_syscall/config_loader.py
new file mode 100644
index 000000000..f3c4e4e23
--- /dev/null
+++ b/mcp_center/config/private/strace_syscall/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class StraceSyscallConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12219, description="MCP服务端口")
+
+
+class StraceSyscallConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "strace_syscall", "config.toml")
+ self._config.private_config = StraceSyscallConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/swapoff/config.toml b/mcp_center/config/private/swapoff/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/swapoff/config_loader.py b/mcp_center/config/private/swapoff/config_loader.py
new file mode 100644
index 000000000..85961175c
--- /dev/null
+++ b/mcp_center/config/private/swapoff/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class SwapoffConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13105, description="MCP服务端口")
+
+
+class SwapoffConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "swapoff", "config.toml")
+ self._config.private_config = SwapoffConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/swapon/config.toml b/mcp_center/config/private/swapon/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/swapon/config_loader.py b/mcp_center/config/private/swapon/config_loader.py
new file mode 100644
index 000000000..6ec6aed3e
--- /dev/null
+++ b/mcp_center/config/private/swapon/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class SwaponConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13104, description="MCP服务端口")
+
+
+class SwaponConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "swapon", "config.toml")
+ self._config.private_config = SwaponConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/sync/config.toml b/mcp_center/config/private/sync/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/sync/config_loader.py b/mcp_center/config/private/sync/config_loader.py
new file mode 100644
index 000000000..c21cce671
--- /dev/null
+++ b/mcp_center/config/private/sync/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class SyncConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13103, description="MCP服务端口")
+
+
+class SyncConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "sync", "config.toml")
+ self._config.private_config = SyncConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/tail/config.toml b/mcp_center/config/private/tail/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/tail/config_loader.py b/mcp_center/config/private/tail/config_loader.py
new file mode 100644
index 000000000..6e5b5c721
--- /dev/null
+++ b/mcp_center/config/private/tail/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class TailConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13114, description="MCP服务端口")
+
+
+class TailConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "tail", "config.toml")
+ self._config.private_config = TailConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/tar/config.toml b/mcp_center/config/private/tar/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/tar/config_loader.py b/mcp_center/config/private/tar/config_loader.py
new file mode 100644
index 000000000..c2ae19046
--- /dev/null
+++ b/mcp_center/config/private/tar/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class TarConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13118, description="MCP服务端口")
+
+
+class TarConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "tar", "config.toml")
+ self._config.private_config = TarConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/top/config.toml b/mcp_center/config/private/top/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/top/config_loader.py b/mcp_center/config/private/top/config_loader.py
new file mode 100644
index 000000000..6b90c36b7
--- /dev/null
+++ b/mcp_center/config/private/top/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class TopCommandConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12110, description="MCP服务端口")
+
+
+class TopCommandConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("TOP_COMMAND_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "top", "config.toml")
+ self._config.private_config = TopCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/touch/config.toml b/mcp_center/config/private/touch/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/touch/config_loader.py b/mcp_center/config/private/touch/config_loader.py
new file mode 100644
index 000000000..8e09474be
--- /dev/null
+++ b/mcp_center/config/private/touch/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class TouchConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13108, description="MCP服务端口")
+
+
+class TouchConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "touch", "config.toml")
+ self._config.private_config = TouchConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/tshark/config.toml b/mcp_center/config/private/tshark/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/tshark/config_loader.py b/mcp_center/config/private/tshark/config_loader.py
new file mode 100644
index 000000000..a57dc8886
--- /dev/null
+++ b/mcp_center/config/private/tshark/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class TsharkConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=12122, description="MCP服务端口")
+
+
+class TsharkConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("TSHARK_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "tshark", "config.toml")
+ self._config.private_config = TsharkConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/vmstat/config.toml b/mcp_center/config/private/vmstat/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/vmstat/config_loader.py b/mcp_center/config/private/vmstat/config_loader.py
new file mode 100644
index 000000000..886e5f902
--- /dev/null
+++ b/mcp_center/config/private/vmstat/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class VmstatConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13101, description="MCP服务端口")
+
+
+class VmstatConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("REMOTE_INFO_CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "vmstat", "config.toml")
+ self._config.private_config = VmstatConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/zip/config.toml b/mcp_center/config/private/zip/config.toml
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/config/private/zip/config_loader.py b/mcp_center/config/private/zip/config_loader.py
new file mode 100644
index 000000000..19b20ac16
--- /dev/null
+++ b/mcp_center/config/private/zip/config_loader.py
@@ -0,0 +1,26 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+from config.public.base_config_loader import BaseConfig
+import os
+from pydantic import BaseModel, Field
+import toml
+
+
+class ZipConfigModel(BaseModel):
+ """顶层配置模型"""
+ port: int = Field(default=13119, description="MCP服务端口")
+
+
+class ZipConfig(BaseConfig):
+ """顶层配置文件读取和使用Class"""
+
+ def __init__(self) -> None:
+ """读取配置文件"""
+ super().__init__()
+ self.load_private_config()
+
+ def load_private_config(self) -> None:
+ """加载私有配置文件"""
+ config_file = os.getenv("CONFIG")
+ if config_file is None:
+ config_file = os.path.join("config", "private", "zip", "config.toml")
+ self._config.private_config = ZipConfigModel.model_validate(toml.load(config_file))
--
Gitee
From 80ff16f2496c488229178e93ebed27b8b5114be9 Mon Sep 17 00:00:00 2001
From: cui-gaoleng <562344211@qq.com>
Date: Fri, 14 Nov 2025 11:57:05 +0800
Subject: [PATCH 5/7] cache_miss_audit,cat,chmod,chown,disk_manager
---
.../servers/cache_miss_audit/README.en.md | 3 +
mcp_center/servers/cache_miss_audit/README.md | 3 +
.../servers/cache_miss_audit/src/server.py | 132 ++++++++
mcp_center/servers/cat/README.en.md | 12 +
mcp_center/servers/cat/README.md | 10 +
mcp_center/servers/cat/requiremenets.txt | 0
mcp_center/servers/cat/src/server.py | 103 +++++++
mcp_center/servers/chmod/README.en.md | 11 +
mcp_center/servers/chmod/README.md | 10 +
mcp_center/servers/chmod/requiremenets.txt | 0
mcp_center/servers/chmod/src/server.py | 83 +++++
mcp_center/servers/chown/README.en.md | 11 +
mcp_center/servers/chown/README.md | 10 +
mcp_center/servers/chown/requiremenets.txt | 0
mcp_center/servers/chown/src/server.py | 107 +++++++
mcp_center/servers/disk_manager/README.en.md | 32 ++
mcp_center/servers/disk_manager/README.md | 28 ++
mcp_center/servers/disk_manager/src/server.py | 289 ++++++++++++++++++
18 files changed, 844 insertions(+)
create mode 100644 mcp_center/servers/cache_miss_audit/README.en.md
create mode 100644 mcp_center/servers/cache_miss_audit/README.md
create mode 100644 mcp_center/servers/cache_miss_audit/src/server.py
create mode 100644 mcp_center/servers/cat/README.en.md
create mode 100644 mcp_center/servers/cat/README.md
create mode 100644 mcp_center/servers/cat/requiremenets.txt
create mode 100644 mcp_center/servers/cat/src/server.py
create mode 100644 mcp_center/servers/chmod/README.en.md
create mode 100644 mcp_center/servers/chmod/README.md
create mode 100644 mcp_center/servers/chmod/requiremenets.txt
create mode 100644 mcp_center/servers/chmod/src/server.py
create mode 100644 mcp_center/servers/chown/README.en.md
create mode 100644 mcp_center/servers/chown/README.md
create mode 100644 mcp_center/servers/chown/requiremenets.txt
create mode 100644 mcp_center/servers/chown/src/server.py
create mode 100644 mcp_center/servers/disk_manager/README.en.md
create mode 100644 mcp_center/servers/disk_manager/README.md
create mode 100644 mcp_center/servers/disk_manager/src/server.py
diff --git a/mcp_center/servers/cache_miss_audit/README.en.md b/mcp_center/servers/cache_miss_audit/README.en.md
new file mode 100644
index 000000000..f10eabc39
--- /dev/null
+++ b/mcp_center/servers/cache_miss_audit/README.en.md
@@ -0,0 +1,3 @@
+| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
+| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `cache_miss_audit_tool` | Collects whole-system micro-architecture metrics via `perf stat -a -e cache-misses,cycles,instructions sleep 10`, supports both local and remote execution | - `host`: Optional remote hostname/IP, analyse local if omitted | `cache_misses`: Number of cache misses
`cycles`: CPU cycles
`instructions`: Number of instructions
`ipc`: Instructions per cycle
`seconds`: Collection duration (in seconds) |
diff --git a/mcp_center/servers/cache_miss_audit/README.md b/mcp_center/servers/cache_miss_audit/README.md
new file mode 100644
index 000000000..f8dee6950
--- /dev/null
+++ b/mcp_center/servers/cache_miss_audit/README.md
@@ -0,0 +1,3 @@
+| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
+| ----------------------- | ----------------------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
+| `cache_miss_audit_tool` | 通过 `perf stat -a -e cache-misses,cycles,instructions sleep 10` 采集整机的微架构指标,支持本地和远程执行 | - `host`:可选,远程主机名/IP,留空则采集本机 | `cache_misses`:缓存未命中次数
`cycles`:CPU 周期数
`instructions`:指令数
`ipc`:每周期指令数 (Instructions per Cycle)
`seconds`:采集时长(秒) |
diff --git a/mcp_center/servers/cache_miss_audit/src/server.py b/mcp_center/servers/cache_miss_audit/src/server.py
new file mode 100644
index 000000000..f60d3f16b
--- /dev/null
+++ b/mcp_center/servers/cache_miss_audit/src/server.py
@@ -0,0 +1,132 @@
+from typing import Dict, Any, Optional
+import subprocess
+import tempfile
+import re
+import paramiko
+from mcp.server import FastMCP
+from config.public.base_config_loader import LanguageEnum
+from config.private.cache_miss_audit.config_loader import CacheMissAuditConfig
+
+mcp = FastMCP(
+ "Cache Miss Audit Tool MCP Server",
+ host="0.0.0.0",
+ port=CacheMissAuditConfig().get_config().private_config.port
+)
+
+@mcp.tool(
+ name="cache_miss_audit_tool"
+ if CacheMissAuditConfig().get_config().public_config.language == LanguageEnum.ZH
+ else "cache_miss_audit_tool",
+ description="""
+ 通过 `perf stat -a -e cache-misses,cycles,instructions sleep 10` 采集整机的微架构指标。
+ 参数:
+ host : 可选,远程主机 IP/域名;留空则采集本机。
+ 返回:
+ dict {
+ "cache_misses": int,
+ "cycles" : int,
+ "instructions": int,
+ "ipc" : float,
+ "seconds" : float
+ }
+ """
+ if CacheMissAuditConfig().get_config().public_config.language == LanguageEnum.ZH
+ else """
+ Collect whole-system micro-arch metrics via
+ `perf stat -a -e cache-misses,cycles,instructions sleep 10`.
+ Args:
+ host : Optional remote IP/hostname; analyse local if omitted.
+ Returns:
+ dict {
+ "cache_misses": int,
+ "cycles" : int,
+ "instructions": int,
+ "ipc" : float,
+ "seconds" : float
+ }
+ """
+)
+def cache_miss_audit_tool(host: Optional[str] = None) -> Dict[str, Any]:
+ """采集并解析 perf stat 结果"""
+ cmd = ["perf", "stat", "-a", "-e", "cache-misses,cycles,instructions", "sleep", "10"]
+
+ if host is None:
+ # 本地执行
+ with tempfile.TemporaryDirectory() as tmp:
+ completed = subprocess.run(
+ cmd,
+ stderr=subprocess.PIPE,
+ stdout=subprocess.DEVNULL,
+ text=True,
+ check=True
+ )
+ return _parse_stat(completed.stderr)
+
+ # 远程执行
+ config = CacheMissAuditConfig().get_config()
+ target_host = None
+ for h in config.public_config.remote_hosts:
+ if host.strip() == h.name or host.strip() == h.host:
+ target_host = h
+ break
+ if not target_host:
+ if config.public_config.language == LanguageEnum.ZH:
+ raise ValueError(f"未找到远程主机: {host}")
+ else:
+ raise ValueError(f"Remote host not found: {host}")
+
+ client = paramiko.SSHClient()
+ client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ client.connect(
+ hostname=target_host.host,
+ port=getattr(target_host, "port", 22),
+ username=getattr(target_host, "username", None),
+ password=getattr(target_host, "password", None),
+ key_filename=getattr(target_host, "ssh_key_path", None),
+ timeout=10
+ )
+
+ try:
+ perf_cmd_str = " ".join(f"'{c}'" if " " in c else c for c in cmd)
+ stdin, stdout, stderr = client.exec_command(perf_cmd_str)
+ stdin.close()
+ exit_code = stdout.channel.recv_exit_status()
+ stat_output = stderr.read().decode("utf-8")
+
+ if exit_code != 0 and not stat_output:
+ raise RuntimeError(f"Remote perf stat failed, exit={exit_code}")
+
+ return _parse_stat(stat_output)
+ finally:
+ client.close()
+
+
+def _parse_stat(raw: str) -> Dict[str, Any]:
+ """
+ 解析示例片段:
+ 3,361,887 cache-misses
+ 792,941,840 cycles
+ 292,432,459 instructions # 0.37 insn per cycle
+ """
+ pat = re.compile(r"^\s*([\d,]+)\s+(cache-misses|cycles|instructions)", re.M)
+ hit = {k: 0 for k in ("cache-misses", "cycles", "instructions")}
+ for num, key in pat.findall(raw):
+ hit[key] = int(num.replace(",", ""))
+
+ ipc_match = re.search(r"#\s*([\d.]+)\s*insn per cycle", raw)
+ ipc = float(ipc_match.group(1)) if ipc_match else 0.0
+
+ sec_match = re.search(r"(\d+\.\d+)\s+seconds time elapsed", raw)
+ seconds = float(sec_match.group(1)) if sec_match else 10.0
+
+ return {
+ "cache_misses": hit["cache-misses"],
+ "cycles": hit["cycles"],
+ "instructions": hit["instructions"],
+ "ipc": ipc,
+ "seconds": seconds
+ }
+
+
+if __name__ == "__main__":
+ mcp.run(transport="sse")
diff --git a/mcp_center/servers/cat/README.en.md b/mcp_center/servers/cat/README.en.md
new file mode 100644
index 000000000..6be15fcd4
--- /dev/null
+++ b/mcp_center/servers/cat/README.en.md
@@ -0,0 +1,12 @@
+# Specification Document for Cat Command MCP (Management Control Program)
+
+## 1. Service Introduction
+This service is an MCP (Management Control Program) based on the `cat` command for viewing file contents, with the core functionality being the ability to view the contents of specified files.
+
+## 2. Core Tool Information
+| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
+| ---- | ---- | ---- | ---- |
+| `cat_file_view_tool` | Quickly view file content | - `host`: Remote hostname/IP (can be omitted for local file viewing)
- `file`: Path of the file to be viewed (required, cannot be empty) | File content string |
+
+
+## 3. To-be-developed Requirements
\ No newline at end of file
diff --git a/mcp_center/servers/cat/README.md b/mcp_center/servers/cat/README.md
new file mode 100644
index 000000000..ef99f4a61
--- /dev/null
+++ b/mcp_center/servers/cat/README.md
@@ -0,0 +1,10 @@
+# Cat命令MCP(管理控制程序)规范文档
+## 一、服务介绍
+本服务是一款基于`cat`命令实现文件内容查看的MCP(管理控制程序),核心功能为查看指定文件内容。
+
+## 二、核心工具信息
+| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
+| ---- | ---- | ---- | ---- |
+| `cat_file_view_tool` | 快速查看文件内容 | - `host`:远程主机名/IP(本地文件查看可不填)
- `file`:查看的文件路径(必传,不能为空) | 文件内容字符串 |
+
+## 三、待开发需求
diff --git a/mcp_center/servers/cat/requiremenets.txt b/mcp_center/servers/cat/requiremenets.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/servers/cat/src/server.py b/mcp_center/servers/cat/src/server.py
new file mode 100644
index 000000000..a35c28f93
--- /dev/null
+++ b/mcp_center/servers/cat/src/server.py
@@ -0,0 +1,103 @@
+from typing import Union
+import paramiko
+import subprocess
+import os
+from mcp.server import FastMCP
+from config.public.base_config_loader import LanguageEnum
+from config.private.cat.config_loader import CatConfig
+mcp = FastMCP("Cat MCP Server", host="0.0.0.0", port=CatConfig().get_config().private_config.port)
+
+
+@mcp.tool(
+ name="cat_file_view_tool"
+ if CatConfig().get_config().public_config.language == LanguageEnum.ZH
+ else
+ "cat_file_view_tool",
+ description='''
+ 使用cat命令查看文件内容
+ 1. 输入值如下:
+ - host: 远程主机名称或IP地址,若不提供则表示查看本机指定文件内容
+ - file: 要查看文件的路径
+ 2. 返回值为字符串,为返回的文件内容
+ '''
+ if CatConfig().get_config().public_config.language == LanguageEnum.ZH
+ else
+ '''
+ Use the cat command to view file contents
+ 1. Input values are as follows:
+ - host: The name or IP address of the remote host; if not provided, it indicates viewing the contents of a specified file on the local machine
+ - file: The path of the file to be viewed
+ 2. The return value is a string, which is the content of the returned file
+ '''
+
+)
+def cat_file_view_tool(host: Union[str, None] = None, file: str = None) -> str:
+ """使用cat命令查看文件内容"""
+ if host is None:
+ if not file:
+ raise ValueError("文件路径不能为空" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
+ else "File path cannot be empty")
+ try:
+ if not os.path.exists(file):
+ raise FileNotFoundError(f"文件不存在: {file}" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
+ else f"File not found: {file}")
+ command = ['cat', f'{file}']
+ result = subprocess.run(command, capture_output=True, text=True)
+ lines = result.stdout
+ return lines
+ except Exception as e:
+ if CatConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise RuntimeError(f"获取 {command} 输出信息时发生未知错误: {str(e)}") from e
+ else:
+ raise RuntimeError(f"An unknown error occurred while retrieving the output information for {command} : {str(e)}") from e
+ else:
+ for host_config in CatConfig().get_config().public_config.remote_hosts:
+ if host == host_config.name or host == host_config.host:
+ if not file:
+ raise ValueError("文件路径不能为空" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
+ else "File path cannot be empty")
+ try:
+ # 建立SSH连接
+ ssh = paramiko.SSHClient()
+ ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ ssh.connect(
+ hostname=host_config.host,
+ port=host_config.port,
+ username=host_config.username,
+ password=host_config.password
+ )
+ if not os.path.exists(file):
+ raise FileNotFoundError(f"文件不存在: {file}" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
+ else f"File not found: {file}")
+ command = f'cat {file}'
+ stdin, stdout, stderr = ssh.exec_command(command, timeout=10)
+ error = stderr.read().decode().strip()
+ result = stdout.read().decode().strip()
+ if error:
+ if CatConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError(f"执行命令 {command} 错误:{error}")
+ else:
+ raise ValueError(f"Error executing command {command}: {error}")
+ return result
+ except paramiko.AuthenticationException:
+ raise ValueError("SSH认证失败,请检查用户名和密码")
+ except paramiko.SSHException as e:
+ raise ValueError(f"SSH连接错误: {str(e)}")
+ except Exception as e:
+ raise ValueError(f"远程执行 {command} 失败: {str(e)}")
+ finally:
+ # 确保SSH连接关闭
+ if ssh is not None:
+ try:
+ ssh.close()
+ except Exception:
+ pass
+ if CatConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError(f"未找到远程主机: {host}")
+ else:
+ raise ValueError(f"Remote host not found: {host}")
+
+
+if __name__ == "__main__":
+ # Initialize and run the server
+ mcp.run(transport='sse')
diff --git a/mcp_center/servers/chmod/README.en.md b/mcp_center/servers/chmod/README.en.md
new file mode 100644
index 000000000..92bd927f5
--- /dev/null
+++ b/mcp_center/servers/chmod/README.en.md
@@ -0,0 +1,11 @@
+# Specification Document for chmod Command MCP (Management Control Program)
+
+## 1. Service Introduction
+This service is an MCP (Management Control Program) based on the `chmod` command, designed to change the permissions of files or directories. Its core function is to modify the permissions of specified files or directories to meet permission management and resource allocation requirements.
+
+## 2. Core Tool Information
+| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
+| ---- | ---- | ---- | ---- |
+| `chmod_change_mode_tool` | Change the permissions of a file or directory | - `host`: Remote hostname/IP (optional for local operations)
- `mode`: Permission mode (e.g., 755, 644, etc.)(Required, cannot be empty)
- `file`: Target file or directory path(Required, cannot be empty) | Boolean value indicating whether the operation was successful |
+
+## 3. To-be-developed Requirements
diff --git a/mcp_center/servers/chmod/README.md b/mcp_center/servers/chmod/README.md
new file mode 100644
index 000000000..d911283a5
--- /dev/null
+++ b/mcp_center/servers/chmod/README.md
@@ -0,0 +1,10 @@
+# Chown命令MCP(管理控制程序)规范文档
+## 一、服务介绍
+本服务是一款基于 `chmod` 命令实现文件或目录权限变更的 MCP(管理控制程序),核心功能为修改指定文件或目录的权限,以满足权限管理和资源分配的需求。
+
+## 二、核心工具信息
+| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
+| ---- | ---- | ---- | ---- |
+| `chmod_change_mode_tool` | 修改文件或目录的权限 | - `host`:远程主机名/IP(本地操作可不填)
- `mode`:权限模式(如755、644等)(必传,不可为空)
- `file`:目标文件或目录路径(必传,不可为空) | 布尔值,表示操作是否成功 |
+
+## 三、待开发需求
\ No newline at end of file
diff --git a/mcp_center/servers/chmod/requiremenets.txt b/mcp_center/servers/chmod/requiremenets.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/servers/chmod/src/server.py b/mcp_center/servers/chmod/src/server.py
new file mode 100644
index 000000000..03521c0e7
--- /dev/null
+++ b/mcp_center/servers/chmod/src/server.py
@@ -0,0 +1,83 @@
+from typing import Union
+import paramiko
+import subprocess
+from mcp.server import FastMCP
+from config.public.base_config_loader import LanguageEnum
+from config.private.chmod.config_loader import ChmodConfig
+
+mcp = FastMCP("Chmod MCP Server", host="0.0.0.0", port=ChmodConfig().get_config().private_config.port)
+
+@mcp.tool(
+ name="chmod_change_mode_tool"
+ if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH
+ else
+ "chmod_change_mode_tool",
+ description='''
+ 使用chmod命令设置文件或目录权限
+ 1. 输入值如下:
+ - host: 远程主机名称或IP地址,若不提供则表示对本机文件进行操作
+ - mode: 权限模式(如755、644等)
+ - file: 要修改的目标文件或目录
+ 2. 返回值为布尔值,表示权限是否修改成功
+ '''
+ if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH
+ else
+ '''
+ Use the `chmod` command to set the permission of a file or directory.
+ 1. Input values are as follows:
+ - host: Remote host name or IP address, if not provided, it means to modify the file on the local machine
+ - mode: Permission mode (such as 755, 644, etc.)
+ - file: Target file or directory to modify
+ 2. Return value is a boolean value indicating whether the permission is modified successfully
+ '''
+)
+def chmod_change_mode_tool(host: Union[str, None] = None, mode: str = None, file: str = None) -> bool:
+ """使用chmod命令设置文件或目录权限"""
+ if host is None:
+ if not mode or not file:
+ if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError("chmod要修改的目标文件及权限模式不能为空")
+ else:
+ raise ValueError("The target file and permission mode for chmod cannot be empty")
+ try:
+ command = ['chmod', mode, file]
+ result = subprocess.run(command, capture_output=True, text=True)
+ return result.returncode == 0
+ except Exception as e:
+ if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise RuntimeError(f"执行 {command} 命令时发生未知错误: {str(e)}") from e
+ else:
+ raise RuntimeError(f"An unknown error occurred while executing the {command} command: {str(e)}") from e
+ else:
+ for host_config in ChmodConfig().get_config().public_config.remote_hosts:
+ if host == host_config.name or host == host_config.host:
+ try:
+ ssh = paramiko.SSHClient()
+ ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ ssh.connect(
+ hostname=host_config.host,
+ port=host_config.port,
+ username=host_config.username,
+ password=host_config.password
+ )
+ if not mode or not file:
+ if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError("chmod要修改的目标文件及权限模式不能为空")
+ else:
+ raise ValueError("The target file and permission mode for chmod cannot be empty")
+ command = f'chmod {mode} {file}'
+ stdin, stdout, stderr = ssh.exec_command(command, timeout=20)
+ error = stderr.read().decode().strip()
+ return not error
+ except Exception as e:
+ raise ValueError(f"远程执行 {command} 失败: {str(e)}")
+ finally:
+ if ssh is not None:
+ try:
+ ssh.close()
+ except Exception:
+ pass
+ raise ValueError(f"未找到远程主机: {host}")
+
+if __name__ == "__main__":
+ mcp.run(transport='sse')
\ No newline at end of file
diff --git a/mcp_center/servers/chown/README.en.md b/mcp_center/servers/chown/README.en.md
new file mode 100644
index 000000000..e3cff8cce
--- /dev/null
+++ b/mcp_center/servers/chown/README.en.md
@@ -0,0 +1,11 @@
+# Specification Document for Chown Command MCP (Management Control Program)
+
+## 1. Service Introduction
+This service is an MCP (Management Control Program) based on the `chown` command, designed to change the owner and group of files or directories. Its core function is to modify the specified file or directory's owner and associated group to meet permission management and resource allocation requirements.
+
+## 2. Core Tool Information
+| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
+| ---- | ---- | ---- | ---- |
+| `chown_change_owner_tool` | Change the owner and group of a file or directory | - `host`: Remote hostname/IP (optional for local operations)
- `owner_group`: File owner and associated group (required, cannot be empty)
- `file`: Path of the target file to modify (required, cannot be empty) | Boolean value indicating whether the operation was successful |
+
+## 3. To-be-developed Requirements
diff --git a/mcp_center/servers/chown/README.md b/mcp_center/servers/chown/README.md
new file mode 100644
index 000000000..e93a513c5
--- /dev/null
+++ b/mcp_center/servers/chown/README.md
@@ -0,0 +1,10 @@
+# Chown命令MCP(管理控制程序)规范文档
+## 一、服务介绍
+本服务是一款基于 `chown` 命令实现文件或目录所有者变更的 MCP(管理控制程序),核心功能为修改指定文件或目录的所有者和所属组,以满足权限管理和资源分配的需求。
+
+## 二、核心工具信息
+| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
+| ---- | ---- | ---- | ---- |
+| `chown_change_owner_tool` | 修改文件或目录的所有者和所属组 | - `host`:远程主机名/IP(本地操作可不填)
- `owner_group`:文件所有者和文件关联组(必传,不可为空)
- `file`要修改目标文件的路径(必传,不可为空) | 布尔值,表示操作是否成功 |
+
+## 三、待开发需求
\ No newline at end of file
diff --git a/mcp_center/servers/chown/requiremenets.txt b/mcp_center/servers/chown/requiremenets.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/mcp_center/servers/chown/src/server.py b/mcp_center/servers/chown/src/server.py
new file mode 100644
index 000000000..17de49682
--- /dev/null
+++ b/mcp_center/servers/chown/src/server.py
@@ -0,0 +1,107 @@
+from typing import Union
+import paramiko
+import subprocess
+from mcp.server import FastMCP
+from config.public.base_config_loader import LanguageEnum
+from config.private.chown.config_loader import ChownConfig
+mcp = FastMCP("Chown MCP Server", host="0.0.0.0", port=ChownConfig().get_config().private_config.port)
+
+
+@mcp.tool(
+ name="chown_change_owner_tool"
+ if ChownConfig().get_config().public_config.language == LanguageEnum.ZH
+ else
+ "chown_change_owner_tool",
+ description='''
+ 使用chown命令设置文件所有者和文件关联组
+ 1. 输入值如下:
+ - host: 远程主机名称或IP地址,若不提供则表示对本机文件进行修改
+ - owner_group: 文件所有者和文件关联组
+ - file: 要修改目标文件的路径
+ 2. 返回值为布尔值,表示文件所有者和文件关联组是否修改成功
+ '''
+ if ChownConfig().get_config().public_config.language == LanguageEnum.ZH
+ else
+ '''
+ Use the `chown` command to set the file owner and associated group of a file.
+ 1. Input values are as follows:
+ - host: The name or IP address of the remote host. If not provided, it indicates that the file on the local machine is to be modified.
+ - owner_group: File owner and associated group of the file
+ - file: The path of the target file to be modified
+ 2. The return value is a boolean value, indicating whether the file owner and associated group were modified successfully
+ '''
+)
+def chown_change_owner_tool(host: Union[str, None] = None, owner_group: str = None, file: str = None) -> bool:
+ """使用chown命令设置文件所有者和文件关联组"""
+ if host is None:
+ if not owner_group or not file :
+ if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError("chown要修改的目标文件及文件所有者不能为空")
+ else:
+ raise ValueError("The target file and file owner for chown cannot be empty")
+ try:
+ command = ['chown']
+ command.append(owner_group)
+ command.append(file)
+ result = subprocess.run(command, capture_output=True, text=True)
+ returncode = result.returncode
+ if returncode == 0:
+ return True
+ else:
+ return False
+ except Exception as e:
+ if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise RuntimeError(f"执行 {command} 命令时发生未知错误: {str(e)}") from e
+ else:
+ raise RuntimeError(f"An unknown error occurred while obtaining memory information: {str(e)}") from e
+ else:
+ for host_config in ChownConfig().get_config().public_config.remote_hosts:
+ if host == host_config.name or host == host_config.host:
+ try:
+ # 建立SSH连接
+ ssh = paramiko.SSHClient()
+ ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ ssh.connect(
+ hostname=host_config.host,
+ port=host_config.port,
+ username=host_config.username,
+ password=host_config.password
+ )
+ if not owner_group or not file :
+ if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError("chown要修改的目标文件及文件所有者不能为空")
+ else:
+ raise ValueError("The target file and file owner for chown cannot be empty")
+ command = f'chown {owner_group} {file}'
+ stdin, stdout, stderr = ssh.exec_command(command, timeout=20)
+ error = stderr.read().decode().strip()
+
+ if error:
+ if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError(f"执行 {command} 命令失败: {error}")
+ else:
+ raise ValueError(f"Command {command} execution failed: {error}")
+ else:
+ return True
+ except paramiko.AuthenticationException:
+ raise ValueError("SSH认证失败,请检查用户名和密码")
+ except paramiko.SSHException as e:
+ raise ValueError(f"SSH连接错误: {str(e)}")
+ except Exception as e:
+ raise ValueError(f"远程执行 {command} 失败: {str(e)}")
+ finally:
+ # 确保SSH连接关闭
+ if ssh is not None:
+ try:
+ ssh.close()
+ except Exception:
+ pass
+ if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError(f"未找到远程主机: {host}")
+ else:
+ raise ValueError(f"Remote host not found: {host}")
+
+
+if __name__ == "__main__":
+ # Initialize and run the server
+ mcp.run(transport='sse')
diff --git a/mcp_center/servers/disk_manager/README.en.md b/mcp_center/servers/disk_manager/README.en.md
new file mode 100644
index 000000000..20784c7c6
--- /dev/null
+++ b/mcp_center/servers/disk_manager/README.en.md
@@ -0,0 +1,32 @@
+# System Information Collection and Monitoring MCP (Management Control Program) Specification Document
+
+## 1. Service Introduction
+This service is a comprehensive system information collection and monitoring MCP (Management Control Program) based on the `psutil` library, `SSH` protocol, and system native commands (such as `top`, `ps`, `free`, etc.). It enables accurate collection of multi-dimensional information including **processes, CPU, memory, disks, networks, operating systems, and DNS** from local machines and remote target devices. It also supports network connectivity testing and performance data tracking, providing complete basic data support for system resource monitoring, troubleshooting, and security analysis. The service is adapted to both Chinese and English configurations to meet the needs of different scenarios.
+
+
+## 2. Core Tool Information
+| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
+| ---- | ---- | ---- | ---- |
+| `top_collect_tool` | Obtains information about the **top k memory-consuming processes** on the target device (local/remote), where k supports custom configuration | - `host`: Remote host name/IP (can be omitted for local collection)
- `k`: Number of processes to obtain (default 5) | Process list (including `pid` process ID, `name` process name, `memory` memory usage (MB)) |
+| `get_process_info_tool` | Queries **detailed running information** of a specified PID process, supporting both local and remote process information retrieval | - `host`: Remote host name/IP (can be omitted for local query)
- `pid`: Process ID to query (required, must be a positive integer) | Detailed process dictionary (including `status`, `create_time`, `cpu_times`, `memory_info`, `open_files` list, `connections`, etc.) |
+| `change_name_to_pid_tool` | Reverse queries the corresponding **PID list** based on process name, addressing the scenario of "known process name to find ID" | - `host`: Remote host name/IP (can be omitted for local query)
- `name`: Name of the process to query (required, cannot be empty) | Space-separated PID string (e.g., "1234 5678") |
+| `get_cpu_info_tool` | Collects CPU hardware and usage status information of the target device, including core count, frequency, and core utilization | - `host`: Remote host name/IP (can be omitted for local collection) | CPU information dictionary (including `physical_cores`, `total_cores`, `max_frequency` (MHz), `cpu_usage` of each core (%), etc.) |
+| `memory_anlyze_tool` | Analyzes memory usage of the target device, calculating total memory, available memory, and usage rate | - `host`: Remote host name/IP (can be omitted for local collection) | Memory information dictionary (including `total` memory (MB), `available` memory (MB), `used` memory (MB), `percent` memory usage (%), etc.) |
+| `get_disk_info_tool` | Collects disk partition information and capacity usage status of the target device, filtering temporary file systems (tmpfs/devtmpfs) | - `host`: Remote host name/IP (can be omitted for local collection) | Disk list (including `device` name, `mountpoint`, `fstype`, `total` capacity (GB), `percent` disk usage (%), etc.) |
+| `get_os_info_tool` | Obtains operating system type and version information of the target device, compatible with multiple systems such as OpenEuler, Ubuntu, and CentOS | - `host`: Remote host name/IP (can be omitted for local collection) | Operating system information string (e.g., "OpenEuler 22.03 LTS" or "Ubuntu 20.04.5 LTS") |
+| `get_network_info_tool` | Collects network interface information of the target device, including IP address, MAC address, and interface status | - `host`: Remote host name/IP (can be omitted for local collection) | Network interface list (including `interface` name, `ip_address`, `mac_address`, `is_up` status (boolean), etc.) |
+| `write_report_tool` | Writes system information analysis results to a local report file, automatically generating a timestamped file path | - `report`: Report content string (required, cannot be empty) | Report file path string (e.g., "/reports/system_report_20240520_153000.txt") |
+| `telnet_test_tool` | Tests Telnet connectivity to a specified port on the target host, verifying port status | - `host`: Remote host name/IP (required)
- `port`: Port number (1-65535, required) | Connectivity result (boolean: `True` for success, `False` for failure) |
+| `ping_test_tool` | Tests ICMP Ping connectivity to the target host, verifying host network reachability | - `host`: Remote host name/IP (required) | Connectivity result (boolean: `True` for success, `False` for failure) |
+| `get_dns_info_tool` | Collects DNS configuration information of the target device, including DNS server list and search domains | - `host`: Remote host name/IP (can be omitted for local collection) | DNS information dictionary (including `nameservers` list, `search` domains list) |
+| `perf_data_tool` | Collects real-time performance data of the target device, supporting "specified process" or "entire system" performance monitoring | - `host`: Remote host name/IP (can be omitted for local collection)
- `pid`: Process ID (can be omitted for full system monitoring) | Performance data dictionary (including `cpu_usage` (%), `memory_usage` (%), `io_counters` statistics) |
+
+
+## 3. Requirements to be Developed
+1. **Intelligent Malicious Process Identification**: Based on the basic data from `perf_data_tool` and `top_collect_tool`, add process risk assessment dimensions (such as abnormal CPU usage fluctuations, memory leak characteristics, process path legitimacy, unsigned process identification, etc.), establish a malicious process scoring model, and automatically mark high-risk processes and trigger alarms.
+
+2. **Performance Data Visualization and Trend Analysis**: Add historical performance data storage (e.g., MySQL/InfluxDB), develop time-series chart functions (such as CPU/memory usage trend charts, process IO change curves), and support time-range queries and export of analysis reports.
+
+3. **Bulk Monitoring and Management of Multiple Hosts**: Expand remote host configuration functions to support bulk import of host lists and group management, add "one-click bulk collection" and "abnormal host filtering" functions to improve monitoring efficiency of multi-device clusters.
+
+4. **Custom Alarm Rule Configuration**: Allow users to customize threshold alarms (e.g., CPU usage exceeding 80% for 5 consecutive minutes, disk usage exceeding 90%), support multi-channel alarm notifications such as email, SMS, and enterprise WeChat, to achieve proactive fault warning.
\ No newline at end of file
diff --git a/mcp_center/servers/disk_manager/README.md b/mcp_center/servers/disk_manager/README.md
new file mode 100644
index 000000000..dc3ec52c8
--- /dev/null
+++ b/mcp_center/servers/disk_manager/README.md
@@ -0,0 +1,28 @@
+# 系统信息采集与监控MCP(管理控制程序)规范文档
+## 一、服务介绍
+本服务是一款功能全面的系统信息采集与监控MCP(管理控制程序),基于`psutil`库、`SSH`协议及系统原生命令(如`top`、`ps`、`free`等),实现对本地机器及远程目标设备的**进程、CPU、内存、磁盘、网络、操作系统、DNS** 等多维度信息的精准采集,同时支持网络连通性测试与性能数据跟踪,为系统资源监控、故障排查、安全分析提供完整的基础数据支撑,适配中文与英文双语言配置,满足不同场景下的使用需求。
+
+
+## 二、核心工具信息
+| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
+| ---- | ---- | ---- | ---- |
+| `top_collect_tool` | 获取目标设备(本地/远程)中**内存占用排名前k个**的进程信息,k支持自定义配置 | - `host`:远程主机名/IP(本地采集可不填)
- `k`:需获取的进程数量(默认5) | 进程列表(含`pid`进程ID、`name`进程名称、`memory`内存使用量(MB)) |
+| `get_process_info_tool` | 查询指定PID进程的**详细运行信息**,支持本地与远程进程信息获取 | - `host`:远程主机名/IP(本地查询可不填)
- `pid`:需查询的进程ID(必传,且为正整数) | 进程详细字典(含`status`状态、`create_time`创建时间、`cpu_times`CPU时间、`memory_info`内存信息、`open_files`打开文件列表、`connections`网络连接等) |
+| `change_name_to_pid_tool` | 根据进程名称反向查询对应的**PID列表**,解决“已知进程名查ID”的场景需求 | - `host`:远程主机名/IP(本地查询可不填)
- `name`:需查询的进程名称(必传,不能为空) | 以空格分隔的PID字符串(如“1234 5678”) |
+| `get_cpu_info_tool` | 采集目标设备的CPU硬件与使用状态信息,包括核心数、频率、核心使用率 | - `host`:远程主机名/IP(本地采集可不填) | CPU信息字典(含`physical_cores`物理核心数、`total_cores`逻辑核心数、`max_frequency`最大频率(MHz)、`cpu_usage`各核心使用率(%)等) |
+| `memory_anlyze_tool` | 分析目标设备的内存使用情况,计算总内存、可用内存及使用率 | - `host`:远程主机名/IP(本地采集可不填) | 内存信息字典(含`total`总内存(MB)、`available`可用内存(MB)、`used`已用内存(MB)、`percent`内存使用率(%)等) |
+| `get_disk_info_tool` | 采集目标设备的磁盘分区信息与容量使用状态,过滤临时文件系统(tmpfs/devtmpfs) | - `host`:远程主机名/IP(本地采集可不填) | 磁盘列表(含`device`设备名、`mountpoint`挂载点、`fstype`文件系统类型、`total`总容量(GB)、`percent`磁盘使用率(%)等) |
+| `get_os_info_tool` | 获取目标设备的操作系统类型与版本信息,适配OpenEuler、Ubuntu、CentOS等多系统 | - `host`:远程主机名/IP(本地采集可不填) | 操作系统信息字符串(如“OpenEuler 22.03 LTS”或“Ubuntu 20.04.5 LTS”) |
+| `get_network_info_tool` | 采集目标设备的网络接口信息,包括IP地址、MAC地址、接口启用状态 | - `host`:远程主机名/IP(本地采集可不填) | 网络接口列表(含`interface`接口名、`ip_address`IP地址、`mac_address`MAC地址、`is_up`接口是否启用(布尔值)等) |
+| `write_report_tool` | 将系统信息分析结果写入本地报告文件,自动生成带时间戳的文件路径 | - `report`:报告内容字符串(必传,不能为空) | 报告文件路径字符串(如“/reports/system_report_20240520_153000.txt”) |
+| `telnet_test_tool` | 测试目标主机指定端口的Telnet连通性,验证端口开放状态 | - `host`:远程主机名/IP(必传)
- `port`:端口号(1-65535,必传) | 连通性结果(布尔值:`True`成功,`False`失败) |
+| `ping_test_tool` | 测试目标主机的ICMP Ping连通性,验证主机网络可达性 | - `host`:远程主机名/IP(必传) | 连通性结果(布尔值:`True`成功,`False`失败) |
+| `get_dns_info_tool` | 采集目标设备的DNS配置信息,包括DNS服务器列表与搜索域 | - `host`:远程主机名/IP(本地采集可不填) | DNS信息字典(含`nameservers`DNS服务器列表、`search`搜索域列表) |
+| `perf_data_tool` | 采集目标设备的实时性能数据,支持“指定进程”或“全系统”性能监控 | - `host`:远程主机名/IP(本地采集可不填)
- `pid`:进程ID(全系统监控可不填) | 性能数据字典(含`cpu_usage`CPU使用率(%)、`memory_usage`内存使用率(%)、`io_counters`I/O统计信息) |
+
+
+## 三、待开发需求
+1. **恶意进程智能识别功能**:基于`perf_data_tool`与`top_collect_tool`的基础数据,新增进程风险评估维度(如异常CPU占用波动、内存泄漏特征、进程路径合法性、无签名进程识别等),建立恶意进程评分模型,自动标记高风险进程并触发告警。
+2. **性能数据可视化与趋势分析**:新增历史性能数据存储(如MySQL/InfluxDB),开发时间序列图表功能(如CPU/内存使用率趋势图、进程IO变化曲线),支持按时间范围查询与导出分析报告。
+3. **多主机批量监控与管理**:扩展远程主机配置功能,支持批量导入主机列表、分组管理,新增“一键批量采集”“异常主机筛选”功能,提升多设备集群的监控效率。
+4. **自定义告警规则配置**:允许用户自定义阈值告警(如CPU使用率持续5分钟超80%、磁盘使用率超90%),支持邮件、短信、企业微信等多渠道告警通知,实现主动故障预警。
\ No newline at end of file
diff --git a/mcp_center/servers/disk_manager/src/server.py b/mcp_center/servers/disk_manager/src/server.py
new file mode 100644
index 000000000..675215fc0
--- /dev/null
+++ b/mcp_center/servers/disk_manager/src/server.py
@@ -0,0 +1,289 @@
+from typing import Union, List, Dict, Any
+import paramiko
+import subprocess
+import re
+from mcp.server import FastMCP
+from config.public.base_config_loader import LanguageEnum
+from config.private.disk_manager.config_loader import DiskManagerConfig
+mcp = FastMCP("Remote info MCP Server", host="0.0.0.0", port=DiskManagerConfig().get_config().private_config.port)
+
+
+@mcp.tool(
+ name="get_disk_status_tool"
+ if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
+ else "get_disk_status_tool",
+ description='''
+ 使用iostat命令获取磁盘使用情况
+ 输入值如下:
+ - host: 远程主机名或IP地址, 不传表示获取本机磁盘使用情况
+ - time_gap: 采样间隔, 默认为0.1秒
+ - count: 采样次数, 默认为1次
+ 输出值如下:
+ - device: 设备名
+ - tps: 每秒传输次数
+ - kB_read/s: 每秒读取的千字节数
+ - kB_wrtn/s: 每秒写入的千字节数
+ - KB_dscd/s: 每秒丢弃的千字节数
+ - kB_read: 读取的千字节总数
+ - kB_wrtn: 写入的千字节总数
+ - KB_dscd: 丢弃的千字节总数
+ ''' if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
+ else '''
+ Use the iostat command to get disk usage
+ Input values are as follows:
+ - host: Remote hostname or IP address, not passed to get local disk usage
+ - time_gap: Sampling interval, default is 0.1 seconds
+ - count: Number of samples, default is 1 time
+ Output values are as follows:
+ - device: Device name
+ - tps: Transfers per second
+ - kB_read/s: Kilobytes read per second
+ - kB_wrtn/s: Kilobytes written per second
+ - KB_dscd/s: Kilobytes discarded per second
+ - kB_read: Total kilobytes read
+ - kB_wrtn: Total kilobytes written
+ - KB_dscd: Total kilobytes discarded
+ ''',
+
+)
+async def get_disk_status(host: Union[str, None] = None,
+ time_gap: int = 1,
+ count: int = 1) -> List[Dict[str, Any]]:
+ """使用iostat命令获取磁盘使用情况"""
+ if time_gap <= 0 or count <= 0:
+ raise ValueError("time_gap和count必须为正数")
+ if host is None:
+ # 获取本机磁盘使用情况
+ try:
+ result = subprocess.run(['iostat', '-d', str(time_gap), str(count)],
+ capture_output=True, text=True, check=True)
+ output = result.stdout
+ lines = output.strip().split('\n')
+ disk_info_dict = {}
+ for line in lines:
+ parts = line.split()
+ if len(parts) >= 8:
+ try:
+ disk_info = {
+ 'device': parts[0],
+ 'tps': float(parts[1]),
+ 'kB_read/s': float(parts[2]),
+ 'kB_wrtn/s': float(parts[3]),
+ 'KB_dscd/s': float(parts[4]),
+ 'kB_read': int(parts[5]),
+ 'kB_wrtn': int(parts[6]),
+ 'KB_dscd': int(parts[7])
+ }
+ if parts[0] not in disk_info_dict:
+ disk_info_dict[parts[0]] = []
+ disk_info_dict[parts[0]].append(disk_info)
+ except ValueError:
+ continue
+ # 计算平均值
+ disk_info = []
+ for device, infos in disk_info_dict.items():
+ avg_info = {
+ 'device': device,
+ 'tps': sum(info['tps'] for info in infos) / len(infos),
+ 'kB_read/s': sum(info['kB_read/s'] for info in infos) / len(infos),
+ 'kB_wrtn/s': sum(info['kB_wrtn/s'] for info in infos) / len(infos),
+ 'KB_dscd/s': sum(info['KB_dscd/s'] for info in infos) / len(infos),
+ 'kB_read': sum(info['kB_read'] for info in infos),
+ 'kB_wrtn': sum(info['kB_wrtn'] for info in infos),
+ 'KB_dscd': sum(info['KB_dscd'] for info in infos)
+ }
+ disk_info.append(avg_info)
+ return disk_info
+ except Exception as e:
+ return [{"error": str(e)}]
+ else:
+ # 获取远程主机磁盘使用情况
+ try:
+ for host_config in DiskManagerConfig().get_config().public_config.remote_hosts:
+ if host == host_config.name or host == host_config.host:
+ ssh = paramiko.SSHClient()
+ ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ ssh.connect(
+ hostname=host_config.host,
+ port=host_config.port,
+ username=host_config.username,
+ password=host_config.password
+ )
+ stdin, stdout, stderr = ssh.exec_command('iostat -d {} {}'.format(time_gap, count))
+ output = stdout.read().decode()
+ error = stderr.read().decode()
+ if error:
+ raise ValueError(f"远程命令执行错误: {error}")
+ lines = output.strip().split('\n')
+ disk_info_dict = {}
+ for line in lines:
+ parts = line.split()
+ if len(parts) >= 8:
+ try:
+ disk_info = {
+ 'device': parts[0],
+ 'tps': float(parts[1]),
+ 'kB_read/s': float(parts[2]),
+ 'kB_wrtn/s': float(parts[3]),
+ 'KB_dscd/s': float(parts[4]),
+ 'kB_read': int(parts[5]),
+ 'kB_wrtn': int(parts[6]),
+ 'KB_dscd': int(parts[7])
+ }
+ if parts[0] not in disk_info_dict:
+ disk_info_dict[parts[0]] = []
+ disk_info_dict[parts[0]].append(disk_info)
+ except ValueError:
+ continue
+ # 计算平均值
+ disk_info = []
+ for device, infos in disk_info_dict.items():
+ avg_info = {
+ 'device': device,
+ 'tps': sum(info['tps'] for info in infos) / len(infos),
+ 'kB_read/s': sum(info['kB_read/s'] for info in infos) / len(infos),
+ 'kB_wrtn/s': sum(info['kB_wrtn/s'] for info in infos) / len(infos),
+ 'KB_dscd/s': sum(info['KB_dscd/s'] for info in infos) / len(infos),
+ 'kB_read': sum(info['kB_read'] for info in infos),
+ 'kB_wrtn': sum(info['kB_wrtn'] for info in infos),
+ 'KB_dscd': sum(info['KB_dscd'] for info in infos)
+ }
+ disk_info.append(avg_info)
+ return disk_info
+ if DiskManagerConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError(f"未找到远程主机: {host}")
+ else:
+ raise ValueError(f"Remote host not found: {host}")
+ except paramiko.AuthenticationException:
+ raise ValueError("SSH认证失败,请检查用户名和密码")
+ except paramiko.SSHException as e:
+ raise ValueError(f"SSH连接错误: {str(e)}")
+ except Exception as e:
+ raise ValueError(f"获取远程CPU信息失败: {str(e)}")
+ finally:
+ # 确保SSH连接关闭
+ if ssh is not None:
+ try:
+ ssh.close()
+ except Exception:
+ pass
+
+
+@mcp.tool(
+ name="disk_io_insight_tool"
+ if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
+ else "disk_io_insight_tool",
+ description='''
+ 使用iotop命令获取磁盘IO使用情况
+ 输入值如下:
+ - host: 远程主机名或IP地址, 不传表示获取本机磁盘IO使用情况
+ - time_gap: 采样间隔, 默认为1秒
+ - count: 采样次数, 默认为1次
+ 输出值如下:
+ - pid: 进程ID
+ - user: 进程所属用户
+ - disk_read: 磁盘读取速率
+ - disk_write: 磁盘写入速率
+ - swapin: 交换区使用率
+ - io: IO使用率
+ - command: 进程命令
+ ''' if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
+ else '''
+ Use the iotop command to get disk IO usage
+ Input values are as follows:
+ - host: Remote hostname or IP address, not passed to get local disk IO usage
+ - time_gap: Sampling interval, default is 1 second
+ - count: Number of samples, default is 1 time
+ Output values are as follows:
+ - pid: Process ID
+ - user: Process owner
+ - disk_read: Disk read rate
+ - disk_write: Disk write rate
+ - swapin: Swap usage
+ - io: IO usage
+ - command: Process command
+ '''
+)
+def disk_io_insight(host: Union[str, None] = None,
+ time_gap: int = 1,
+ count: int = 1) -> List[Dict[str, Any]]:
+ """使用iotop命令获取磁盘IO使用情况"""
+ if time_gap <= 0 or count <= 0:
+ raise ValueError("time_gap和count必须为正数")
+ if host is None:
+ # 获取本机磁盘IO使用情况
+ try:
+ result = subprocess.run(
+ ['iotop', '-b', '-n', str(count), '-d', str(time_gap)],
+ capture_output=True,
+ text=True,
+ check=True
+ )
+ output = result.stdout
+ lines = output.strip().split('\n')
+ except Exception as e:
+ return [{"error": str(e)}]
+ else:
+ # 获取远程主机磁盘IO使用情况
+ try:
+ lines = None
+ for host_config in DiskManagerConfig().get_config().public_config.remote_hosts:
+ if host == host_config.name or host == host_config.host:
+ ssh = paramiko.SSHClient()
+ ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ ssh.connect(
+ hostname=host_config.host,
+ port=host_config.port,
+ username=host_config.username,
+ password=host_config.password
+ )
+ stdin, stdout, stderr = ssh.exec_command('iotop -b -n {} -d {}'.format(count, time_gap))
+ output = stdout.read().decode()
+ error = stderr.read().decode()
+ if error:
+ raise ValueError(f"远程命令执行错误: {error}")
+ lines = output.strip().split('\n')
+ if lines is None:
+ if DiskManagerConfig().get_config().public_config.language == LanguageEnum.ZH:
+ raise ValueError(f"未找到远程主机: {host}")
+ else:
+ raise ValueError(f"Remote host not found: {host}")
+ except paramiko.AuthenticationException:
+ raise ValueError("SSH认证失败,请检查用户名和密码")
+ except paramiko.SSHException as e:
+ raise ValueError(f"SSH连接错误: {str(e)}")
+ try:
+ io_info = []
+ # 处理PID、优先级、用户、磁盘读写速率(含单位)、swapin、IO、命令
+ pattern = r'^\s*(\d+)\s+(\S+)\s+(\S+)\s+(\d+\.\d+)\s+(\S+)\s+(\d+\.\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*?)\s*$'
+
+ # 跳过标题行(通常是前3行)
+ for line in lines:
+ line = line.strip()
+ if not line:
+ continue
+
+ match = re.match(pattern, line)
+ if match:
+ try:
+ io_data = {
+ 'pid': int(match.group(1)),
+ 'priority': match.group(2), # 如be/4
+ 'user': match.group(3),
+ 'disk_read': f"{match.group(4)} {match.group(5)}", # 组合数值和单位
+ 'disk_write': f"{match.group(6)} {match.group(7)}", # 组合数值和单位
+ 'swapin': match.group(8),
+ 'io': match.group(9),
+ 'command': match.group(10)
+ }
+ io_info.append(io_data)
+ except ValueError:
+ continue
+ return io_info
+ except Exception as e:
+ return [{"error": str(e)}]
+
+
+if __name__ == "__main__":
+ # Initialize and run the server
+ mcp.run(transport='sse')
--
Gitee
From 3bd9cab8c8529ccb3fc434b6ad8fbb6518fbfd71 Mon Sep 17 00:00:00 2001
From: cui-gaoleng <562344211@qq.com>
Date: Fri, 14 Nov 2025 15:10:33 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E5=89=94=E9=99=A4mcp=E6=BA=90=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../servers/cache_miss_audit/README.en.md | 3 -
mcp_center/servers/cache_miss_audit/README.md | 3 -
.../servers/cache_miss_audit/src/server.py | 132 --------
mcp_center/servers/cat/README.en.md | 12 -
mcp_center/servers/cat/README.md | 10 -
mcp_center/servers/cat/requiremenets.txt | 0
mcp_center/servers/cat/src/server.py | 103 -------
mcp_center/servers/chmod/README.en.md | 11 -
mcp_center/servers/chmod/README.md | 10 -
mcp_center/servers/chmod/requiremenets.txt | 0
mcp_center/servers/chmod/src/server.py | 83 -----
mcp_center/servers/chown/README.en.md | 11 -
mcp_center/servers/chown/README.md | 10 -
mcp_center/servers/chown/requiremenets.txt | 0
mcp_center/servers/chown/src/server.py | 107 -------
mcp_center/servers/disk_manager/README.en.md | 32 --
mcp_center/servers/disk_manager/README.md | 28 --
mcp_center/servers/disk_manager/src/server.py | 289 ------------------
18 files changed, 844 deletions(-)
delete mode 100644 mcp_center/servers/cache_miss_audit/README.en.md
delete mode 100644 mcp_center/servers/cache_miss_audit/README.md
delete mode 100644 mcp_center/servers/cache_miss_audit/src/server.py
delete mode 100644 mcp_center/servers/cat/README.en.md
delete mode 100644 mcp_center/servers/cat/README.md
delete mode 100644 mcp_center/servers/cat/requiremenets.txt
delete mode 100644 mcp_center/servers/cat/src/server.py
delete mode 100644 mcp_center/servers/chmod/README.en.md
delete mode 100644 mcp_center/servers/chmod/README.md
delete mode 100644 mcp_center/servers/chmod/requiremenets.txt
delete mode 100644 mcp_center/servers/chmod/src/server.py
delete mode 100644 mcp_center/servers/chown/README.en.md
delete mode 100644 mcp_center/servers/chown/README.md
delete mode 100644 mcp_center/servers/chown/requiremenets.txt
delete mode 100644 mcp_center/servers/chown/src/server.py
delete mode 100644 mcp_center/servers/disk_manager/README.en.md
delete mode 100644 mcp_center/servers/disk_manager/README.md
delete mode 100644 mcp_center/servers/disk_manager/src/server.py
diff --git a/mcp_center/servers/cache_miss_audit/README.en.md b/mcp_center/servers/cache_miss_audit/README.en.md
deleted file mode 100644
index f10eabc39..000000000
--- a/mcp_center/servers/cache_miss_audit/README.en.md
+++ /dev/null
@@ -1,3 +0,0 @@
-| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
-| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `cache_miss_audit_tool` | Collects whole-system micro-architecture metrics via `perf stat -a -e cache-misses,cycles,instructions sleep 10`, supports both local and remote execution | - `host`: Optional remote hostname/IP, analyse local if omitted | `cache_misses`: Number of cache misses
`cycles`: CPU cycles
`instructions`: Number of instructions
`ipc`: Instructions per cycle
`seconds`: Collection duration (in seconds) |
diff --git a/mcp_center/servers/cache_miss_audit/README.md b/mcp_center/servers/cache_miss_audit/README.md
deleted file mode 100644
index f8dee6950..000000000
--- a/mcp_center/servers/cache_miss_audit/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
-| ----------------------- | ----------------------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
-| `cache_miss_audit_tool` | 通过 `perf stat -a -e cache-misses,cycles,instructions sleep 10` 采集整机的微架构指标,支持本地和远程执行 | - `host`:可选,远程主机名/IP,留空则采集本机 | `cache_misses`:缓存未命中次数
`cycles`:CPU 周期数
`instructions`:指令数
`ipc`:每周期指令数 (Instructions per Cycle)
`seconds`:采集时长(秒) |
diff --git a/mcp_center/servers/cache_miss_audit/src/server.py b/mcp_center/servers/cache_miss_audit/src/server.py
deleted file mode 100644
index f60d3f16b..000000000
--- a/mcp_center/servers/cache_miss_audit/src/server.py
+++ /dev/null
@@ -1,132 +0,0 @@
-from typing import Dict, Any, Optional
-import subprocess
-import tempfile
-import re
-import paramiko
-from mcp.server import FastMCP
-from config.public.base_config_loader import LanguageEnum
-from config.private.cache_miss_audit.config_loader import CacheMissAuditConfig
-
-mcp = FastMCP(
- "Cache Miss Audit Tool MCP Server",
- host="0.0.0.0",
- port=CacheMissAuditConfig().get_config().private_config.port
-)
-
-@mcp.tool(
- name="cache_miss_audit_tool"
- if CacheMissAuditConfig().get_config().public_config.language == LanguageEnum.ZH
- else "cache_miss_audit_tool",
- description="""
- 通过 `perf stat -a -e cache-misses,cycles,instructions sleep 10` 采集整机的微架构指标。
- 参数:
- host : 可选,远程主机 IP/域名;留空则采集本机。
- 返回:
- dict {
- "cache_misses": int,
- "cycles" : int,
- "instructions": int,
- "ipc" : float,
- "seconds" : float
- }
- """
- if CacheMissAuditConfig().get_config().public_config.language == LanguageEnum.ZH
- else """
- Collect whole-system micro-arch metrics via
- `perf stat -a -e cache-misses,cycles,instructions sleep 10`.
- Args:
- host : Optional remote IP/hostname; analyse local if omitted.
- Returns:
- dict {
- "cache_misses": int,
- "cycles" : int,
- "instructions": int,
- "ipc" : float,
- "seconds" : float
- }
- """
-)
-def cache_miss_audit_tool(host: Optional[str] = None) -> Dict[str, Any]:
- """采集并解析 perf stat 结果"""
- cmd = ["perf", "stat", "-a", "-e", "cache-misses,cycles,instructions", "sleep", "10"]
-
- if host is None:
- # 本地执行
- with tempfile.TemporaryDirectory() as tmp:
- completed = subprocess.run(
- cmd,
- stderr=subprocess.PIPE,
- stdout=subprocess.DEVNULL,
- text=True,
- check=True
- )
- return _parse_stat(completed.stderr)
-
- # 远程执行
- config = CacheMissAuditConfig().get_config()
- target_host = None
- for h in config.public_config.remote_hosts:
- if host.strip() == h.name or host.strip() == h.host:
- target_host = h
- break
- if not target_host:
- if config.public_config.language == LanguageEnum.ZH:
- raise ValueError(f"未找到远程主机: {host}")
- else:
- raise ValueError(f"Remote host not found: {host}")
-
- client = paramiko.SSHClient()
- client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- client.connect(
- hostname=target_host.host,
- port=getattr(target_host, "port", 22),
- username=getattr(target_host, "username", None),
- password=getattr(target_host, "password", None),
- key_filename=getattr(target_host, "ssh_key_path", None),
- timeout=10
- )
-
- try:
- perf_cmd_str = " ".join(f"'{c}'" if " " in c else c for c in cmd)
- stdin, stdout, stderr = client.exec_command(perf_cmd_str)
- stdin.close()
- exit_code = stdout.channel.recv_exit_status()
- stat_output = stderr.read().decode("utf-8")
-
- if exit_code != 0 and not stat_output:
- raise RuntimeError(f"Remote perf stat failed, exit={exit_code}")
-
- return _parse_stat(stat_output)
- finally:
- client.close()
-
-
-def _parse_stat(raw: str) -> Dict[str, Any]:
- """
- 解析示例片段:
- 3,361,887 cache-misses
- 792,941,840 cycles
- 292,432,459 instructions # 0.37 insn per cycle
- """
- pat = re.compile(r"^\s*([\d,]+)\s+(cache-misses|cycles|instructions)", re.M)
- hit = {k: 0 for k in ("cache-misses", "cycles", "instructions")}
- for num, key in pat.findall(raw):
- hit[key] = int(num.replace(",", ""))
-
- ipc_match = re.search(r"#\s*([\d.]+)\s*insn per cycle", raw)
- ipc = float(ipc_match.group(1)) if ipc_match else 0.0
-
- sec_match = re.search(r"(\d+\.\d+)\s+seconds time elapsed", raw)
- seconds = float(sec_match.group(1)) if sec_match else 10.0
-
- return {
- "cache_misses": hit["cache-misses"],
- "cycles": hit["cycles"],
- "instructions": hit["instructions"],
- "ipc": ipc,
- "seconds": seconds
- }
-
-
-if __name__ == "__main__":
- mcp.run(transport="sse")
diff --git a/mcp_center/servers/cat/README.en.md b/mcp_center/servers/cat/README.en.md
deleted file mode 100644
index 6be15fcd4..000000000
--- a/mcp_center/servers/cat/README.en.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Specification Document for Cat Command MCP (Management Control Program)
-
-## 1. Service Introduction
-This service is an MCP (Management Control Program) based on the `cat` command for viewing file contents, with the core functionality being the ability to view the contents of specified files.
-
-## 2. Core Tool Information
-| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
-| ---- | ---- | ---- | ---- |
-| `cat_file_view_tool` | Quickly view file content | - `host`: Remote hostname/IP (can be omitted for local file viewing)
- `file`: Path of the file to be viewed (required, cannot be empty) | File content string |
-
-
-## 3. To-be-developed Requirements
\ No newline at end of file
diff --git a/mcp_center/servers/cat/README.md b/mcp_center/servers/cat/README.md
deleted file mode 100644
index ef99f4a61..000000000
--- a/mcp_center/servers/cat/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Cat命令MCP(管理控制程序)规范文档
-## 一、服务介绍
-本服务是一款基于`cat`命令实现文件内容查看的MCP(管理控制程序),核心功能为查看指定文件内容。
-
-## 二、核心工具信息
-| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
-| ---- | ---- | ---- | ---- |
-| `cat_file_view_tool` | 快速查看文件内容 | - `host`:远程主机名/IP(本地文件查看可不填)
- `file`:查看的文件路径(必传,不能为空) | 文件内容字符串 |
-
-## 三、待开发需求
diff --git a/mcp_center/servers/cat/requiremenets.txt b/mcp_center/servers/cat/requiremenets.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/servers/cat/src/server.py b/mcp_center/servers/cat/src/server.py
deleted file mode 100644
index a35c28f93..000000000
--- a/mcp_center/servers/cat/src/server.py
+++ /dev/null
@@ -1,103 +0,0 @@
-from typing import Union
-import paramiko
-import subprocess
-import os
-from mcp.server import FastMCP
-from config.public.base_config_loader import LanguageEnum
-from config.private.cat.config_loader import CatConfig
-mcp = FastMCP("Cat MCP Server", host="0.0.0.0", port=CatConfig().get_config().private_config.port)
-
-
-@mcp.tool(
- name="cat_file_view_tool"
- if CatConfig().get_config().public_config.language == LanguageEnum.ZH
- else
- "cat_file_view_tool",
- description='''
- 使用cat命令查看文件内容
- 1. 输入值如下:
- - host: 远程主机名称或IP地址,若不提供则表示查看本机指定文件内容
- - file: 要查看文件的路径
- 2. 返回值为字符串,为返回的文件内容
- '''
- if CatConfig().get_config().public_config.language == LanguageEnum.ZH
- else
- '''
- Use the cat command to view file contents
- 1. Input values are as follows:
- - host: The name or IP address of the remote host; if not provided, it indicates viewing the contents of a specified file on the local machine
- - file: The path of the file to be viewed
- 2. The return value is a string, which is the content of the returned file
- '''
-
-)
-def cat_file_view_tool(host: Union[str, None] = None, file: str = None) -> str:
- """使用cat命令查看文件内容"""
- if host is None:
- if not file:
- raise ValueError("文件路径不能为空" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
- else "File path cannot be empty")
- try:
- if not os.path.exists(file):
- raise FileNotFoundError(f"文件不存在: {file}" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
- else f"File not found: {file}")
- command = ['cat', f'{file}']
- result = subprocess.run(command, capture_output=True, text=True)
- lines = result.stdout
- return lines
- except Exception as e:
- if CatConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise RuntimeError(f"获取 {command} 输出信息时发生未知错误: {str(e)}") from e
- else:
- raise RuntimeError(f"An unknown error occurred while retrieving the output information for {command} : {str(e)}") from e
- else:
- for host_config in CatConfig().get_config().public_config.remote_hosts:
- if host == host_config.name or host == host_config.host:
- if not file:
- raise ValueError("文件路径不能为空" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
- else "File path cannot be empty")
- try:
- # 建立SSH连接
- ssh = paramiko.SSHClient()
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- ssh.connect(
- hostname=host_config.host,
- port=host_config.port,
- username=host_config.username,
- password=host_config.password
- )
- if not os.path.exists(file):
- raise FileNotFoundError(f"文件不存在: {file}" if CatConfig().get_config().public_config.language == LanguageEnum.ZH
- else f"File not found: {file}")
- command = f'cat {file}'
- stdin, stdout, stderr = ssh.exec_command(command, timeout=10)
- error = stderr.read().decode().strip()
- result = stdout.read().decode().strip()
- if error:
- if CatConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError(f"执行命令 {command} 错误:{error}")
- else:
- raise ValueError(f"Error executing command {command}: {error}")
- return result
- except paramiko.AuthenticationException:
- raise ValueError("SSH认证失败,请检查用户名和密码")
- except paramiko.SSHException as e:
- raise ValueError(f"SSH连接错误: {str(e)}")
- except Exception as e:
- raise ValueError(f"远程执行 {command} 失败: {str(e)}")
- finally:
- # 确保SSH连接关闭
- if ssh is not None:
- try:
- ssh.close()
- except Exception:
- pass
- if CatConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError(f"未找到远程主机: {host}")
- else:
- raise ValueError(f"Remote host not found: {host}")
-
-
-if __name__ == "__main__":
- # Initialize and run the server
- mcp.run(transport='sse')
diff --git a/mcp_center/servers/chmod/README.en.md b/mcp_center/servers/chmod/README.en.md
deleted file mode 100644
index 92bd927f5..000000000
--- a/mcp_center/servers/chmod/README.en.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Specification Document for chmod Command MCP (Management Control Program)
-
-## 1. Service Introduction
-This service is an MCP (Management Control Program) based on the `chmod` command, designed to change the permissions of files or directories. Its core function is to modify the permissions of specified files or directories to meet permission management and resource allocation requirements.
-
-## 2. Core Tool Information
-| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
-| ---- | ---- | ---- | ---- |
-| `chmod_change_mode_tool` | Change the permissions of a file or directory | - `host`: Remote hostname/IP (optional for local operations)
- `mode`: Permission mode (e.g., 755, 644, etc.)(Required, cannot be empty)
- `file`: Target file or directory path(Required, cannot be empty) | Boolean value indicating whether the operation was successful |
-
-## 3. To-be-developed Requirements
diff --git a/mcp_center/servers/chmod/README.md b/mcp_center/servers/chmod/README.md
deleted file mode 100644
index d911283a5..000000000
--- a/mcp_center/servers/chmod/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Chown命令MCP(管理控制程序)规范文档
-## 一、服务介绍
-本服务是一款基于 `chmod` 命令实现文件或目录权限变更的 MCP(管理控制程序),核心功能为修改指定文件或目录的权限,以满足权限管理和资源分配的需求。
-
-## 二、核心工具信息
-| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
-| ---- | ---- | ---- | ---- |
-| `chmod_change_mode_tool` | 修改文件或目录的权限 | - `host`:远程主机名/IP(本地操作可不填)
- `mode`:权限模式(如755、644等)(必传,不可为空)
- `file`:目标文件或目录路径(必传,不可为空) | 布尔值,表示操作是否成功 |
-
-## 三、待开发需求
\ No newline at end of file
diff --git a/mcp_center/servers/chmod/requiremenets.txt b/mcp_center/servers/chmod/requiremenets.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/servers/chmod/src/server.py b/mcp_center/servers/chmod/src/server.py
deleted file mode 100644
index 03521c0e7..000000000
--- a/mcp_center/servers/chmod/src/server.py
+++ /dev/null
@@ -1,83 +0,0 @@
-from typing import Union
-import paramiko
-import subprocess
-from mcp.server import FastMCP
-from config.public.base_config_loader import LanguageEnum
-from config.private.chmod.config_loader import ChmodConfig
-
-mcp = FastMCP("Chmod MCP Server", host="0.0.0.0", port=ChmodConfig().get_config().private_config.port)
-
-@mcp.tool(
- name="chmod_change_mode_tool"
- if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH
- else
- "chmod_change_mode_tool",
- description='''
- 使用chmod命令设置文件或目录权限
- 1. 输入值如下:
- - host: 远程主机名称或IP地址,若不提供则表示对本机文件进行操作
- - mode: 权限模式(如755、644等)
- - file: 要修改的目标文件或目录
- 2. 返回值为布尔值,表示权限是否修改成功
- '''
- if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH
- else
- '''
- Use the `chmod` command to set the permission of a file or directory.
- 1. Input values are as follows:
- - host: Remote host name or IP address, if not provided, it means to modify the file on the local machine
- - mode: Permission mode (such as 755, 644, etc.)
- - file: Target file or directory to modify
- 2. Return value is a boolean value indicating whether the permission is modified successfully
- '''
-)
-def chmod_change_mode_tool(host: Union[str, None] = None, mode: str = None, file: str = None) -> bool:
- """使用chmod命令设置文件或目录权限"""
- if host is None:
- if not mode or not file:
- if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError("chmod要修改的目标文件及权限模式不能为空")
- else:
- raise ValueError("The target file and permission mode for chmod cannot be empty")
- try:
- command = ['chmod', mode, file]
- result = subprocess.run(command, capture_output=True, text=True)
- return result.returncode == 0
- except Exception as e:
- if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise RuntimeError(f"执行 {command} 命令时发生未知错误: {str(e)}") from e
- else:
- raise RuntimeError(f"An unknown error occurred while executing the {command} command: {str(e)}") from e
- else:
- for host_config in ChmodConfig().get_config().public_config.remote_hosts:
- if host == host_config.name or host == host_config.host:
- try:
- ssh = paramiko.SSHClient()
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- ssh.connect(
- hostname=host_config.host,
- port=host_config.port,
- username=host_config.username,
- password=host_config.password
- )
- if not mode or not file:
- if ChmodConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError("chmod要修改的目标文件及权限模式不能为空")
- else:
- raise ValueError("The target file and permission mode for chmod cannot be empty")
- command = f'chmod {mode} {file}'
- stdin, stdout, stderr = ssh.exec_command(command, timeout=20)
- error = stderr.read().decode().strip()
- return not error
- except Exception as e:
- raise ValueError(f"远程执行 {command} 失败: {str(e)}")
- finally:
- if ssh is not None:
- try:
- ssh.close()
- except Exception:
- pass
- raise ValueError(f"未找到远程主机: {host}")
-
-if __name__ == "__main__":
- mcp.run(transport='sse')
\ No newline at end of file
diff --git a/mcp_center/servers/chown/README.en.md b/mcp_center/servers/chown/README.en.md
deleted file mode 100644
index e3cff8cce..000000000
--- a/mcp_center/servers/chown/README.en.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Specification Document for Chown Command MCP (Management Control Program)
-
-## 1. Service Introduction
-This service is an MCP (Management Control Program) based on the `chown` command, designed to change the owner and group of files or directories. Its core function is to modify the specified file or directory's owner and associated group to meet permission management and resource allocation requirements.
-
-## 2. Core Tool Information
-| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
-| ---- | ---- | ---- | ---- |
-| `chown_change_owner_tool` | Change the owner and group of a file or directory | - `host`: Remote hostname/IP (optional for local operations)
- `owner_group`: File owner and associated group (required, cannot be empty)
- `file`: Path of the target file to modify (required, cannot be empty) | Boolean value indicating whether the operation was successful |
-
-## 3. To-be-developed Requirements
diff --git a/mcp_center/servers/chown/README.md b/mcp_center/servers/chown/README.md
deleted file mode 100644
index e93a513c5..000000000
--- a/mcp_center/servers/chown/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Chown命令MCP(管理控制程序)规范文档
-## 一、服务介绍
-本服务是一款基于 `chown` 命令实现文件或目录所有者变更的 MCP(管理控制程序),核心功能为修改指定文件或目录的所有者和所属组,以满足权限管理和资源分配的需求。
-
-## 二、核心工具信息
-| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
-| ---- | ---- | ---- | ---- |
-| `chown_change_owner_tool` | 修改文件或目录的所有者和所属组 | - `host`:远程主机名/IP(本地操作可不填)
- `owner_group`:文件所有者和文件关联组(必传,不可为空)
- `file`要修改目标文件的路径(必传,不可为空) | 布尔值,表示操作是否成功 |
-
-## 三、待开发需求
\ No newline at end of file
diff --git a/mcp_center/servers/chown/requiremenets.txt b/mcp_center/servers/chown/requiremenets.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/servers/chown/src/server.py b/mcp_center/servers/chown/src/server.py
deleted file mode 100644
index 17de49682..000000000
--- a/mcp_center/servers/chown/src/server.py
+++ /dev/null
@@ -1,107 +0,0 @@
-from typing import Union
-import paramiko
-import subprocess
-from mcp.server import FastMCP
-from config.public.base_config_loader import LanguageEnum
-from config.private.chown.config_loader import ChownConfig
-mcp = FastMCP("Chown MCP Server", host="0.0.0.0", port=ChownConfig().get_config().private_config.port)
-
-
-@mcp.tool(
- name="chown_change_owner_tool"
- if ChownConfig().get_config().public_config.language == LanguageEnum.ZH
- else
- "chown_change_owner_tool",
- description='''
- 使用chown命令设置文件所有者和文件关联组
- 1. 输入值如下:
- - host: 远程主机名称或IP地址,若不提供则表示对本机文件进行修改
- - owner_group: 文件所有者和文件关联组
- - file: 要修改目标文件的路径
- 2. 返回值为布尔值,表示文件所有者和文件关联组是否修改成功
- '''
- if ChownConfig().get_config().public_config.language == LanguageEnum.ZH
- else
- '''
- Use the `chown` command to set the file owner and associated group of a file.
- 1. Input values are as follows:
- - host: The name or IP address of the remote host. If not provided, it indicates that the file on the local machine is to be modified.
- - owner_group: File owner and associated group of the file
- - file: The path of the target file to be modified
- 2. The return value is a boolean value, indicating whether the file owner and associated group were modified successfully
- '''
-)
-def chown_change_owner_tool(host: Union[str, None] = None, owner_group: str = None, file: str = None) -> bool:
- """使用chown命令设置文件所有者和文件关联组"""
- if host is None:
- if not owner_group or not file :
- if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError("chown要修改的目标文件及文件所有者不能为空")
- else:
- raise ValueError("The target file and file owner for chown cannot be empty")
- try:
- command = ['chown']
- command.append(owner_group)
- command.append(file)
- result = subprocess.run(command, capture_output=True, text=True)
- returncode = result.returncode
- if returncode == 0:
- return True
- else:
- return False
- except Exception as e:
- if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise RuntimeError(f"执行 {command} 命令时发生未知错误: {str(e)}") from e
- else:
- raise RuntimeError(f"An unknown error occurred while obtaining memory information: {str(e)}") from e
- else:
- for host_config in ChownConfig().get_config().public_config.remote_hosts:
- if host == host_config.name or host == host_config.host:
- try:
- # 建立SSH连接
- ssh = paramiko.SSHClient()
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- ssh.connect(
- hostname=host_config.host,
- port=host_config.port,
- username=host_config.username,
- password=host_config.password
- )
- if not owner_group or not file :
- if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError("chown要修改的目标文件及文件所有者不能为空")
- else:
- raise ValueError("The target file and file owner for chown cannot be empty")
- command = f'chown {owner_group} {file}'
- stdin, stdout, stderr = ssh.exec_command(command, timeout=20)
- error = stderr.read().decode().strip()
-
- if error:
- if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError(f"执行 {command} 命令失败: {error}")
- else:
- raise ValueError(f"Command {command} execution failed: {error}")
- else:
- return True
- except paramiko.AuthenticationException:
- raise ValueError("SSH认证失败,请检查用户名和密码")
- except paramiko.SSHException as e:
- raise ValueError(f"SSH连接错误: {str(e)}")
- except Exception as e:
- raise ValueError(f"远程执行 {command} 失败: {str(e)}")
- finally:
- # 确保SSH连接关闭
- if ssh is not None:
- try:
- ssh.close()
- except Exception:
- pass
- if ChownConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError(f"未找到远程主机: {host}")
- else:
- raise ValueError(f"Remote host not found: {host}")
-
-
-if __name__ == "__main__":
- # Initialize and run the server
- mcp.run(transport='sse')
diff --git a/mcp_center/servers/disk_manager/README.en.md b/mcp_center/servers/disk_manager/README.en.md
deleted file mode 100644
index 20784c7c6..000000000
--- a/mcp_center/servers/disk_manager/README.en.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# System Information Collection and Monitoring MCP (Management Control Program) Specification Document
-
-## 1. Service Introduction
-This service is a comprehensive system information collection and monitoring MCP (Management Control Program) based on the `psutil` library, `SSH` protocol, and system native commands (such as `top`, `ps`, `free`, etc.). It enables accurate collection of multi-dimensional information including **processes, CPU, memory, disks, networks, operating systems, and DNS** from local machines and remote target devices. It also supports network connectivity testing and performance data tracking, providing complete basic data support for system resource monitoring, troubleshooting, and security analysis. The service is adapted to both Chinese and English configurations to meet the needs of different scenarios.
-
-
-## 2. Core Tool Information
-| Tool Name | Tool Function | Core Input Parameters | Key Return Content |
-| ---- | ---- | ---- | ---- |
-| `top_collect_tool` | Obtains information about the **top k memory-consuming processes** on the target device (local/remote), where k supports custom configuration | - `host`: Remote host name/IP (can be omitted for local collection)
- `k`: Number of processes to obtain (default 5) | Process list (including `pid` process ID, `name` process name, `memory` memory usage (MB)) |
-| `get_process_info_tool` | Queries **detailed running information** of a specified PID process, supporting both local and remote process information retrieval | - `host`: Remote host name/IP (can be omitted for local query)
- `pid`: Process ID to query (required, must be a positive integer) | Detailed process dictionary (including `status`, `create_time`, `cpu_times`, `memory_info`, `open_files` list, `connections`, etc.) |
-| `change_name_to_pid_tool` | Reverse queries the corresponding **PID list** based on process name, addressing the scenario of "known process name to find ID" | - `host`: Remote host name/IP (can be omitted for local query)
- `name`: Name of the process to query (required, cannot be empty) | Space-separated PID string (e.g., "1234 5678") |
-| `get_cpu_info_tool` | Collects CPU hardware and usage status information of the target device, including core count, frequency, and core utilization | - `host`: Remote host name/IP (can be omitted for local collection) | CPU information dictionary (including `physical_cores`, `total_cores`, `max_frequency` (MHz), `cpu_usage` of each core (%), etc.) |
-| `memory_anlyze_tool` | Analyzes memory usage of the target device, calculating total memory, available memory, and usage rate | - `host`: Remote host name/IP (can be omitted for local collection) | Memory information dictionary (including `total` memory (MB), `available` memory (MB), `used` memory (MB), `percent` memory usage (%), etc.) |
-| `get_disk_info_tool` | Collects disk partition information and capacity usage status of the target device, filtering temporary file systems (tmpfs/devtmpfs) | - `host`: Remote host name/IP (can be omitted for local collection) | Disk list (including `device` name, `mountpoint`, `fstype`, `total` capacity (GB), `percent` disk usage (%), etc.) |
-| `get_os_info_tool` | Obtains operating system type and version information of the target device, compatible with multiple systems such as OpenEuler, Ubuntu, and CentOS | - `host`: Remote host name/IP (can be omitted for local collection) | Operating system information string (e.g., "OpenEuler 22.03 LTS" or "Ubuntu 20.04.5 LTS") |
-| `get_network_info_tool` | Collects network interface information of the target device, including IP address, MAC address, and interface status | - `host`: Remote host name/IP (can be omitted for local collection) | Network interface list (including `interface` name, `ip_address`, `mac_address`, `is_up` status (boolean), etc.) |
-| `write_report_tool` | Writes system information analysis results to a local report file, automatically generating a timestamped file path | - `report`: Report content string (required, cannot be empty) | Report file path string (e.g., "/reports/system_report_20240520_153000.txt") |
-| `telnet_test_tool` | Tests Telnet connectivity to a specified port on the target host, verifying port status | - `host`: Remote host name/IP (required)
- `port`: Port number (1-65535, required) | Connectivity result (boolean: `True` for success, `False` for failure) |
-| `ping_test_tool` | Tests ICMP Ping connectivity to the target host, verifying host network reachability | - `host`: Remote host name/IP (required) | Connectivity result (boolean: `True` for success, `False` for failure) |
-| `get_dns_info_tool` | Collects DNS configuration information of the target device, including DNS server list and search domains | - `host`: Remote host name/IP (can be omitted for local collection) | DNS information dictionary (including `nameservers` list, `search` domains list) |
-| `perf_data_tool` | Collects real-time performance data of the target device, supporting "specified process" or "entire system" performance monitoring | - `host`: Remote host name/IP (can be omitted for local collection)
- `pid`: Process ID (can be omitted for full system monitoring) | Performance data dictionary (including `cpu_usage` (%), `memory_usage` (%), `io_counters` statistics) |
-
-
-## 3. Requirements to be Developed
-1. **Intelligent Malicious Process Identification**: Based on the basic data from `perf_data_tool` and `top_collect_tool`, add process risk assessment dimensions (such as abnormal CPU usage fluctuations, memory leak characteristics, process path legitimacy, unsigned process identification, etc.), establish a malicious process scoring model, and automatically mark high-risk processes and trigger alarms.
-
-2. **Performance Data Visualization and Trend Analysis**: Add historical performance data storage (e.g., MySQL/InfluxDB), develop time-series chart functions (such as CPU/memory usage trend charts, process IO change curves), and support time-range queries and export of analysis reports.
-
-3. **Bulk Monitoring and Management of Multiple Hosts**: Expand remote host configuration functions to support bulk import of host lists and group management, add "one-click bulk collection" and "abnormal host filtering" functions to improve monitoring efficiency of multi-device clusters.
-
-4. **Custom Alarm Rule Configuration**: Allow users to customize threshold alarms (e.g., CPU usage exceeding 80% for 5 consecutive minutes, disk usage exceeding 90%), support multi-channel alarm notifications such as email, SMS, and enterprise WeChat, to achieve proactive fault warning.
\ No newline at end of file
diff --git a/mcp_center/servers/disk_manager/README.md b/mcp_center/servers/disk_manager/README.md
deleted file mode 100644
index dc3ec52c8..000000000
--- a/mcp_center/servers/disk_manager/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 系统信息采集与监控MCP(管理控制程序)规范文档
-## 一、服务介绍
-本服务是一款功能全面的系统信息采集与监控MCP(管理控制程序),基于`psutil`库、`SSH`协议及系统原生命令(如`top`、`ps`、`free`等),实现对本地机器及远程目标设备的**进程、CPU、内存、磁盘、网络、操作系统、DNS** 等多维度信息的精准采集,同时支持网络连通性测试与性能数据跟踪,为系统资源监控、故障排查、安全分析提供完整的基础数据支撑,适配中文与英文双语言配置,满足不同场景下的使用需求。
-
-
-## 二、核心工具信息
-| 工具名称 | 工具功能 | 核心输入参数 | 关键返回内容 |
-| ---- | ---- | ---- | ---- |
-| `top_collect_tool` | 获取目标设备(本地/远程)中**内存占用排名前k个**的进程信息,k支持自定义配置 | - `host`:远程主机名/IP(本地采集可不填)
- `k`:需获取的进程数量(默认5) | 进程列表(含`pid`进程ID、`name`进程名称、`memory`内存使用量(MB)) |
-| `get_process_info_tool` | 查询指定PID进程的**详细运行信息**,支持本地与远程进程信息获取 | - `host`:远程主机名/IP(本地查询可不填)
- `pid`:需查询的进程ID(必传,且为正整数) | 进程详细字典(含`status`状态、`create_time`创建时间、`cpu_times`CPU时间、`memory_info`内存信息、`open_files`打开文件列表、`connections`网络连接等) |
-| `change_name_to_pid_tool` | 根据进程名称反向查询对应的**PID列表**,解决“已知进程名查ID”的场景需求 | - `host`:远程主机名/IP(本地查询可不填)
- `name`:需查询的进程名称(必传,不能为空) | 以空格分隔的PID字符串(如“1234 5678”) |
-| `get_cpu_info_tool` | 采集目标设备的CPU硬件与使用状态信息,包括核心数、频率、核心使用率 | - `host`:远程主机名/IP(本地采集可不填) | CPU信息字典(含`physical_cores`物理核心数、`total_cores`逻辑核心数、`max_frequency`最大频率(MHz)、`cpu_usage`各核心使用率(%)等) |
-| `memory_anlyze_tool` | 分析目标设备的内存使用情况,计算总内存、可用内存及使用率 | - `host`:远程主机名/IP(本地采集可不填) | 内存信息字典(含`total`总内存(MB)、`available`可用内存(MB)、`used`已用内存(MB)、`percent`内存使用率(%)等) |
-| `get_disk_info_tool` | 采集目标设备的磁盘分区信息与容量使用状态,过滤临时文件系统(tmpfs/devtmpfs) | - `host`:远程主机名/IP(本地采集可不填) | 磁盘列表(含`device`设备名、`mountpoint`挂载点、`fstype`文件系统类型、`total`总容量(GB)、`percent`磁盘使用率(%)等) |
-| `get_os_info_tool` | 获取目标设备的操作系统类型与版本信息,适配OpenEuler、Ubuntu、CentOS等多系统 | - `host`:远程主机名/IP(本地采集可不填) | 操作系统信息字符串(如“OpenEuler 22.03 LTS”或“Ubuntu 20.04.5 LTS”) |
-| `get_network_info_tool` | 采集目标设备的网络接口信息,包括IP地址、MAC地址、接口启用状态 | - `host`:远程主机名/IP(本地采集可不填) | 网络接口列表(含`interface`接口名、`ip_address`IP地址、`mac_address`MAC地址、`is_up`接口是否启用(布尔值)等) |
-| `write_report_tool` | 将系统信息分析结果写入本地报告文件,自动生成带时间戳的文件路径 | - `report`:报告内容字符串(必传,不能为空) | 报告文件路径字符串(如“/reports/system_report_20240520_153000.txt”) |
-| `telnet_test_tool` | 测试目标主机指定端口的Telnet连通性,验证端口开放状态 | - `host`:远程主机名/IP(必传)
- `port`:端口号(1-65535,必传) | 连通性结果(布尔值:`True`成功,`False`失败) |
-| `ping_test_tool` | 测试目标主机的ICMP Ping连通性,验证主机网络可达性 | - `host`:远程主机名/IP(必传) | 连通性结果(布尔值:`True`成功,`False`失败) |
-| `get_dns_info_tool` | 采集目标设备的DNS配置信息,包括DNS服务器列表与搜索域 | - `host`:远程主机名/IP(本地采集可不填) | DNS信息字典(含`nameservers`DNS服务器列表、`search`搜索域列表) |
-| `perf_data_tool` | 采集目标设备的实时性能数据,支持“指定进程”或“全系统”性能监控 | - `host`:远程主机名/IP(本地采集可不填)
- `pid`:进程ID(全系统监控可不填) | 性能数据字典(含`cpu_usage`CPU使用率(%)、`memory_usage`内存使用率(%)、`io_counters`I/O统计信息) |
-
-
-## 三、待开发需求
-1. **恶意进程智能识别功能**:基于`perf_data_tool`与`top_collect_tool`的基础数据,新增进程风险评估维度(如异常CPU占用波动、内存泄漏特征、进程路径合法性、无签名进程识别等),建立恶意进程评分模型,自动标记高风险进程并触发告警。
-2. **性能数据可视化与趋势分析**:新增历史性能数据存储(如MySQL/InfluxDB),开发时间序列图表功能(如CPU/内存使用率趋势图、进程IO变化曲线),支持按时间范围查询与导出分析报告。
-3. **多主机批量监控与管理**:扩展远程主机配置功能,支持批量导入主机列表、分组管理,新增“一键批量采集”“异常主机筛选”功能,提升多设备集群的监控效率。
-4. **自定义告警规则配置**:允许用户自定义阈值告警(如CPU使用率持续5分钟超80%、磁盘使用率超90%),支持邮件、短信、企业微信等多渠道告警通知,实现主动故障预警。
\ No newline at end of file
diff --git a/mcp_center/servers/disk_manager/src/server.py b/mcp_center/servers/disk_manager/src/server.py
deleted file mode 100644
index 675215fc0..000000000
--- a/mcp_center/servers/disk_manager/src/server.py
+++ /dev/null
@@ -1,289 +0,0 @@
-from typing import Union, List, Dict, Any
-import paramiko
-import subprocess
-import re
-from mcp.server import FastMCP
-from config.public.base_config_loader import LanguageEnum
-from config.private.disk_manager.config_loader import DiskManagerConfig
-mcp = FastMCP("Remote info MCP Server", host="0.0.0.0", port=DiskManagerConfig().get_config().private_config.port)
-
-
-@mcp.tool(
- name="get_disk_status_tool"
- if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
- else "get_disk_status_tool",
- description='''
- 使用iostat命令获取磁盘使用情况
- 输入值如下:
- - host: 远程主机名或IP地址, 不传表示获取本机磁盘使用情况
- - time_gap: 采样间隔, 默认为0.1秒
- - count: 采样次数, 默认为1次
- 输出值如下:
- - device: 设备名
- - tps: 每秒传输次数
- - kB_read/s: 每秒读取的千字节数
- - kB_wrtn/s: 每秒写入的千字节数
- - KB_dscd/s: 每秒丢弃的千字节数
- - kB_read: 读取的千字节总数
- - kB_wrtn: 写入的千字节总数
- - KB_dscd: 丢弃的千字节总数
- ''' if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
- else '''
- Use the iostat command to get disk usage
- Input values are as follows:
- - host: Remote hostname or IP address, not passed to get local disk usage
- - time_gap: Sampling interval, default is 0.1 seconds
- - count: Number of samples, default is 1 time
- Output values are as follows:
- - device: Device name
- - tps: Transfers per second
- - kB_read/s: Kilobytes read per second
- - kB_wrtn/s: Kilobytes written per second
- - KB_dscd/s: Kilobytes discarded per second
- - kB_read: Total kilobytes read
- - kB_wrtn: Total kilobytes written
- - KB_dscd: Total kilobytes discarded
- ''',
-
-)
-async def get_disk_status(host: Union[str, None] = None,
- time_gap: int = 1,
- count: int = 1) -> List[Dict[str, Any]]:
- """使用iostat命令获取磁盘使用情况"""
- if time_gap <= 0 or count <= 0:
- raise ValueError("time_gap和count必须为正数")
- if host is None:
- # 获取本机磁盘使用情况
- try:
- result = subprocess.run(['iostat', '-d', str(time_gap), str(count)],
- capture_output=True, text=True, check=True)
- output = result.stdout
- lines = output.strip().split('\n')
- disk_info_dict = {}
- for line in lines:
- parts = line.split()
- if len(parts) >= 8:
- try:
- disk_info = {
- 'device': parts[0],
- 'tps': float(parts[1]),
- 'kB_read/s': float(parts[2]),
- 'kB_wrtn/s': float(parts[3]),
- 'KB_dscd/s': float(parts[4]),
- 'kB_read': int(parts[5]),
- 'kB_wrtn': int(parts[6]),
- 'KB_dscd': int(parts[7])
- }
- if parts[0] not in disk_info_dict:
- disk_info_dict[parts[0]] = []
- disk_info_dict[parts[0]].append(disk_info)
- except ValueError:
- continue
- # 计算平均值
- disk_info = []
- for device, infos in disk_info_dict.items():
- avg_info = {
- 'device': device,
- 'tps': sum(info['tps'] for info in infos) / len(infos),
- 'kB_read/s': sum(info['kB_read/s'] for info in infos) / len(infos),
- 'kB_wrtn/s': sum(info['kB_wrtn/s'] for info in infos) / len(infos),
- 'KB_dscd/s': sum(info['KB_dscd/s'] for info in infos) / len(infos),
- 'kB_read': sum(info['kB_read'] for info in infos),
- 'kB_wrtn': sum(info['kB_wrtn'] for info in infos),
- 'KB_dscd': sum(info['KB_dscd'] for info in infos)
- }
- disk_info.append(avg_info)
- return disk_info
- except Exception as e:
- return [{"error": str(e)}]
- else:
- # 获取远程主机磁盘使用情况
- try:
- for host_config in DiskManagerConfig().get_config().public_config.remote_hosts:
- if host == host_config.name or host == host_config.host:
- ssh = paramiko.SSHClient()
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- ssh.connect(
- hostname=host_config.host,
- port=host_config.port,
- username=host_config.username,
- password=host_config.password
- )
- stdin, stdout, stderr = ssh.exec_command('iostat -d {} {}'.format(time_gap, count))
- output = stdout.read().decode()
- error = stderr.read().decode()
- if error:
- raise ValueError(f"远程命令执行错误: {error}")
- lines = output.strip().split('\n')
- disk_info_dict = {}
- for line in lines:
- parts = line.split()
- if len(parts) >= 8:
- try:
- disk_info = {
- 'device': parts[0],
- 'tps': float(parts[1]),
- 'kB_read/s': float(parts[2]),
- 'kB_wrtn/s': float(parts[3]),
- 'KB_dscd/s': float(parts[4]),
- 'kB_read': int(parts[5]),
- 'kB_wrtn': int(parts[6]),
- 'KB_dscd': int(parts[7])
- }
- if parts[0] not in disk_info_dict:
- disk_info_dict[parts[0]] = []
- disk_info_dict[parts[0]].append(disk_info)
- except ValueError:
- continue
- # 计算平均值
- disk_info = []
- for device, infos in disk_info_dict.items():
- avg_info = {
- 'device': device,
- 'tps': sum(info['tps'] for info in infos) / len(infos),
- 'kB_read/s': sum(info['kB_read/s'] for info in infos) / len(infos),
- 'kB_wrtn/s': sum(info['kB_wrtn/s'] for info in infos) / len(infos),
- 'KB_dscd/s': sum(info['KB_dscd/s'] for info in infos) / len(infos),
- 'kB_read': sum(info['kB_read'] for info in infos),
- 'kB_wrtn': sum(info['kB_wrtn'] for info in infos),
- 'KB_dscd': sum(info['KB_dscd'] for info in infos)
- }
- disk_info.append(avg_info)
- return disk_info
- if DiskManagerConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError(f"未找到远程主机: {host}")
- else:
- raise ValueError(f"Remote host not found: {host}")
- except paramiko.AuthenticationException:
- raise ValueError("SSH认证失败,请检查用户名和密码")
- except paramiko.SSHException as e:
- raise ValueError(f"SSH连接错误: {str(e)}")
- except Exception as e:
- raise ValueError(f"获取远程CPU信息失败: {str(e)}")
- finally:
- # 确保SSH连接关闭
- if ssh is not None:
- try:
- ssh.close()
- except Exception:
- pass
-
-
-@mcp.tool(
- name="disk_io_insight_tool"
- if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
- else "disk_io_insight_tool",
- description='''
- 使用iotop命令获取磁盘IO使用情况
- 输入值如下:
- - host: 远程主机名或IP地址, 不传表示获取本机磁盘IO使用情况
- - time_gap: 采样间隔, 默认为1秒
- - count: 采样次数, 默认为1次
- 输出值如下:
- - pid: 进程ID
- - user: 进程所属用户
- - disk_read: 磁盘读取速率
- - disk_write: 磁盘写入速率
- - swapin: 交换区使用率
- - io: IO使用率
- - command: 进程命令
- ''' if DiskManagerConfig().get_config().public_config.language == LanguageEnum.EN
- else '''
- Use the iotop command to get disk IO usage
- Input values are as follows:
- - host: Remote hostname or IP address, not passed to get local disk IO usage
- - time_gap: Sampling interval, default is 1 second
- - count: Number of samples, default is 1 time
- Output values are as follows:
- - pid: Process ID
- - user: Process owner
- - disk_read: Disk read rate
- - disk_write: Disk write rate
- - swapin: Swap usage
- - io: IO usage
- - command: Process command
- '''
-)
-def disk_io_insight(host: Union[str, None] = None,
- time_gap: int = 1,
- count: int = 1) -> List[Dict[str, Any]]:
- """使用iotop命令获取磁盘IO使用情况"""
- if time_gap <= 0 or count <= 0:
- raise ValueError("time_gap和count必须为正数")
- if host is None:
- # 获取本机磁盘IO使用情况
- try:
- result = subprocess.run(
- ['iotop', '-b', '-n', str(count), '-d', str(time_gap)],
- capture_output=True,
- text=True,
- check=True
- )
- output = result.stdout
- lines = output.strip().split('\n')
- except Exception as e:
- return [{"error": str(e)}]
- else:
- # 获取远程主机磁盘IO使用情况
- try:
- lines = None
- for host_config in DiskManagerConfig().get_config().public_config.remote_hosts:
- if host == host_config.name or host == host_config.host:
- ssh = paramiko.SSHClient()
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- ssh.connect(
- hostname=host_config.host,
- port=host_config.port,
- username=host_config.username,
- password=host_config.password
- )
- stdin, stdout, stderr = ssh.exec_command('iotop -b -n {} -d {}'.format(count, time_gap))
- output = stdout.read().decode()
- error = stderr.read().decode()
- if error:
- raise ValueError(f"远程命令执行错误: {error}")
- lines = output.strip().split('\n')
- if lines is None:
- if DiskManagerConfig().get_config().public_config.language == LanguageEnum.ZH:
- raise ValueError(f"未找到远程主机: {host}")
- else:
- raise ValueError(f"Remote host not found: {host}")
- except paramiko.AuthenticationException:
- raise ValueError("SSH认证失败,请检查用户名和密码")
- except paramiko.SSHException as e:
- raise ValueError(f"SSH连接错误: {str(e)}")
- try:
- io_info = []
- # 处理PID、优先级、用户、磁盘读写速率(含单位)、swapin、IO、命令
- pattern = r'^\s*(\d+)\s+(\S+)\s+(\S+)\s+(\d+\.\d+)\s+(\S+)\s+(\d+\.\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*?)\s*$'
-
- # 跳过标题行(通常是前3行)
- for line in lines:
- line = line.strip()
- if not line:
- continue
-
- match = re.match(pattern, line)
- if match:
- try:
- io_data = {
- 'pid': int(match.group(1)),
- 'priority': match.group(2), # 如be/4
- 'user': match.group(3),
- 'disk_read': f"{match.group(4)} {match.group(5)}", # 组合数值和单位
- 'disk_write': f"{match.group(6)} {match.group(7)}", # 组合数值和单位
- 'swapin': match.group(8),
- 'io': match.group(9),
- 'command': match.group(10)
- }
- io_info.append(io_data)
- except ValueError:
- continue
- return io_info
- except Exception as e:
- return [{"error": str(e)}]
-
-
-if __name__ == "__main__":
- # Initialize and run the server
- mcp.run(transport='sse')
--
Gitee
From f55b57f88c723d18ad8bed15f2f5c0b44f8509a5 Mon Sep 17 00:00:00 2001
From: cui-gaoleng <562344211@qq.com>
Date: Fri, 14 Nov 2025 15:18:32 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=8F=90=E4=BA=A4?=
=?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8F=EF=BC=8C=E6=95=85=E8=BF=9B=E8=A1=8C?=
=?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../private/cache_miss_audit/config.toml | 0
.../private/cache_miss_audit/config_loader.py | 26 ---
mcp_center/config/private/cat/config.toml | 0
.../config/private/cat/config_loader.py | 26 ---
mcp_center/config/private/chmod/config.toml | 0
.../config/private/chmod/config_loader.py | 26 ---
mcp_center/config/private/chown/config.toml | 0
.../config/private/chown/config_loader.py | 26 ---
.../config/private/cmd_generator/config.toml | 0
.../private/cmd_generator/config_loader.py | 31 ---
.../config/private/disk_manager/config.toml | 0
.../private/disk_manager/config_loader.py | 26 ---
mcp_center/config/private/docker/config.toml | 0
.../config/private/docker/config_loader.py | 26 ---
mcp_center/config/private/echo/config.toml | 0
.../config/private/echo/config_loader.py | 26 ---
mcp_center/config/private/ethtool/config.toml | 0
.../config/private/ethtool/config_loader.py | 26 ---
.../config/private/fallocate/config.toml | 0
.../config/private/fallocate/config_loader.py | 26 ---
.../private/file_content_tool/config.toml | 0
.../file_content_tool/config_loader.py | 26 ---
.../config/private/file_transfer/config.toml | 0
.../private/file_transfer/config_loader.py | 26 ---
mcp_center/config/private/find/config.toml | 0
.../config/private/find/config_loader.py | 26 ---
.../config/private/firewalld/config.toml | 0
.../config/private/firewalld/config_loader.py | 26 ---
.../config/private/flame_graph/config.toml | 0
.../private/flame_graph/config_loader.py | 26 ---
mcp_center/config/private/free/config.toml | 0
.../config/private/free/config_loader.py | 26 ---
.../private/func_timing_trace/config.toml | 0
.../func_timing_trace/config_loader.py | 26 ---
mcp_center/config/private/grep/config.toml | 0
.../config/private/grep/config_loader.py | 26 ---
mcp_center/config/private/head/config.toml | 0
.../config/private/head/config_loader.py | 26 ---
.../config/private/hotspot_trace/config.toml | 0
.../private/hotspot_trace/config_loader.py | 26 ---
.../config/private/ifconfig/config.toml | 0
.../config/private/ifconfig/config_loader.py | 26 ---
mcp_center/config/private/iftop/config.toml | 0
.../config/private/iftop/config_loader.py | 26 ---
.../config/private/iptables/config.toml | 0
.../config/private/iptables/config_loader.py | 26 ---
mcp_center/config/private/kill/config.toml | 0
.../config/private/kill/config_loader.py | 26 ---
mcp_center/config/private/ls/config.toml | 0
mcp_center/config/private/ls/config_loader.py | 26 ---
mcp_center/config/private/lscpu/config.toml | 0
.../config/private/lscpu/config_loader.py | 26 ---
mcp_center/config/private/lsof/config.toml | 0
.../config/private/lsof/config_loader.py | 26 ---
mcp_center/config/private/mkdir/config.toml | 0
.../config/private/mkdir/config_loader.py | 26 ---
mcp_center/config/private/mv/config.toml | 0
mcp_center/config/private/mv/config_loader.py | 26 ---
mcp_center/config/private/netstat/config.toml | 0
.../config/private/netstat/config_loader.py | 26 ---
mcp_center/config/private/nload/config.toml | 0
.../config/private/nload/config_loader.py | 26 ---
mcp_center/config/private/nmap/config.toml | 0
.../config/private/nmap/config_loader.py | 26 ---
mcp_center/config/private/nohup/config.toml | 0
.../config/private/nohup/config_loader.py | 26 ---
mcp_center/config/private/npu/config.toml | 0
.../config/private/npu/config_loader.py | 26 ---
.../private/numa_bind_docker/config.toml | 0
.../private/numa_bind_docker/config_loader.py | 25 ---
.../config/private/numa_bind_proc/config.toml | 0
.../private/numa_bind_proc/config_loader.py | 25 ---
.../config/private/numa_container/config.toml | 0
.../private/numa_container/config_loader.py | 25 ---
.../private/numa_cross_node/config.toml | 0
.../private/numa_cross_node/config_loader.py | 26 ---
.../config/private/numa_diagnose/config.toml | 0
.../private/numa_diagnose/config_loader.py | 26 ---
.../private/numa_perf_compare/config.toml | 0
.../numa_perf_compare/config_loader.py | 25 ---
.../private/numa_rebind_proc/config.toml | 0
.../private/numa_rebind_proc/config_loader.py | 25 ---
.../config/private/numa_topo/config.toml | 0
.../config/private/numa_topo/config_loader.py | 26 ---
.../config/private/numastat/config.toml | 0
.../config/private/numastat/config_loader.py | 26 ---
mcp_center/config/private/nvidia/config.toml | 0
.../config/private/nvidia/config_loader.py | 26 ---
.../config/private/perf_interrupt/config.toml | 0
.../private/perf_interrupt/config_loader.py | 26 ---
mcp_center/config/private/qemu/config.toml | 0
.../config/private/qemu/config_loader.py | 26 ---
.../config/private/remote_info/config.toml | 0
.../private/remote_info/config_loader.py | 26 ---
mcp_center/config/private/rm/config.toml | 0
mcp_center/config/private/rm/config_loader.py | 26 ---
mcp_center/config/private/sar/config.toml | 0
.../config/private/sar/config_loader.py | 26 ---
mcp_center/config/private/sed/config.toml | 0
.../config/private/sed/config_loader.py | 26 ---
mcp_center/config/private/strace/config.toml | 0
.../config/private/strace/config_loader.py | 26 ---
.../config/private/strace_syscall/config.toml | 0
.../private/strace_syscall/config_loader.py | 26 ---
mcp_center/config/private/swapoff/config.toml | 0
.../config/private/swapoff/config_loader.py | 26 ---
mcp_center/config/private/swapon/config.toml | 0
.../config/private/swapon/config_loader.py | 26 ---
mcp_center/config/private/sync/config.toml | 0
.../config/private/sync/config_loader.py | 26 ---
mcp_center/config/private/tail/config.toml | 0
.../config/private/tail/config_loader.py | 26 ---
mcp_center/config/private/tar/config.toml | 0
.../config/private/tar/config_loader.py | 26 ---
mcp_center/config/private/top/config.toml | 0
.../config/private/top/config_loader.py | 26 ---
mcp_center/config/private/touch/config.toml | 0
.../config/private/touch/config_loader.py | 26 ---
mcp_center/config/private/tshark/config.toml | 0
.../config/private/tshark/config_loader.py | 26 ---
mcp_center/config/private/vmstat/config.toml | 0
.../config/private/vmstat/config_loader.py | 26 ---
mcp_center/config/private/zip/config.toml | 0
.../config/private/zip/config_loader.py | 26 ---
.../config/public/base_config_loader.py | 80 --------
mcp_center/config/public/public_config.toml | 17 --
.../cache_miss_audit_mcp/config.json | 9 -
mcp_center/mcp_config/cat_mcp/config.json | 9 -
mcp_center/mcp_config/change.py | 67 -------
mcp_center/mcp_config/chmod_mcp/config.json | 9 -
mcp_center/mcp_config/chown_mcp/config.json | 9 -
mcp_center/mcp_config/docker_mcp/config.json | 9 -
mcp_center/mcp_config/echo_mcp/config.json | 9 -
mcp_center/mcp_config/ethtool_mcp/config.json | 9 -
.../mcp_config/fallocate_mcp/config.json | 9 -
.../file_content_tool_mcp/config.json | 9 -
.../mcp_config/file_transfer_mcp/config.json | 9 -
mcp_center/mcp_config/find_mcp/config.json | 9 -
.../mcp_config/firewalld_mcp/config.json | 9 -
.../mcp_config/flame_graph_mcp/config.json | 9 -
mcp_center/mcp_config/free_mcp/config.json | 9 -
.../func_timing_trace_mcp/config.json | 9 -
mcp_center/mcp_config/grep_mcp/config.json | 9 -
mcp_center/mcp_config/head_mcp/config.json | 9 -
.../mcp_config/hotspot_trace_mcp/config.json | 9 -
.../mcp_config/ifconfig_mcp/config.json | 9 -
mcp_center/mcp_config/iftop_mcp/config.json | 9 -
.../mcp_config/iptables_mcp/config.json | 9 -
mcp_center/mcp_config/kill_mcp/config.json | 9 -
mcp_center/mcp_config/ls_mcp/config.json | 9 -
mcp_center/mcp_config/lscpu_mcp/config.json | 9 -
mcp_center/mcp_config/lsof_mcp/config.json | 9 -
mcp_center/mcp_config/mcp_to_app_config.toml | 176 ------------------
mcp_center/mcp_config/mkdir_mcp/config.json | 9 -
mcp_center/mcp_config/mv_mcp/config.json | 9 -
mcp_center/mcp_config/netstat_mcp/config.json | 9 -
mcp_center/mcp_config/nload_mcp/config.json | 9 -
mcp_center/mcp_config/nmap_mcp/config.json | 9 -
mcp_center/mcp_config/nohup_mcp/config.json | 9 -
mcp_center/mcp_config/npu_mcp/config.json | 9 -
.../numa_bind_docker_mcp/config.json | 9 -
.../mcp_config/numa_bind_proc_mcp/config.json | 9 -
.../mcp_config/numa_container_mcp/config.json | 9 -
.../numa_cross_node_mcp/config.json | 9 -
.../mcp_config/numa_diagnose_mcp/config.json | 9 -
.../numa_perf_compare_mcp/config.json | 9 -
.../numa_rebind_proc_mcp/config.json | 9 -
.../mcp_config/numa_topo_mcp/config.json | 9 -
.../mcp_config/numastat_mcp/config.json | 9 -
mcp_center/mcp_config/nvidia_mcp/config.json | 9 -
.../mcp_config/perf_interrupt_mcp/config.json | 9 -
mcp_center/mcp_config/qemu_mcp/config.json | 9 -
.../mcp_config/remote_info_mcp/config.json | 9 -
mcp_center/mcp_config/rm_mcp/config.json | 9 -
mcp_center/mcp_config/sar_mcp/config.json | 9 -
mcp_center/mcp_config/sed_mcp/config.json | 9 -
.../shell_generator_mcp/config.json | 9 -
mcp_center/mcp_config/strace_mcp/config.json | 9 -
.../mcp_config/strace_syscall_mcp/config.json | 9 -
mcp_center/mcp_config/swapoff_mcp/config.json | 9 -
mcp_center/mcp_config/swapon_mcp/config.json | 9 -
mcp_center/mcp_config/sync_mcp/config.json | 9 -
.../mcp_config/systrace_mcp/config.json | 9 -
mcp_center/mcp_config/tail_mcp/config.json | 9 -
mcp_center/mcp_config/tar_mcp/config.json | 9 -
mcp_center/mcp_config/top_mcp/config.json | 9 -
mcp_center/mcp_config/touch_mcp/config.json | 9 -
mcp_center/mcp_config/tshark_mcp/config.json | 9 -
mcp_center/mcp_config/tune_mcp/config.json | 9 -
mcp_center/mcp_config/vmstat_mcp/config.json | 9 -
mcp_center/mcp_config/zip_mcp/config.json | 9 -
.../service/cache-miss-audit-server.service | 21 ---
mcp_center/service/cat-server.service | 20 --
mcp_center/service/chmod-server.service | 20 --
mcp_center/service/chown-server.service | 20 --
mcp_center/service/docker-server.service | 20 --
mcp_center/service/echo-server.service | 20 --
mcp_center/service/ethtool-server.service | 20 --
mcp_center/service/fallocate-server.service | 20 --
.../service/file-content-tool-server.service | 21 ---
.../service/file-transfer-server.service | 21 ---
mcp_center/service/find-server.service | 20 --
mcp_center/service/firewalld-server.service | 20 --
mcp_center/service/flame-graph-server.service | 21 ---
mcp_center/service/free-server.service | 20 --
.../service/func-timing-trace-server.service | 21 ---
mcp_center/service/grep-server.service | 20 --
mcp_center/service/head-server.service | 20 --
.../service/hotspot-trace-server.service | 21 ---
mcp_center/service/ifconfig-server.service | 20 --
mcp_center/service/iftop-server.service | 20 --
mcp_center/service/iptable-server.service | 20 --
.../service/kill-command-server.service | 20 --
mcp_center/service/ls-server.service | 20 --
mcp_center/service/lscpu-server.service | 21 ---
mcp_center/service/lsof-server.service | 20 --
mcp_center/service/mkdir-server.service | 20 --
mcp_center/service/mv-server.service | 20 --
mcp_center/service/netstat-server.service | 20 --
mcp_center/service/nload-server.service | 20 --
mcp_center/service/nmap-server.service | 20 --
.../service/nohup-command-server.service | 20 --
mcp_center/service/npu-smi-server.service | 20 --
.../service/numa-bind-docker-server.service | 21 ---
.../service/numa-bind-proc-servcer.service | 21 ---
.../service/numa-container-server.service | 21 ---
.../service/numa-cross-node-server.service | 21 ---
.../service/numa-diagnose-server.service | 21 ---
.../service/numa-perf-compare-server.service | 21 ---
.../service/numa-rebind-proc-server.service | 21 ---
mcp_center/service/numa-topo-server.service | 21 ---
mcp_center/service/numastat-server.service | 21 ---
mcp_center/service/nvidia-smi-server.service | 20 --
.../service/perf-interrupt-server.service | 21 ---
mcp_center/service/qemu-server.service | 20 --
mcp_center/service/remote-info-server.service | 20 --
mcp_center/service/rm-server.service | 20 --
mcp_center/service/sar-server.service | 20 --
mcp_center/service/sed-server.service | 20 --
.../service/shell-generator-server.service | 21 ---
.../service/strace-command-server.service | 20 --
.../service/strace-syscall-server.service | 21 ---
mcp_center/service/swapoff-server.service | 20 --
mcp_center/service/swapon-server.service | 20 --
mcp_center/service/sync-server.service | 20 --
mcp_center/service/tail-server.service | 20 --
mcp_center/service/tar-server.service | 20 --
mcp_center/service/top-command-server.service | 20 --
mcp_center/service/touch-server.service | 20 --
mcp_center/service/tshark-server.service | 20 --
mcp_center/service/vmstat-server.service | 20 --
mcp_center/service/zip-server.service | 20 --
252 files changed, 3758 deletions(-)
delete mode 100644 mcp_center/config/private/cache_miss_audit/config.toml
delete mode 100644 mcp_center/config/private/cache_miss_audit/config_loader.py
delete mode 100644 mcp_center/config/private/cat/config.toml
delete mode 100644 mcp_center/config/private/cat/config_loader.py
delete mode 100644 mcp_center/config/private/chmod/config.toml
delete mode 100644 mcp_center/config/private/chmod/config_loader.py
delete mode 100644 mcp_center/config/private/chown/config.toml
delete mode 100644 mcp_center/config/private/chown/config_loader.py
delete mode 100644 mcp_center/config/private/cmd_generator/config.toml
delete mode 100644 mcp_center/config/private/cmd_generator/config_loader.py
delete mode 100644 mcp_center/config/private/disk_manager/config.toml
delete mode 100644 mcp_center/config/private/disk_manager/config_loader.py
delete mode 100644 mcp_center/config/private/docker/config.toml
delete mode 100644 mcp_center/config/private/docker/config_loader.py
delete mode 100644 mcp_center/config/private/echo/config.toml
delete mode 100644 mcp_center/config/private/echo/config_loader.py
delete mode 100644 mcp_center/config/private/ethtool/config.toml
delete mode 100644 mcp_center/config/private/ethtool/config_loader.py
delete mode 100644 mcp_center/config/private/fallocate/config.toml
delete mode 100644 mcp_center/config/private/fallocate/config_loader.py
delete mode 100644 mcp_center/config/private/file_content_tool/config.toml
delete mode 100644 mcp_center/config/private/file_content_tool/config_loader.py
delete mode 100644 mcp_center/config/private/file_transfer/config.toml
delete mode 100644 mcp_center/config/private/file_transfer/config_loader.py
delete mode 100644 mcp_center/config/private/find/config.toml
delete mode 100644 mcp_center/config/private/find/config_loader.py
delete mode 100644 mcp_center/config/private/firewalld/config.toml
delete mode 100644 mcp_center/config/private/firewalld/config_loader.py
delete mode 100644 mcp_center/config/private/flame_graph/config.toml
delete mode 100644 mcp_center/config/private/flame_graph/config_loader.py
delete mode 100644 mcp_center/config/private/free/config.toml
delete mode 100644 mcp_center/config/private/free/config_loader.py
delete mode 100644 mcp_center/config/private/func_timing_trace/config.toml
delete mode 100644 mcp_center/config/private/func_timing_trace/config_loader.py
delete mode 100644 mcp_center/config/private/grep/config.toml
delete mode 100644 mcp_center/config/private/grep/config_loader.py
delete mode 100644 mcp_center/config/private/head/config.toml
delete mode 100644 mcp_center/config/private/head/config_loader.py
delete mode 100644 mcp_center/config/private/hotspot_trace/config.toml
delete mode 100644 mcp_center/config/private/hotspot_trace/config_loader.py
delete mode 100644 mcp_center/config/private/ifconfig/config.toml
delete mode 100644 mcp_center/config/private/ifconfig/config_loader.py
delete mode 100644 mcp_center/config/private/iftop/config.toml
delete mode 100644 mcp_center/config/private/iftop/config_loader.py
delete mode 100644 mcp_center/config/private/iptables/config.toml
delete mode 100644 mcp_center/config/private/iptables/config_loader.py
delete mode 100644 mcp_center/config/private/kill/config.toml
delete mode 100644 mcp_center/config/private/kill/config_loader.py
delete mode 100644 mcp_center/config/private/ls/config.toml
delete mode 100644 mcp_center/config/private/ls/config_loader.py
delete mode 100644 mcp_center/config/private/lscpu/config.toml
delete mode 100644 mcp_center/config/private/lscpu/config_loader.py
delete mode 100644 mcp_center/config/private/lsof/config.toml
delete mode 100644 mcp_center/config/private/lsof/config_loader.py
delete mode 100644 mcp_center/config/private/mkdir/config.toml
delete mode 100644 mcp_center/config/private/mkdir/config_loader.py
delete mode 100644 mcp_center/config/private/mv/config.toml
delete mode 100644 mcp_center/config/private/mv/config_loader.py
delete mode 100644 mcp_center/config/private/netstat/config.toml
delete mode 100644 mcp_center/config/private/netstat/config_loader.py
delete mode 100644 mcp_center/config/private/nload/config.toml
delete mode 100644 mcp_center/config/private/nload/config_loader.py
delete mode 100644 mcp_center/config/private/nmap/config.toml
delete mode 100644 mcp_center/config/private/nmap/config_loader.py
delete mode 100644 mcp_center/config/private/nohup/config.toml
delete mode 100644 mcp_center/config/private/nohup/config_loader.py
delete mode 100644 mcp_center/config/private/npu/config.toml
delete mode 100644 mcp_center/config/private/npu/config_loader.py
delete mode 100644 mcp_center/config/private/numa_bind_docker/config.toml
delete mode 100644 mcp_center/config/private/numa_bind_docker/config_loader.py
delete mode 100644 mcp_center/config/private/numa_bind_proc/config.toml
delete mode 100644 mcp_center/config/private/numa_bind_proc/config_loader.py
delete mode 100644 mcp_center/config/private/numa_container/config.toml
delete mode 100644 mcp_center/config/private/numa_container/config_loader.py
delete mode 100644 mcp_center/config/private/numa_cross_node/config.toml
delete mode 100644 mcp_center/config/private/numa_cross_node/config_loader.py
delete mode 100644 mcp_center/config/private/numa_diagnose/config.toml
delete mode 100644 mcp_center/config/private/numa_diagnose/config_loader.py
delete mode 100644 mcp_center/config/private/numa_perf_compare/config.toml
delete mode 100644 mcp_center/config/private/numa_perf_compare/config_loader.py
delete mode 100644 mcp_center/config/private/numa_rebind_proc/config.toml
delete mode 100644 mcp_center/config/private/numa_rebind_proc/config_loader.py
delete mode 100644 mcp_center/config/private/numa_topo/config.toml
delete mode 100644 mcp_center/config/private/numa_topo/config_loader.py
delete mode 100644 mcp_center/config/private/numastat/config.toml
delete mode 100644 mcp_center/config/private/numastat/config_loader.py
delete mode 100644 mcp_center/config/private/nvidia/config.toml
delete mode 100644 mcp_center/config/private/nvidia/config_loader.py
delete mode 100644 mcp_center/config/private/perf_interrupt/config.toml
delete mode 100644 mcp_center/config/private/perf_interrupt/config_loader.py
delete mode 100644 mcp_center/config/private/qemu/config.toml
delete mode 100644 mcp_center/config/private/qemu/config_loader.py
delete mode 100644 mcp_center/config/private/remote_info/config.toml
delete mode 100644 mcp_center/config/private/remote_info/config_loader.py
delete mode 100644 mcp_center/config/private/rm/config.toml
delete mode 100644 mcp_center/config/private/rm/config_loader.py
delete mode 100644 mcp_center/config/private/sar/config.toml
delete mode 100644 mcp_center/config/private/sar/config_loader.py
delete mode 100644 mcp_center/config/private/sed/config.toml
delete mode 100644 mcp_center/config/private/sed/config_loader.py
delete mode 100644 mcp_center/config/private/strace/config.toml
delete mode 100644 mcp_center/config/private/strace/config_loader.py
delete mode 100644 mcp_center/config/private/strace_syscall/config.toml
delete mode 100644 mcp_center/config/private/strace_syscall/config_loader.py
delete mode 100644 mcp_center/config/private/swapoff/config.toml
delete mode 100644 mcp_center/config/private/swapoff/config_loader.py
delete mode 100644 mcp_center/config/private/swapon/config.toml
delete mode 100644 mcp_center/config/private/swapon/config_loader.py
delete mode 100644 mcp_center/config/private/sync/config.toml
delete mode 100644 mcp_center/config/private/sync/config_loader.py
delete mode 100644 mcp_center/config/private/tail/config.toml
delete mode 100644 mcp_center/config/private/tail/config_loader.py
delete mode 100644 mcp_center/config/private/tar/config.toml
delete mode 100644 mcp_center/config/private/tar/config_loader.py
delete mode 100644 mcp_center/config/private/top/config.toml
delete mode 100644 mcp_center/config/private/top/config_loader.py
delete mode 100644 mcp_center/config/private/touch/config.toml
delete mode 100644 mcp_center/config/private/touch/config_loader.py
delete mode 100644 mcp_center/config/private/tshark/config.toml
delete mode 100644 mcp_center/config/private/tshark/config_loader.py
delete mode 100644 mcp_center/config/private/vmstat/config.toml
delete mode 100644 mcp_center/config/private/vmstat/config_loader.py
delete mode 100644 mcp_center/config/private/zip/config.toml
delete mode 100644 mcp_center/config/private/zip/config_loader.py
delete mode 100644 mcp_center/config/public/base_config_loader.py
delete mode 100644 mcp_center/config/public/public_config.toml
delete mode 100644 mcp_center/mcp_config/cache_miss_audit_mcp/config.json
delete mode 100644 mcp_center/mcp_config/cat_mcp/config.json
delete mode 100644 mcp_center/mcp_config/change.py
delete mode 100644 mcp_center/mcp_config/chmod_mcp/config.json
delete mode 100644 mcp_center/mcp_config/chown_mcp/config.json
delete mode 100644 mcp_center/mcp_config/docker_mcp/config.json
delete mode 100644 mcp_center/mcp_config/echo_mcp/config.json
delete mode 100644 mcp_center/mcp_config/ethtool_mcp/config.json
delete mode 100644 mcp_center/mcp_config/fallocate_mcp/config.json
delete mode 100644 mcp_center/mcp_config/file_content_tool_mcp/config.json
delete mode 100644 mcp_center/mcp_config/file_transfer_mcp/config.json
delete mode 100644 mcp_center/mcp_config/find_mcp/config.json
delete mode 100644 mcp_center/mcp_config/firewalld_mcp/config.json
delete mode 100644 mcp_center/mcp_config/flame_graph_mcp/config.json
delete mode 100644 mcp_center/mcp_config/free_mcp/config.json
delete mode 100644 mcp_center/mcp_config/func_timing_trace_mcp/config.json
delete mode 100644 mcp_center/mcp_config/grep_mcp/config.json
delete mode 100644 mcp_center/mcp_config/head_mcp/config.json
delete mode 100644 mcp_center/mcp_config/hotspot_trace_mcp/config.json
delete mode 100644 mcp_center/mcp_config/ifconfig_mcp/config.json
delete mode 100644 mcp_center/mcp_config/iftop_mcp/config.json
delete mode 100644 mcp_center/mcp_config/iptables_mcp/config.json
delete mode 100644 mcp_center/mcp_config/kill_mcp/config.json
delete mode 100644 mcp_center/mcp_config/ls_mcp/config.json
delete mode 100644 mcp_center/mcp_config/lscpu_mcp/config.json
delete mode 100644 mcp_center/mcp_config/lsof_mcp/config.json
delete mode 100644 mcp_center/mcp_config/mcp_to_app_config.toml
delete mode 100644 mcp_center/mcp_config/mkdir_mcp/config.json
delete mode 100644 mcp_center/mcp_config/mv_mcp/config.json
delete mode 100644 mcp_center/mcp_config/netstat_mcp/config.json
delete mode 100644 mcp_center/mcp_config/nload_mcp/config.json
delete mode 100644 mcp_center/mcp_config/nmap_mcp/config.json
delete mode 100644 mcp_center/mcp_config/nohup_mcp/config.json
delete mode 100644 mcp_center/mcp_config/npu_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_bind_docker_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_bind_proc_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_container_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_cross_node_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_diagnose_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_perf_compare_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_rebind_proc_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numa_topo_mcp/config.json
delete mode 100644 mcp_center/mcp_config/numastat_mcp/config.json
delete mode 100644 mcp_center/mcp_config/nvidia_mcp/config.json
delete mode 100644 mcp_center/mcp_config/perf_interrupt_mcp/config.json
delete mode 100644 mcp_center/mcp_config/qemu_mcp/config.json
delete mode 100644 mcp_center/mcp_config/remote_info_mcp/config.json
delete mode 100644 mcp_center/mcp_config/rm_mcp/config.json
delete mode 100644 mcp_center/mcp_config/sar_mcp/config.json
delete mode 100644 mcp_center/mcp_config/sed_mcp/config.json
delete mode 100644 mcp_center/mcp_config/shell_generator_mcp/config.json
delete mode 100644 mcp_center/mcp_config/strace_mcp/config.json
delete mode 100644 mcp_center/mcp_config/strace_syscall_mcp/config.json
delete mode 100644 mcp_center/mcp_config/swapoff_mcp/config.json
delete mode 100644 mcp_center/mcp_config/swapon_mcp/config.json
delete mode 100644 mcp_center/mcp_config/sync_mcp/config.json
delete mode 100644 mcp_center/mcp_config/systrace_mcp/config.json
delete mode 100644 mcp_center/mcp_config/tail_mcp/config.json
delete mode 100644 mcp_center/mcp_config/tar_mcp/config.json
delete mode 100644 mcp_center/mcp_config/top_mcp/config.json
delete mode 100644 mcp_center/mcp_config/touch_mcp/config.json
delete mode 100644 mcp_center/mcp_config/tshark_mcp/config.json
delete mode 100644 mcp_center/mcp_config/tune_mcp/config.json
delete mode 100644 mcp_center/mcp_config/vmstat_mcp/config.json
delete mode 100644 mcp_center/mcp_config/zip_mcp/config.json
delete mode 100644 mcp_center/service/cache-miss-audit-server.service
delete mode 100644 mcp_center/service/cat-server.service
delete mode 100644 mcp_center/service/chmod-server.service
delete mode 100644 mcp_center/service/chown-server.service
delete mode 100644 mcp_center/service/docker-server.service
delete mode 100644 mcp_center/service/echo-server.service
delete mode 100644 mcp_center/service/ethtool-server.service
delete mode 100644 mcp_center/service/fallocate-server.service
delete mode 100644 mcp_center/service/file-content-tool-server.service
delete mode 100644 mcp_center/service/file-transfer-server.service
delete mode 100644 mcp_center/service/find-server.service
delete mode 100644 mcp_center/service/firewalld-server.service
delete mode 100644 mcp_center/service/flame-graph-server.service
delete mode 100644 mcp_center/service/free-server.service
delete mode 100644 mcp_center/service/func-timing-trace-server.service
delete mode 100644 mcp_center/service/grep-server.service
delete mode 100644 mcp_center/service/head-server.service
delete mode 100644 mcp_center/service/hotspot-trace-server.service
delete mode 100644 mcp_center/service/ifconfig-server.service
delete mode 100644 mcp_center/service/iftop-server.service
delete mode 100644 mcp_center/service/iptable-server.service
delete mode 100644 mcp_center/service/kill-command-server.service
delete mode 100644 mcp_center/service/ls-server.service
delete mode 100644 mcp_center/service/lscpu-server.service
delete mode 100644 mcp_center/service/lsof-server.service
delete mode 100644 mcp_center/service/mkdir-server.service
delete mode 100644 mcp_center/service/mv-server.service
delete mode 100644 mcp_center/service/netstat-server.service
delete mode 100644 mcp_center/service/nload-server.service
delete mode 100644 mcp_center/service/nmap-server.service
delete mode 100644 mcp_center/service/nohup-command-server.service
delete mode 100644 mcp_center/service/npu-smi-server.service
delete mode 100644 mcp_center/service/numa-bind-docker-server.service
delete mode 100644 mcp_center/service/numa-bind-proc-servcer.service
delete mode 100644 mcp_center/service/numa-container-server.service
delete mode 100644 mcp_center/service/numa-cross-node-server.service
delete mode 100644 mcp_center/service/numa-diagnose-server.service
delete mode 100644 mcp_center/service/numa-perf-compare-server.service
delete mode 100644 mcp_center/service/numa-rebind-proc-server.service
delete mode 100644 mcp_center/service/numa-topo-server.service
delete mode 100644 mcp_center/service/numastat-server.service
delete mode 100644 mcp_center/service/nvidia-smi-server.service
delete mode 100644 mcp_center/service/perf-interrupt-server.service
delete mode 100644 mcp_center/service/qemu-server.service
delete mode 100644 mcp_center/service/remote-info-server.service
delete mode 100644 mcp_center/service/rm-server.service
delete mode 100644 mcp_center/service/sar-server.service
delete mode 100644 mcp_center/service/sed-server.service
delete mode 100644 mcp_center/service/shell-generator-server.service
delete mode 100644 mcp_center/service/strace-command-server.service
delete mode 100644 mcp_center/service/strace-syscall-server.service
delete mode 100644 mcp_center/service/swapoff-server.service
delete mode 100644 mcp_center/service/swapon-server.service
delete mode 100644 mcp_center/service/sync-server.service
delete mode 100644 mcp_center/service/tail-server.service
delete mode 100644 mcp_center/service/tar-server.service
delete mode 100644 mcp_center/service/top-command-server.service
delete mode 100644 mcp_center/service/touch-server.service
delete mode 100644 mcp_center/service/tshark-server.service
delete mode 100644 mcp_center/service/vmstat-server.service
delete mode 100644 mcp_center/service/zip-server.service
diff --git a/mcp_center/config/private/cache_miss_audit/config.toml b/mcp_center/config/private/cache_miss_audit/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/cache_miss_audit/config_loader.py b/mcp_center/config/private/cache_miss_audit/config_loader.py
deleted file mode 100644
index 2742ddbc8..000000000
--- a/mcp_center/config/private/cache_miss_audit/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class CacheMissAuditConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12217, description="MCP服务端口")
-
-
-class CacheMissAuditConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "cache_miss_audit", "config.toml")
- self._config.private_config = CacheMissAuditConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/cat/config.toml b/mcp_center/config/private/cat/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/cat/config_loader.py b/mcp_center/config/private/cat/config_loader.py
deleted file mode 100644
index 24027f1e3..000000000
--- a/mcp_center/config/private/cat/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class CatConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13115, description="MCP服务端口")
-
-
-class CatConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "cat", "config.toml")
- self._config.private_config = CatConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/chmod/config.toml b/mcp_center/config/private/chmod/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/chmod/config_loader.py b/mcp_center/config/private/chmod/config_loader.py
deleted file mode 100644
index ca1edd922..000000000
--- a/mcp_center/config/private/chmod/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class ChmodConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13117, description="MCP服务端口")
-
-
-class ChmodConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "chmod", "config.toml")
- self._config.private_config = ChmodConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/chown/config.toml b/mcp_center/config/private/chown/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/chown/config_loader.py b/mcp_center/config/private/chown/config_loader.py
deleted file mode 100644
index 112776f7f..000000000
--- a/mcp_center/config/private/chown/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class ChownConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13116, description="MCP服务端口")
-
-
-class ChownConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "chown", "config.toml")
- self._config.private_config = ChownConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/cmd_generator/config.toml b/mcp_center/config/private/cmd_generator/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/cmd_generator/config_loader.py b/mcp_center/config/private/cmd_generator/config_loader.py
deleted file mode 100644
index 26dadab82..000000000
--- a/mcp_center/config/private/cmd_generator/config_loader.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class CMDGeneratorConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12101, description="MCP服务端口")
- llm_remote: str = Field(default="", description="LLM远程主机地址")
- llm_model: str = Field(default="gpt-3.5-turbo", description="LLM模型名称")
- llm_api_key: str = Field(default="", description="LLM API Key")
- max_tokens: int = Field(default=2048, description="LLM最大Token数")
- temperature: float = Field(default=0.7, description="LLM温度参数")
-
-
-class CMDGeneratorConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CMD_GENERATOR_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "cmd_generator", "config.toml")
- self._config.private_config = CMDGeneratorConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/disk_manager/config.toml b/mcp_center/config/private/disk_manager/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/disk_manager/config_loader.py b/mcp_center/config/private/disk_manager/config_loader.py
deleted file mode 100644
index a43318dac..000000000
--- a/mcp_center/config/private/disk_manager/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class DiskManagerConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12102, description="MCP服务端口")
-
-
-class DiskManagerConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("REMOTE_INFO_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "disk_manager", "config.toml")
- self._config.private_config = DiskManagerConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/docker/config.toml b/mcp_center/config/private/docker/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/docker/config_loader.py b/mcp_center/config/private/docker/config_loader.py
deleted file mode 100644
index 61ecad785..000000000
--- a/mcp_center/config/private/docker/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class DockerConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12133, description="MCP服务端口")
-
-
-class DockerConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("DOCKER_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "docker", "config.toml")
- self._config.private_config = DockerConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/echo/config.toml b/mcp_center/config/private/echo/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/echo/config_loader.py b/mcp_center/config/private/echo/config_loader.py
deleted file mode 100644
index 80078995e..000000000
--- a/mcp_center/config/private/echo/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class EchoConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13125, description="MCP服务端口")
-
-
-class EchoConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "echo", "config.toml")
- self._config.private_config = EchoConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/ethtool/config.toml b/mcp_center/config/private/ethtool/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/ethtool/config_loader.py b/mcp_center/config/private/ethtool/config_loader.py
deleted file mode 100644
index a9bbb9cd0..000000000
--- a/mcp_center/config/private/ethtool/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class EthtoolConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12121, description="MCP服务端口")
-
-
-class EthtoolConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("ETHTOOL_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "ethtool", "config.toml")
- self._config.private_config = EthtoolConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/fallocate/config.toml b/mcp_center/config/private/fallocate/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/fallocate/config_loader.py b/mcp_center/config/private/fallocate/config_loader.py
deleted file mode 100644
index 922c81f66..000000000
--- a/mcp_center/config/private/fallocate/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FallocateConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13106, description="MCP服务端口")
-
-
-class FallocateConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "fallocate", "config.toml")
- self._config.private_config = FallocateConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/file_content_tool/config.toml b/mcp_center/config/private/file_content_tool/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/file_content_tool/config_loader.py b/mcp_center/config/private/file_content_tool/config_loader.py
deleted file mode 100644
index 990efca80..000000000
--- a/mcp_center/config/private/file_content_tool/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FileCommandConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12125, description="MCP服务端口")
-
-
-class FileCommandConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "file_content_tool", "config.toml")
- self._config.private_config = FileCommandConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/file_transfer/config.toml b/mcp_center/config/private/file_transfer/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/file_transfer/config_loader.py b/mcp_center/config/private/file_transfer/config_loader.py
deleted file mode 100644
index 51316a0a0..000000000
--- a/mcp_center/config/private/file_transfer/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FileTransferConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12136, description="MCP服务端口")
-
-
-class FileTransferConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "file_transfer", "config.toml")
- self._config.private_config = FileTransferConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/find/config.toml b/mcp_center/config/private/find/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/find/config_loader.py b/mcp_center/config/private/find/config_loader.py
deleted file mode 100644
index 7e8b69580..000000000
--- a/mcp_center/config/private/find/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FindConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13107, description="MCP服务端口")
-
-
-class FindConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "find", "config.toml")
- self._config.private_config = FindConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/firewalld/config.toml b/mcp_center/config/private/firewalld/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/firewalld/config_loader.py b/mcp_center/config/private/firewalld/config_loader.py
deleted file mode 100644
index 7c365cf83..000000000
--- a/mcp_center/config/private/firewalld/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FirewalldConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12130, description="MCP服务端口")
-
-
-class FirewalldConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("FIREWALLD_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "firewalld", "config.toml")
- self._config.private_config = FirewalldConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/flame_graph/config.toml b/mcp_center/config/private/flame_graph/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/flame_graph/config_loader.py b/mcp_center/config/private/flame_graph/config_loader.py
deleted file mode 100644
index 48e04e390..000000000
--- a/mcp_center/config/private/flame_graph/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FlameGraphConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12222, description="MCP服务端口")
-
-
-class FlameGraphConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "flame_graph", "config.toml")
- self._config.private_config = FlameGraphConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/free/config.toml b/mcp_center/config/private/free/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/free/config_loader.py b/mcp_center/config/private/free/config_loader.py
deleted file mode 100644
index 097fe0480..000000000
--- a/mcp_center/config/private/free/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FreeConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13100, description="MCP服务端口")
-
-
-class FreeConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "free", "config.toml")
- self._config.private_config = FreeConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/func_timing_trace/config.toml b/mcp_center/config/private/func_timing_trace/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/func_timing_trace/config_loader.py b/mcp_center/config/private/func_timing_trace/config_loader.py
deleted file mode 100644
index ec7e6c850..000000000
--- a/mcp_center/config/private/func_timing_trace/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class FuncTimingTraceConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12218, description="MCP服务端口")
-
-
-class FuncTimingTraceConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "func_timing_trace", "config.toml")
- self._config.private_config = FuncTimingTraceConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/grep/config.toml b/mcp_center/config/private/grep/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/grep/config_loader.py b/mcp_center/config/private/grep/config_loader.py
deleted file mode 100644
index 45739079f..000000000
--- a/mcp_center/config/private/grep/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class GrepConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13120, description="MCP服务端口")
-
-
-class GrepConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "grep", "config.toml")
- self._config.private_config = GrepConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/head/config.toml b/mcp_center/config/private/head/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/head/config_loader.py b/mcp_center/config/private/head/config_loader.py
deleted file mode 100644
index bfca9fc29..000000000
--- a/mcp_center/config/private/head/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class HeadConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13113, description="MCP服务端口")
-
-
-class HeadConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "head", "config.toml")
- self._config.private_config = HeadConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/hotspot_trace/config.toml b/mcp_center/config/private/hotspot_trace/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/hotspot_trace/config_loader.py b/mcp_center/config/private/hotspot_trace/config_loader.py
deleted file mode 100644
index 073e4057c..000000000
--- a/mcp_center/config/private/hotspot_trace/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class HotspotTraceConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12216, description="MCP服务端口")
-
-
-class HotspotTraceConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "hotspot_trace", "config.toml")
- self._config.private_config = HotspotTraceConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/ifconfig/config.toml b/mcp_center/config/private/ifconfig/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/ifconfig/config_loader.py b/mcp_center/config/private/ifconfig/config_loader.py
deleted file mode 100644
index 57aa75a73..000000000
--- a/mcp_center/config/private/ifconfig/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class IfconfigConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12120, description="MCP服务端口")
-
-
-class IfconfigConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("IFCONFIG_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "ifconfig", "config.toml")
- self._config.private_config = IfconfigConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/iftop/config.toml b/mcp_center/config/private/iftop/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/iftop/config_loader.py b/mcp_center/config/private/iftop/config_loader.py
deleted file mode 100644
index 93e5bc5e9..000000000
--- a/mcp_center/config/private/iftop/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class IftopConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12116, description="MCP服务端口")
-
-
-class IftopConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("IFTOP_COMMAND_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "iftop", "config.toml")
- self._config.private_config = IftopConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/iptables/config.toml b/mcp_center/config/private/iptables/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/iptables/config_loader.py b/mcp_center/config/private/iptables/config_loader.py
deleted file mode 100644
index 8aaa1d8d5..000000000
--- a/mcp_center/config/private/iptables/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class IptablesConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12131, description="MCP服务端口")
-
-
-class IptablesConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("IPTABLES_COMMAND_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "iptables", "config.toml")
- self._config.private_config = IptablesConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/kill/config.toml b/mcp_center/config/private/kill/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/kill/config_loader.py b/mcp_center/config/private/kill/config_loader.py
deleted file mode 100644
index 9f633fc14..000000000
--- a/mcp_center/config/private/kill/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class KillCommandConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12111, description="MCP服务端口")
-
-
-class KillCommandConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("KILL_COMMAND_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "kill", "config.toml")
- self._config.private_config = KillCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/ls/config.toml b/mcp_center/config/private/ls/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/ls/config_loader.py b/mcp_center/config/private/ls/config_loader.py
deleted file mode 100644
index 36b6416e4..000000000
--- a/mcp_center/config/private/ls/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class LsConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13112, description="MCP服务端口")
-
-
-class LsConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "ls", "config.toml")
- self._config.private_config = LsConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/lscpu/config.toml b/mcp_center/config/private/lscpu/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/lscpu/config_loader.py b/mcp_center/config/private/lscpu/config_loader.py
deleted file mode 100644
index caa57fe78..000000000
--- a/mcp_center/config/private/lscpu/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class LscpuConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12202, description="MCP服务端口")
-
-
-class LscpuConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "lscpu", "config.toml")
- self._config.private_config = LscpuConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/lsof/config.toml b/mcp_center/config/private/lsof/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/lsof/config_loader.py b/mcp_center/config/private/lsof/config_loader.py
deleted file mode 100644
index 59b8ae1db..000000000
--- a/mcp_center/config/private/lsof/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class LsofConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12119, description="MCP服务端口")
-
-
-class LsofConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("LSOF_COMMAND_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "lsof", "config.toml")
- self._config.private_config = LsofConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/mkdir/config.toml b/mcp_center/config/private/mkdir/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/mkdir/config_loader.py b/mcp_center/config/private/mkdir/config_loader.py
deleted file mode 100644
index 446789781..000000000
--- a/mcp_center/config/private/mkdir/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class MkdirConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13109, description="MCP服务端口")
-
-
-class MkdirConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "mkdir", "config.toml")
- self._config.private_config = MkdirConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/mv/config.toml b/mcp_center/config/private/mv/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/mv/config_loader.py b/mcp_center/config/private/mv/config_loader.py
deleted file mode 100644
index 383641f4f..000000000
--- a/mcp_center/config/private/mv/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class MvConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13111, description="MCP服务端口")
-
-
-class MvConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "mv", "config.toml")
- self._config.private_config = MvConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/netstat/config.toml b/mcp_center/config/private/netstat/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/netstat/config_loader.py b/mcp_center/config/private/netstat/config_loader.py
deleted file mode 100644
index d6d314aa9..000000000
--- a/mcp_center/config/private/netstat/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NetstatConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12118, description="MCP服务端口")
-
-
-class NetstatConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("NETSTAT_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "netstat", "config.toml")
- self._config.private_config = NetstatConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/nload/config.toml b/mcp_center/config/private/nload/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/nload/config_loader.py b/mcp_center/config/private/nload/config_loader.py
deleted file mode 100644
index 7d6068b18..000000000
--- a/mcp_center/config/private/nload/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NloadConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12117, description="MCP服务端口")
-
-
-class NloadConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("NLOAD_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "nload", "config.toml")
- self._config.private_config = NloadConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/nmap/config.toml b/mcp_center/config/private/nmap/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/nmap/config_loader.py b/mcp_center/config/private/nmap/config_loader.py
deleted file mode 100644
index 803012d49..000000000
--- a/mcp_center/config/private/nmap/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NmapConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12135, description="MCP服务端口")
-
-
-class NmapConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("NMAP_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "nmap", "config.toml")
- self._config.private_config = NmapConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/nohup/config.toml b/mcp_center/config/private/nohup/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/nohup/config_loader.py b/mcp_center/config/private/nohup/config_loader.py
deleted file mode 100644
index 2fe5162dc..000000000
--- a/mcp_center/config/private/nohup/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NohupCommandConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12112, description="MCP服务端口")
-
-
-class NohupCommandConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("NOHUP_COMMAND_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "nohup", "config.toml")
- self._config.private_config = NohupCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/npu/config.toml b/mcp_center/config/private/npu/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/npu/config_loader.py b/mcp_center/config/private/npu/config_loader.py
deleted file mode 100644
index 61f268459..000000000
--- a/mcp_center/config/private/npu/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NpuSmiConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12115, description="MCP服务端口")
-
-
-class NpuSmiConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("NPU_SMI_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "npu", "config.toml")
- self._config.private_config = NpuSmiConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/numa_bind_docker/config.toml b/mcp_center/config/private/numa_bind_docker/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_bind_docker/config_loader.py b/mcp_center/config/private/numa_bind_docker/config_loader.py
deleted file mode 100644
index dd8ec870c..000000000
--- a/mcp_center/config/private/numa_bind_docker/config_loader.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaBindDockerConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12206, description="MCP服务端口")
-
-
-class NumaBindDockerConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_bind_docker", "config.toml")
- self._config.private_config = NumaBindDockerConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_bind_proc/config.toml b/mcp_center/config/private/numa_bind_proc/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_bind_proc/config_loader.py b/mcp_center/config/private/numa_bind_proc/config_loader.py
deleted file mode 100644
index c5d92f967..000000000
--- a/mcp_center/config/private/numa_bind_proc/config_loader.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaBindProcConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12204, description="MCP服务端口")
-
-
-class NumaBindProcConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_bind_proc", "config.toml")
- self._config.private_config = NumaBindProcConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_container/config.toml b/mcp_center/config/private/numa_container/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_container/config_loader.py b/mcp_center/config/private/numa_container/config_loader.py
deleted file mode 100644
index 38fe318f6..000000000
--- a/mcp_center/config/private/numa_container/config_loader.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaContainerConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12214, description="MCP服务端口")
-
-
-class NumaContainerConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_container", "config.toml")
- self._config.private_config = NumaContainerConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_cross_node/config.toml b/mcp_center/config/private/numa_cross_node/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_cross_node/config_loader.py b/mcp_center/config/private/numa_cross_node/config_loader.py
deleted file mode 100644
index 528e3a0ba..000000000
--- a/mcp_center/config/private/numa_cross_node/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaCrossNodeConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12211, description="MCP服务端口")
-
-
-class NumaCrossNodeConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_cross_node", "config.toml")
- self._config.private_config = NumaCrossNodeConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_diagnose/config.toml b/mcp_center/config/private/numa_diagnose/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_diagnose/config_loader.py b/mcp_center/config/private/numa_diagnose/config_loader.py
deleted file mode 100644
index f12299e4d..000000000
--- a/mcp_center/config/private/numa_diagnose/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaDiagnoseConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12209, description="MCP服务端口")
-
-
-class NumaDiagnoseConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_diagnose", "config.toml")
- self._config.private_config = NumaDiagnoseConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_perf_compare/config.toml b/mcp_center/config/private/numa_perf_compare/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_perf_compare/config_loader.py b/mcp_center/config/private/numa_perf_compare/config_loader.py
deleted file mode 100644
index cea3afffb..000000000
--- a/mcp_center/config/private/numa_perf_compare/config_loader.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaPerfCompareConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12208, description="MCP服务端口")
-
-
-class NumaPerfCompareConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_perf_compare", "config.toml")
- self._config.private_config = NumaPerfCompareConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_rebind_proc/config.toml b/mcp_center/config/private/numa_rebind_proc/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_rebind_proc/config_loader.py b/mcp_center/config/private/numa_rebind_proc/config_loader.py
deleted file mode 100644
index e1d2f347d..000000000
--- a/mcp_center/config/private/numa_rebind_proc/config_loader.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaRebindProcConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12205, description="MCP服务端口")
-
-
-class NumaRebindProcConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_rebind_proc", "config.toml")
- self._config.private_config = NumaRebindProcConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numa_topo/config.toml b/mcp_center/config/private/numa_topo/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numa_topo/config_loader.py b/mcp_center/config/private/numa_topo/config_loader.py
deleted file mode 100644
index de70c1d2e..000000000
--- a/mcp_center/config/private/numa_topo/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumaTopoConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12203, description="MCP服务端口")
-
-
-class NumaTopoConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numa_topo", "config.toml")
- self._config.private_config = NumaTopoConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/numastat/config.toml b/mcp_center/config/private/numastat/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/numastat/config_loader.py b/mcp_center/config/private/numastat/config_loader.py
deleted file mode 100644
index 824809c4b..000000000
--- a/mcp_center/config/private/numastat/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NumastatConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12210, description="MCP服务端口")
-
-
-class NumastatConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "numastat", "config.toml")
- self._config.private_config = NumastatConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/nvidia/config.toml b/mcp_center/config/private/nvidia/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/nvidia/config_loader.py b/mcp_center/config/private/nvidia/config_loader.py
deleted file mode 100644
index ecc7a0d02..000000000
--- a/mcp_center/config/private/nvidia/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class NvidiaSmiConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12114, description="MCP服务端口")
-
-
-class NvidiaSmiConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("NVIDIA_SMI_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "nvidia", "config.toml")
- self._config.private_config = NvidiaSmiConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/perf_interrupt/config.toml b/mcp_center/config/private/perf_interrupt/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/perf_interrupt/config_loader.py b/mcp_center/config/private/perf_interrupt/config_loader.py
deleted file mode 100644
index 5d7b93d2c..000000000
--- a/mcp_center/config/private/perf_interrupt/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class PerfInterruptConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12220, description="MCP服务端口")
-
-
-class PerfInterruptConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "perf_interrupt", "config.toml")
- self._config.private_config = PerfInterruptConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/qemu/config.toml b/mcp_center/config/private/qemu/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/qemu/config_loader.py b/mcp_center/config/private/qemu/config_loader.py
deleted file mode 100644
index 63c5b3b51..000000000
--- a/mcp_center/config/private/qemu/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class QemuConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12134, description="MCP服务端口")
-
-
-class QemuConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("QEMU_SMI_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "qemu", "config.toml")
- self._config.private_config = QemuConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/remote_info/config.toml b/mcp_center/config/private/remote_info/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/remote_info/config_loader.py b/mcp_center/config/private/remote_info/config_loader.py
deleted file mode 100644
index 10c4af23a..000000000
--- a/mcp_center/config/private/remote_info/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class RemoteInfoConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12100, description="MCP服务端口")
-
-
-class RemoteInfoConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("REMOTE_INFO_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "remote_info", "config.toml")
- self._config.private_config = RemoteInfoConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/rm/config.toml b/mcp_center/config/private/rm/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/rm/config_loader.py b/mcp_center/config/private/rm/config_loader.py
deleted file mode 100644
index b3a91cee2..000000000
--- a/mcp_center/config/private/rm/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class RmConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13110, description="MCP服务端口")
-
-
-class RmConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "rm", "config.toml")
- self._config.private_config = RmConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/sar/config.toml b/mcp_center/config/private/sar/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/sar/config_loader.py b/mcp_center/config/private/sar/config_loader.py
deleted file mode 100644
index b48125b25..000000000
--- a/mcp_center/config/private/sar/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class SarConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13102, description="MCP服务端口")
-
-
-class SarConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "sar", "config.toml")
- self._config.private_config = SarConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/sed/config.toml b/mcp_center/config/private/sed/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/sed/config_loader.py b/mcp_center/config/private/sed/config_loader.py
deleted file mode 100644
index 9d1c5ca7d..000000000
--- a/mcp_center/config/private/sed/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class SedConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13121, description="MCP服务端口")
-
-
-class SedConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "sed", "config.toml")
- self._config.private_config = SedConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/strace/config.toml b/mcp_center/config/private/strace/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/strace/config_loader.py b/mcp_center/config/private/strace/config_loader.py
deleted file mode 100644
index d786a396e..000000000
--- a/mcp_center/config/private/strace/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class StraceCommandConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12113, description="MCP服务端口")
-
-
-class StraceCommandConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("STRACE_COMMAND_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "strace", "config.toml")
- self._config.private_config = StraceCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/strace_syscall/config.toml b/mcp_center/config/private/strace_syscall/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/strace_syscall/config_loader.py b/mcp_center/config/private/strace_syscall/config_loader.py
deleted file mode 100644
index f3c4e4e23..000000000
--- a/mcp_center/config/private/strace_syscall/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class StraceSyscallConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12219, description="MCP服务端口")
-
-
-class StraceSyscallConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "strace_syscall", "config.toml")
- self._config.private_config = StraceSyscallConfigModel.model_validate(toml.load(config_file))
\ No newline at end of file
diff --git a/mcp_center/config/private/swapoff/config.toml b/mcp_center/config/private/swapoff/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/swapoff/config_loader.py b/mcp_center/config/private/swapoff/config_loader.py
deleted file mode 100644
index 85961175c..000000000
--- a/mcp_center/config/private/swapoff/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class SwapoffConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13105, description="MCP服务端口")
-
-
-class SwapoffConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "swapoff", "config.toml")
- self._config.private_config = SwapoffConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/swapon/config.toml b/mcp_center/config/private/swapon/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/swapon/config_loader.py b/mcp_center/config/private/swapon/config_loader.py
deleted file mode 100644
index 6ec6aed3e..000000000
--- a/mcp_center/config/private/swapon/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class SwaponConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13104, description="MCP服务端口")
-
-
-class SwaponConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "swapon", "config.toml")
- self._config.private_config = SwaponConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/sync/config.toml b/mcp_center/config/private/sync/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/sync/config_loader.py b/mcp_center/config/private/sync/config_loader.py
deleted file mode 100644
index c21cce671..000000000
--- a/mcp_center/config/private/sync/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class SyncConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13103, description="MCP服务端口")
-
-
-class SyncConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "sync", "config.toml")
- self._config.private_config = SyncConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/tail/config.toml b/mcp_center/config/private/tail/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/tail/config_loader.py b/mcp_center/config/private/tail/config_loader.py
deleted file mode 100644
index 6e5b5c721..000000000
--- a/mcp_center/config/private/tail/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class TailConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13114, description="MCP服务端口")
-
-
-class TailConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "tail", "config.toml")
- self._config.private_config = TailConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/tar/config.toml b/mcp_center/config/private/tar/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/tar/config_loader.py b/mcp_center/config/private/tar/config_loader.py
deleted file mode 100644
index c2ae19046..000000000
--- a/mcp_center/config/private/tar/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class TarConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13118, description="MCP服务端口")
-
-
-class TarConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "tar", "config.toml")
- self._config.private_config = TarConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/top/config.toml b/mcp_center/config/private/top/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/top/config_loader.py b/mcp_center/config/private/top/config_loader.py
deleted file mode 100644
index 6b90c36b7..000000000
--- a/mcp_center/config/private/top/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class TopCommandConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12110, description="MCP服务端口")
-
-
-class TopCommandConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("TOP_COMMAND_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "top", "config.toml")
- self._config.private_config = TopCommandConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/touch/config.toml b/mcp_center/config/private/touch/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/touch/config_loader.py b/mcp_center/config/private/touch/config_loader.py
deleted file mode 100644
index 8e09474be..000000000
--- a/mcp_center/config/private/touch/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class TouchConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13108, description="MCP服务端口")
-
-
-class TouchConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "touch", "config.toml")
- self._config.private_config = TouchConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/tshark/config.toml b/mcp_center/config/private/tshark/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/tshark/config_loader.py b/mcp_center/config/private/tshark/config_loader.py
deleted file mode 100644
index a57dc8886..000000000
--- a/mcp_center/config/private/tshark/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class TsharkConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=12122, description="MCP服务端口")
-
-
-class TsharkConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("TSHARK_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "tshark", "config.toml")
- self._config.private_config = TsharkConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/vmstat/config.toml b/mcp_center/config/private/vmstat/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/vmstat/config_loader.py b/mcp_center/config/private/vmstat/config_loader.py
deleted file mode 100644
index 886e5f902..000000000
--- a/mcp_center/config/private/vmstat/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class VmstatConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13101, description="MCP服务端口")
-
-
-class VmstatConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("REMOTE_INFO_CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "vmstat", "config.toml")
- self._config.private_config = VmstatConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/private/zip/config.toml b/mcp_center/config/private/zip/config.toml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/mcp_center/config/private/zip/config_loader.py b/mcp_center/config/private/zip/config_loader.py
deleted file mode 100644
index 19b20ac16..000000000
--- a/mcp_center/config/private/zip/config_loader.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-from config.public.base_config_loader import BaseConfig
-import os
-from pydantic import BaseModel, Field
-import toml
-
-
-class ZipConfigModel(BaseModel):
- """顶层配置模型"""
- port: int = Field(default=13119, description="MCP服务端口")
-
-
-class ZipConfig(BaseConfig):
- """顶层配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件"""
- super().__init__()
- self.load_private_config()
-
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- config_file = os.getenv("CONFIG")
- if config_file is None:
- config_file = os.path.join("config", "private", "zip", "config.toml")
- self._config.private_config = ZipConfigModel.model_validate(toml.load(config_file))
diff --git a/mcp_center/config/public/base_config_loader.py b/mcp_center/config/public/base_config_loader.py
deleted file mode 100644
index a5db20768..000000000
--- a/mcp_center/config/public/base_config_loader.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
-"""配置文件处理模块"""
-import toml
-from enum import Enum
-from typing import Any
-from pydantic import BaseModel, Field
-from pathlib import Path
-from copy import deepcopy
-import sys
-import os
-# 从当前文件位置向上两级到达项目根目录
-sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../..')))
-can_import = True
-try:
- from apps.schemas.config import ConfigModel as FrameworkConfigModel
-except ImportError as e:
- can_import = False
-
-# 然后使用绝对导入
-
-
-class LanguageEnum(str, Enum):
- """语言枚举"""
- ZH = "zh"
- EN = "en"
-
-
-class RemoteConfigModel(BaseModel):
- """远程配置模型"""
- name: str = Field(..., description="远程主机名称")
- os_type: str = Field(..., description="远程主机操作系统类型")
- host: str = Field(..., description="远程主机地址")
- port: int = Field(..., description="远程主机端口")
- username: str = Field(..., description="远程主机用户名")
- password: str = Field(..., description="远程主机密码")
-
-
-class PublicConfigModel(BaseModel):
- """公共配置模型"""
- language: LanguageEnum = Field(default=LanguageEnum.ZH, description="语言")
- remote_hosts: list[RemoteConfigModel] = Field(default=[], description="远程主机列表")
- llm_remote: str = Field(default="https://dashscope.aliyuncs.com/compatible-mode/v1", description="LLM远程主机地址")
- llm_model: str = Field(default="qwen3-coder-480b-a35b-instruct", description="LLM模型名称")
- llm_api_key: str = Field(default="", description="LLM API Key")
- max_tokens: int = Field(default=8192, description="LLM最大Token数")
- temperature: float = Field(default=0.7, description="LLM温度参数")
-
-
-class ConfigModel(BaseModel):
- """公共配置模型"""
- public_config: PublicConfigModel = Field(default=PublicConfigModel(), description="公共配置")
- private_config: Any = Field(default=None, description="私有配置")
-
-
-class BaseConfig():
- """配置文件读取和使用Class"""
-
- def __init__(self) -> None:
- """读取配置文件;当PROD环境变量设置时,配置文件将在读取后删除"""
- config_file = os.path.join("config", "public", "public_config.toml")
- self._config = ConfigModel()
- self._config.public_config = PublicConfigModel.model_validate(toml.load(config_file))
- framework_config_file = os.getenv("CONFIG")
- if framework_config_file is None:
- if can_import:
- framework_config_file = os.path.join("..", "config", "config.toml")
- if framework_config_file and os.path.exists(framework_config_file):
- framework_config = FrameworkConfigModel.model_validate(toml.load(framework_config_file))
- self._config.public_config.llm_remote = framework_config.llm.endpoint
- self._config.public_config.llm_model = framework_config.llm.model
- self._config.public_config.llm_api_key = framework_config.llm.key
- self._config.public_config.max_tokens = framework_config.llm.max_tokens
- self._config.public_config.temperature = framework_config.llm.temperature
- def load_private_config(self) -> None:
- """加载私有配置文件"""
- pass
-
- def get_config(self) -> ConfigModel:
- """获取配置文件内容"""
- return deepcopy(self._config)
diff --git a/mcp_center/config/public/public_config.toml b/mcp_center/config/public/public_config.toml
deleted file mode 100644
index eb842e548..000000000
--- a/mcp_center/config/public/public_config.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-# 公共配置文件
-# 语言设置,支持zh(中文)和en(英文)
-language = "zh"
-# 大模型配置
-llm_remote = ""
-llm_model = ""
-llm_api_key = ""
-max_tokens = 8192
-temperature = 0.7
-# 远程主机列表配置
-[[remote_hosts]]
-name = "本机"
-os_type = "openEuler"
-host = ""
-port = 22
-username = "root"
-password = ""
\ No newline at end of file
diff --git a/mcp_center/mcp_config/cache_miss_audit_mcp/config.json b/mcp_center/mcp_config/cache_miss_audit_mcp/config.json
deleted file mode 100644
index e238ae0d6..000000000
--- a/mcp_center/mcp_config/cache_miss_audit_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "定位 CPU 缓存失效导致的性能损耗mcp",
- "overview": "定位 CPU 缓存失效导致的性能损耗mcp",
- "description": "定位 CPU 缓存失效导致的性能损耗mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12217/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/cat_mcp/config.json b/mcp_center/mcp_config/cat_mcp/config.json
deleted file mode 100644
index 48d133627..000000000
--- a/mcp_center/mcp_config/cat_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件内容查看工具",
- "overview": "文件内容查看工具",
- "description": "文件内容查看工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13115/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/change.py b/mcp_center/mcp_config/change.py
deleted file mode 100644
index cec514e9f..000000000
--- a/mcp_center/mcp_config/change.py
+++ /dev/null
@@ -1,67 +0,0 @@
-import json
-import toml
-
-def json_to_toml(json_data, toml_file_path, top_level_key="data"):
- """
- 将JSON数据转换为TOML格式并写入文件
-
- 参数:
- json_data: JSON数据,可以是字典、列表或JSON字符串
- toml_file_path: 输出的TOML文件路径
- top_level_key: 当输入为列表时,用于包装列表的顶级键名
- """
- try:
- # 如果输入是JSON字符串,则先解析为Python对象
- if isinstance(json_data, str):
- data = json.loads(json_data)
- else:
- data = json_data
-
- # TOML不支持顶级列表,需要包装在字典中
- if isinstance(data, list):
- data = {top_level_key: data}
-
- # 将数据转换为TOML格式并写入文件
- with open(toml_file_path, 'w', encoding='utf-8') as f:
- toml.dump(data, f)
-
- print(f"成功将JSON数据转换为TOML并写入文件: {toml_file_path}")
- return True
-
- except json.JSONDecodeError as e:
- print(f"JSON解析错误: {e}")
- except Exception as e:
- print(f"转换过程中发生错误: {e}")
- return False
-
-if __name__ == "__main__":
- # 示例JSON数据(列表形式)
- sample_json = [
- {
- "appType":"agent",
- "name":"hce运维助手",
- "description":"hce运维助手,用于诊断hce环境和执行shell命令",
- "mcpPath":[
- "remote_info_mcp",
- "shell_generator_mcp"
- ],
- "published":True
- }
- ]
-
- # 转换并写入TOML文件
- # 对于列表数据,指定一个顶级键名(如"applications")使其符合TOML格式要求
- json_to_toml(sample_json, "mcp_to_app_config.toml", "applications")
-
- # 测试字典类型的JSON数据
- dict_json = {
- "name": "测试",
- "version": "1.0.0",
- "features": ["简单", "易用"]
- }
- json_to_toml(dict_json, "from_dict.toml")
-
- # 测试JSON字符串
- json_str = '{"name": "字符串测试", "version": "2.0.0"}'
- json_to_toml(json_str, "from_string.toml")
-
\ No newline at end of file
diff --git a/mcp_center/mcp_config/chmod_mcp/config.json b/mcp_center/mcp_config/chmod_mcp/config.json
deleted file mode 100644
index d8494f337..000000000
--- a/mcp_center/mcp_config/chmod_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件权限修改工具",
- "overview": "文件权限修改工具",
- "description": "文件权限修改工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13117/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/chown_mcp/config.json b/mcp_center/mcp_config/chown_mcp/config.json
deleted file mode 100644
index a6e0baac2..000000000
--- a/mcp_center/mcp_config/chown_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件所有者修改工具",
- "overview": "文件所有者修改工具",
- "description": "文件所有者修改工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13116/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/docker_mcp/config.json b/mcp_center/mcp_config/docker_mcp/config.json
deleted file mode 100644
index bdab03d5c..000000000
--- a/mcp_center/mcp_config/docker_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "docker工具",
- "overview": "docker工具",
- "description": "docker工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12133/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/echo_mcp/config.json b/mcp_center/mcp_config/echo_mcp/config.json
deleted file mode 100644
index c9966996f..000000000
--- a/mcp_center/mcp_config/echo_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文本写入工具",
- "overview": "文本写入工具",
- "description": "文本写入工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13125/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/ethtool_mcp/config.json b/mcp_center/mcp_config/ethtool_mcp/config.json
deleted file mode 100644
index c5f5d8eff..000000000
--- a/mcp_center/mcp_config/ethtool_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "ethtool网卡信息查询,特性情况,网卡设置",
- "overview": "ethtool网卡信息查询,特性情况,网卡设置",
- "description": "ethtool网卡信息查询,特性情况,网卡设置",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12121/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/fallocate_mcp/config.json b/mcp_center/mcp_config/fallocate_mcp/config.json
deleted file mode 100644
index 50bfe29dc..000000000
--- a/mcp_center/mcp_config/fallocate_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "创建启用启用swap文件工具",
- "overview": "创建启用启用swap文件工具",
- "description": "创建启用启用swap文件工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13106/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/file_content_tool_mcp/config.json b/mcp_center/mcp_config/file_content_tool_mcp/config.json
deleted file mode 100644
index 73f71ff97..000000000
--- a/mcp_center/mcp_config/file_content_tool_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件内容增删改查",
- "overview": "文件内容增删改查",
- "description": "文件内容增删改查",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12125/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/file_transfer_mcp/config.json b/mcp_center/mcp_config/file_transfer_mcp/config.json
deleted file mode 100644
index 4dfbc4b1b..000000000
--- a/mcp_center/mcp_config/file_transfer_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "基于`curl`、`wget`、`scp`、`sftp`工具的文件传输MCP",
- "overview": "基于`curl`、`wget`、`scp`、`sftp`工具的文件传输MCP",
- "description": "基于`curl`、`wget`、`scp`、`sftp`工具的文件传输MCP",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12136/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/find_mcp/config.json b/mcp_center/mcp_config/find_mcp/config.json
deleted file mode 100644
index 206c0db8b..000000000
--- a/mcp_center/mcp_config/find_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件查找工具",
- "overview": "文件查找工具",
- "description": "文件查找工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13107/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/firewalld_mcp/config.json b/mcp_center/mcp_config/firewalld_mcp/config.json
deleted file mode 100644
index a04907a55..000000000
--- a/mcp_center/mcp_config/firewalld_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "Firewalld网络防火墙管理工具",
- "overview": "Firewalld网络防火墙管理工具",
- "description": "Firewalld网络防火墙管理工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12130/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/flame_graph_mcp/config.json b/mcp_center/mcp_config/flame_graph_mcp/config.json
deleted file mode 100644
index 7e89be955..000000000
--- a/mcp_center/mcp_config/flame_graph_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "火焰图生成:可视化展示性能瓶颈mcp",
- "overview": "火焰图生成:可视化展示性能瓶颈mcp",
- "description": "火焰图生成:可视化展示性能瓶颈mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12222/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/free_mcp/config.json b/mcp_center/mcp_config/free_mcp/config.json
deleted file mode 100644
index e88ddc265..000000000
--- a/mcp_center/mcp_config/free_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "系统整体内存资源信息收集工具",
- "overview": "系统整体内存资源信息收集工具",
- "description": "系统整体内存资源信息收集工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13100/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/func_timing_trace_mcp/config.json b/mcp_center/mcp_config/func_timing_trace_mcp/config.json
deleted file mode 100644
index 39515c29b..000000000
--- a/mcp_center/mcp_config/func_timing_trace_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "精准测量函数执行时间(含调用栈)mcp",
- "overview": "精准测量函数执行时间(含调用栈)mcp",
- "description": "精准测量函数执行时间(含调用栈)mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12218/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/grep_mcp/config.json b/mcp_center/mcp_config/grep_mcp/config.json
deleted file mode 100644
index fb5444d43..000000000
--- a/mcp_center/mcp_config/grep_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件内容搜索工具",
- "overview": "文件内容搜索工具",
- "description": "文件内容搜索工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13120/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/head_mcp/config.json b/mcp_center/mcp_config/head_mcp/config.json
deleted file mode 100644
index 4266e6b95..000000000
--- a/mcp_center/mcp_config/head_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件开头内容查看工具",
- "overview": "文件开头内容查看工具",
- "description": "文件开头内容查看工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13113/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/hotspot_trace_mcp/config.json b/mcp_center/mcp_config/hotspot_trace_mcp/config.json
deleted file mode 100644
index 4bf74db94..000000000
--- a/mcp_center/mcp_config/hotspot_trace_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "快速定位系统 / 进程的 CPU 性能瓶颈mcp",
- "overview": "快速定位系统 / 进程的 CPU 性能瓶颈mcp",
- "description": "快速定位系统 / 进程的 CPU 性能瓶颈mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12216/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/ifconfig_mcp/config.json b/mcp_center/mcp_config/ifconfig_mcp/config.json
deleted file mode 100644
index f151afa0d..000000000
--- a/mcp_center/mcp_config/ifconfig_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "ifconfig 网络接口信息监控",
- "overview": "ifconfig 网络接口信息监控",
- "description": "ifconfig 网络接口信息监控",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12120/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/iftop_mcp/config.json b/mcp_center/mcp_config/iftop_mcp/config.json
deleted file mode 100644
index efa10860b..000000000
--- a/mcp_center/mcp_config/iftop_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "Iftop网络流量监控",
- "overview": "Iftop网络流量监控",
- "description": "Iftop网络流量监控",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12116/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/iptables_mcp/config.json b/mcp_center/mcp_config/iptables_mcp/config.json
deleted file mode 100644
index 9d952e90f..000000000
--- a/mcp_center/mcp_config/iptables_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "iptables防火墙管理工具",
- "overview": "iptables防火墙管理工具",
- "description": "iptables防火墙管理工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12131/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/kill_mcp/config.json b/mcp_center/mcp_config/kill_mcp/config.json
deleted file mode 100644
index bcd3f1419..000000000
--- a/mcp_center/mcp_config/kill_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "kill命令暂停/恢复进程&查询信号量含义",
- "overview": "kill命令暂停/恢复进程&查询信号量含义",
- "description": "kill命令暂停/恢复进程&查询信号量含义",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12111/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/ls_mcp/config.json b/mcp_center/mcp_config/ls_mcp/config.json
deleted file mode 100644
index 37143eaeb..000000000
--- a/mcp_center/mcp_config/ls_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "目录结构查看工具",
- "overview": "目录结构查看工具",
- "description": "目录结构查看工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13112/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/lscpu_mcp/config.json b/mcp_center/mcp_config/lscpu_mcp/config.json
deleted file mode 100644
index 038281248..000000000
--- a/mcp_center/mcp_config/lscpu_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "cpu架构等静态信息收集mcp",
- "overview": "cpu架构等静态信息收集mcp",
- "description": "cpu架构等静态信息收集mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12202/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/lsof_mcp/config.json b/mcp_center/mcp_config/lsof_mcp/config.json
deleted file mode 100644
index c0d782c0b..000000000
--- a/mcp_center/mcp_config/lsof_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "快速排查文件占用冲突、网络连接异常及进程资源占用问题",
- "overview": "快速排查文件占用冲突、网络连接异常及进程资源占用问题",
- "description": "快速排查文件占用冲突、网络连接异常及进程资源占用问题",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12119/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/mcp_to_app_config.toml b/mcp_center/mcp_config/mcp_to_app_config.toml
deleted file mode 100644
index 3e02efcec..000000000
--- a/mcp_center/mcp_config/mcp_to_app_config.toml
+++ /dev/null
@@ -1,176 +0,0 @@
-[[applications]]
-appType = "agent"
-name = "OE-智能运维助手"
-description = "提供通用系统运维能力,含网络监控、性能分析、硬件信息查询、存储管理等功能"
-mcpPath = [
-"remote_info_mcp",
-"shell_generator_mcp",
-"kill_mcp",
-"nohup_mcp",
-"strace_mcp",
-"top_mcp",
-"iftop_mcp",
-"nload_mcp",
-"netstat_mcp",
-"lsof_mcp",
-"ifconfig_mcp",
-"ethtool_mcp",
-"tshark_mcp",
-"file_content_tool_mcp",
-"firewalld_mcp",
-"iptable_mcp",
-"nmap_mcp",
-"file_transfer_mcp",
-"lscpu_mcp",
-"perf_interrupt_mcp",
-"flame_graph_mcp",
-"free_mcp",
-"sync_mcp",
-"swapon_mcp",
-"swapoff_mcp",
-"fallocate_mcp",
-"find_mcp",
-"touch_mcp",
-"mkdir_mcp",
-"rm_mcp",
-"mv_mcp",
-"ls_mcp",
-"head_mcp",
-"tail_mcp",
-"cat_mcp",
-"chmod_mcp",
-"chown_mcp",
-"tar_mcp",
-"zip_mcp",
-"grep_mcp",
-"sed_mcp",
-"echo_mcp"
-]
-published = true
-
-[[applications]]
-appType = "agent"
-name = "OE-智算调优助手"
-description = "面向AI/GPU/NPU智算场景,提供异构硬件监控、系统追踪、智算任务调优能力"
-mcpPath = [
-"shell_generator_mcp",
-"kill_mcp",
-"nohup_mcp",
-"strace_mcp",
-"top_mcp",
-"nvidia_mcp",
-"npu_mcp",
-"file_content_tool_mcp",
-"firewalld_mcp",
-"iptable_mcp",
-"file_transfer_mcp",
-"sync_mcp",
-"find_mcp",
-"touch_mcp",
-"mkdir_mcp",
-"rm_mcp",
-"mv_mcp",
-"ls_mcp",
-"systrace_mcp",
-"head_mcp",
-"tail_mcp",
-"cat_mcp",
-"chmod_mcp",
-"chown_mcp",
-"tar_mcp",
-"zip_mcp",
-"grep_mcp",
-"sed_mcp",
-"echo_mcp"
-]
-published = true
-
-[[applications]]
-appType = "agent"
-name = "OE-通算调优助手"
-description = "针对通用计算场景(尤其NUMA架构),提供NUMA优化、热点追踪、缓存分析、系统性能调优能力"
-mcpPath = [
-"shell_generator_mcp",
-"remote_info_mcp",
-"kill_mcp",
-"nohup_mcp",
-"strace_mcp",
-"top_mcp",
-"file_content_tool_mcp",
-"firewalld_mcp",
-"iptable_mcp",
-"file_transfer_mcp",
-"lscpu_mcp",
-"numa_topo_mcp",
-"numa_bind_proc_mcp",
-"numa_rebind_proc_mcp",
-"numa_perf_compare_mcp",
-"numa_diagnose_mcp",
-"numastat_mcp",
-"numa_cross_node_mcp",
-"numa_container_mcp",
-"hotspot_trace_mcp",
-"cache_miss_audit_mcp",
-"func_timing_trace_mcp",
-"strace_syscall_mcp",
-"perf_interrupt_mcp",
-"flame_graph_mcp",
-"free_mcp",
-"vmstat_mcp",
-"sar_mcp",
-"sync_mcp",
-"find_mcp",
-"touch_mcp",
-"mkdir_mcp",
-"rm_mcp",
-"mv_mcp",
-"ls_mcp",
-"euler-copilot-tune_mcp",
-"head_mcp",
-"tail_mcp",
-"cat_mcp",
-"chmod_mcp",
-"chown_mcp",
-"tar_mcp",
-"zip_mcp",
-"grep_mcp",
-"sed_mcp",
-"echo_mcp"
-]
-published = true
-
-[[applications]]
-appType = "agent"
-name = "OE-容器镜像助手"
-description = "提供容器与虚拟化环境管理能力,含Docker操作、QEMU虚拟化、容器NUMA绑定、镜像运维等功能"
-mcpPath = [
-"shell_generator_mcp",
-"remote_info_mcp",
-"kill_mcp",
-"strace_mcp",
-"file_content_tool_mcp",
-"firewalld_mcp",
-"iptable_mcp",
-"docker_mcp",
-"qemu_mcp",
-"file_transfer_mcp",
-"numa_bind_docker_mcp",
-"sync_mcp",
-"find_mcp",
-"touch_mcp",
-"mkdir_mcp",
-"rm_mcp",
-"mv_mcp",
-"ls_mcp",
-"head_mcp",
-"tail_mcp",
-"cat_mcp",
-"chmod_mcp",
-"chown_mcp",
-"tar_mcp",
-"zip_mcp",
-"grep_mcp",
-"sed_mcp",
-"echo_mcp"
-]
-published = true
\ No newline at end of file
diff --git a/mcp_center/mcp_config/mkdir_mcp/config.json b/mcp_center/mcp_config/mkdir_mcp/config.json
deleted file mode 100644
index e8d88c6ee..000000000
--- a/mcp_center/mcp_config/mkdir_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件夹创建工具",
- "overview": "文件夹创建工具",
- "description": "文件夹创建工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13109/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/mv_mcp/config.json b/mcp_center/mcp_config/mv_mcp/config.json
deleted file mode 100644
index 2f9d37286..000000000
--- a/mcp_center/mcp_config/mv_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件移动工具",
- "overview": "文件移动工具",
- "description": "文件移动工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13111/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/netstat_mcp/config.json b/mcp_center/mcp_config/netstat_mcp/config.json
deleted file mode 100644
index 67ce2c686..000000000
--- a/mcp_center/mcp_config/netstat_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "netstat网络连接监控",
- "overview": "netstat网络连接监控",
- "description": "netstat网络连接监控",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12118/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nload_mcp/config.json b/mcp_center/mcp_config/nload_mcp/config.json
deleted file mode 100644
index 93f49bfca..000000000
--- a/mcp_center/mcp_config/nload_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "Nload带宽监控",
- "overview": "Nload带宽监控",
- "description": "Nload带宽监控",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12117/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nmap_mcp/config.json b/mcp_center/mcp_config/nmap_mcp/config.json
deleted file mode 100644
index 6ecad2504..000000000
--- a/mcp_center/mcp_config/nmap_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "Nmap扫描IP(网段)",
- "overview": "Nmap扫描IP(网段)",
- "description": "Nmap扫描IP(网段)",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12135/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nohup_mcp/config.json b/mcp_center/mcp_config/nohup_mcp/config.json
deleted file mode 100644
index cd2b5bad7..000000000
--- a/mcp_center/mcp_config/nohup_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "后台运行进程",
- "overview": "后台运行进程",
- "description": "后台运行进程",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12112/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/npu_mcp/config.json b/mcp_center/mcp_config/npu_mcp/config.json
deleted file mode 100644
index a02dfc820..000000000
--- a/mcp_center/mcp_config/npu_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "npu的查询和控制",
- "overview": "npu的查询和控制",
- "description": "npu的查询和控制",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12115/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_bind_docker_mcp/config.json b/mcp_center/mcp_config/numa_bind_docker_mcp/config.json
deleted file mode 100644
index 36d8a769c..000000000
--- a/mcp_center/mcp_config/numa_bind_docker_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "为 Docker 容器配置 NUMA 绑定mcp",
- "overview": "为 Docker 容器配置 NUMA 绑定mcp",
- "description": "为 Docker 容器配置 NUMA 绑定mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12206/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_bind_proc_mcp/config.json b/mcp_center/mcp_config/numa_bind_proc_mcp/config.json
deleted file mode 100644
index aec44574a..000000000
--- a/mcp_center/mcp_config/numa_bind_proc_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "启动时绑定进程到指定 NUMA 节点mcp",
- "overview": "启动时绑定进程到指定 NUMA 节点mcp",
- "description": "启动时绑定进程到指定 NUMA 节点mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12204/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_container_mcp/config.json b/mcp_center/mcp_config/numa_container_mcp/config.json
deleted file mode 100644
index 4ea1c2f92..000000000
--- a/mcp_center/mcp_config/numa_container_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "监控 Docker 容器的 NUMA 内存访问mcp",
- "overview": "监控 Docker 容器的 NUMA 内存访问mcp",
- "description": "监控 Docker 容器的 NUMA 内存访问mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12214/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_cross_node_mcp/config.json b/mcp_center/mcp_config/numa_cross_node_mcp/config.json
deleted file mode 100644
index 2c8bb0b3e..000000000
--- a/mcp_center/mcp_config/numa_cross_node_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "定位跨节点内存访问过高的进程mcp",
- "overview": "定位跨节点内存访问过高的进程mcp",
- "description": "定位跨节点内存访问过高的进程mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12211/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_diagnose_mcp/config.json b/mcp_center/mcp_config/numa_diagnose_mcp/config.json
deleted file mode 100644
index 26672639b..000000000
--- a/mcp_center/mcp_config/numa_diagnose_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "用 NUMA 绑定定位硬件问题mcp",
- "overview": "用 NUMA 绑定定位硬件问题mcp",
- "description": "用 NUMA 绑定定位硬件问题mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12209/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_perf_compare_mcp/config.json b/mcp_center/mcp_config/numa_perf_compare_mcp/config.json
deleted file mode 100644
index 2b0bb3d13..000000000
--- a/mcp_center/mcp_config/numa_perf_compare_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "用 NUMA 绑定控制测试变量性能测试mcp",
- "overview": "用 NUMA 绑定控制测试变量性能测试mcp",
- "description": "用 NUMA 绑定控制测试变量性能测试mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12208/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_rebind_proc_mcp/config.json b/mcp_center/mcp_config/numa_rebind_proc_mcp/config.json
deleted file mode 100644
index 4117a4e20..000000000
--- a/mcp_center/mcp_config/numa_rebind_proc_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "修改已启动进程的 NUMA 绑定mcp",
- "overview": "修改已启动进程的 NUMA 绑定mcp",
- "description": "修改已启动进程的 NUMA 绑定mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12205/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numa_topo_mcp/config.json b/mcp_center/mcp_config/numa_topo_mcp/config.json
deleted file mode 100644
index 3e45b9984..000000000
--- a/mcp_center/mcp_config/numa_topo_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "查询 NUMA 硬件拓扑与系统配置mcp",
- "overview": "查询 NUMA 硬件拓扑与系统配置mcp",
- "description": "查询 NUMA 硬件拓扑与系统配置mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12203/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/numastat_mcp/config.json b/mcp_center/mcp_config/numastat_mcp/config.json
deleted file mode 100644
index ef74979dc..000000000
--- a/mcp_center/mcp_config/numastat_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "查看系统整体 NUMA 内存访问状态mcp",
- "overview": "查看系统整体 NUMA 内存访问状态mcp",
- "description": "查看系统整体 NUMA 内存访问状态mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12210/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/nvidia_mcp/config.json b/mcp_center/mcp_config/nvidia_mcp/config.json
deleted file mode 100644
index 438c2683b..000000000
--- a/mcp_center/mcp_config/nvidia_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "nvidia查询GPU信息",
- "overview": "nvidia查询GPU信息",
- "description": "nvidia查询GPU信息",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12114/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/perf_interrupt_mcp/config.json b/mcp_center/mcp_config/perf_interrupt_mcp/config.json
deleted file mode 100644
index 6b9b3323e..000000000
--- a/mcp_center/mcp_config/perf_interrupt_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "定位高频中断导致的 CPU 占用mcp",
- "overview": "定位高频中断导致的 CPU 占用mcp",
- "description": "定位高频中断导致的 CPU 占用mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12220/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/qemu_mcp/config.json b/mcp_center/mcp_config/qemu_mcp/config.json
deleted file mode 100644
index 3cc69861d..000000000
--- a/mcp_center/mcp_config/qemu_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "Qemu虚拟机管理工具",
- "overview": "Qemu虚拟机管理工具",
- "description": "Qemu虚拟机管理工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12134/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/remote_info_mcp/config.json b/mcp_center/mcp_config/remote_info_mcp/config.json
deleted file mode 100644
index b52fd80d5..000000000
--- a/mcp_center/mcp_config/remote_info_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "端侧信息收集工具",
- "overview": "端侧信息收集工具",
- "description": "端侧信息收集工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12100/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/rm_mcp/config.json b/mcp_center/mcp_config/rm_mcp/config.json
deleted file mode 100644
index 049291a69..000000000
--- a/mcp_center/mcp_config/rm_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件删除工具",
- "overview": "文件删除工具",
- "description": "文件删除工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13110/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/sar_mcp/config.json b/mcp_center/mcp_config/sar_mcp/config.json
deleted file mode 100644
index 95357f3df..000000000
--- a/mcp_center/mcp_config/sar_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "系统资源监控&历史信息分析工具",
- "overview": "系统资源监控&历史信息分析工具",
- "description": "系统资源监控&历史信息分析工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13102/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/sed_mcp/config.json b/mcp_center/mcp_config/sed_mcp/config.json
deleted file mode 100644
index eb6c61e53..000000000
--- a/mcp_center/mcp_config/sed_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文本处理工具",
- "overview": "文本处理工具",
- "description": "文本处理工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13121/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/shell_generator_mcp/config.json b/mcp_center/mcp_config/shell_generator_mcp/config.json
deleted file mode 100644
index 4dc6f2f62..000000000
--- a/mcp_center/mcp_config/shell_generator_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "端测命令生成&执行mcp",
- "overview": "端测命令生成&执行mcp",
- "description": "端测命令生成&执行mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12101/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/strace_mcp/config.json b/mcp_center/mcp_config/strace_mcp/config.json
deleted file mode 100644
index 158bf6495..000000000
--- a/mcp_center/mcp_config/strace_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "strace命令跟踪进程",
- "overview": "strace命令跟踪进程",
- "description": "strace命令跟踪进程",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12113/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/strace_syscall_mcp/config.json b/mcp_center/mcp_config/strace_syscall_mcp/config.json
deleted file mode 100644
index a88c2c50e..000000000
--- a/mcp_center/mcp_config/strace_syscall_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "排查不合理的系统调用(高频 / 耗时)mcp",
- "overview": "排查不合理的系统调用(高频 / 耗时)mcp",
- "description": "排查不合理的系统调用(高频 / 耗时)mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12219/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/swapoff_mcp/config.json b/mcp_center/mcp_config/swapoff_mcp/config.json
deleted file mode 100644
index 9e31b4001..000000000
--- a/mcp_center/mcp_config/swapoff_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "停用swap空间工具",
- "overview": "停用swap空间工具",
- "description": "停用swap空间工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13105/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/swapon_mcp/config.json b/mcp_center/mcp_config/swapon_mcp/config.json
deleted file mode 100644
index 737085b8b..000000000
--- a/mcp_center/mcp_config/swapon_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "swap设备查看工具",
- "overview": "swap设备查看工具",
- "description": "swap设备查看工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13104/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/sync_mcp/config.json b/mcp_center/mcp_config/sync_mcp/config.json
deleted file mode 100644
index fcb433c61..000000000
--- a/mcp_center/mcp_config/sync_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "内存缓冲刷新工具",
- "overview": "内存缓冲刷新工具",
- "description": "内存缓冲刷新工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13103/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/systrace_mcp/config.json b/mcp_center/mcp_config/systrace_mcp/config.json
deleted file mode 100644
index 7f19a49a6..000000000
--- a/mcp_center/mcp_config/systrace_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "systracemcp",
- "overview": "systracemcp",
- "description": "systracemcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12145/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tail_mcp/config.json b/mcp_center/mcp_config/tail_mcp/config.json
deleted file mode 100644
index c39582009..000000000
--- a/mcp_center/mcp_config/tail_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件末尾内容查看工具",
- "overview": "文件末尾内容查看工具",
- "description": "文件末尾内容查看工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13114/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tar_mcp/config.json b/mcp_center/mcp_config/tar_mcp/config.json
deleted file mode 100644
index 484fa4efc..000000000
--- a/mcp_center/mcp_config/tar_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件压缩解压工具",
- "overview": "文件压缩解压工具",
- "description": "文件压缩解压工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13118/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/top_mcp/config.json b/mcp_center/mcp_config/top_mcp/config.json
deleted file mode 100644
index 8605736a6..000000000
--- a/mcp_center/mcp_config/top_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "top命令获取系统负载信息",
- "overview": "top命令获取系统负载信息",
- "description": "top命令获取系统负载信息",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12110/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/touch_mcp/config.json b/mcp_center/mcp_config/touch_mcp/config.json
deleted file mode 100644
index 99786c85c..000000000
--- a/mcp_center/mcp_config/touch_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "系统整体内存资源信息收集工具",
- "overview": "系统整体内存资源信息收集工具",
- "description": "系统整体内存资源信息收集工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13108/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tshark_mcp/config.json b/mcp_center/mcp_config/tshark_mcp/config.json
deleted file mode 100644
index ce7e55bab..000000000
--- a/mcp_center/mcp_config/tshark_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "捕获、显示和分析网络流量",
- "overview": "捕获、显示和分析网络流量",
- "description": "捕获、显示和分析网络流量",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12122/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/tune_mcp/config.json b/mcp_center/mcp_config/tune_mcp/config.json
deleted file mode 100644
index 1ce62b09b..000000000
--- a/mcp_center/mcp_config/tune_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "调优mcp",
- "overview": "调优mcp",
- "description": "调优mcp",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:12147/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/vmstat_mcp/config.json b/mcp_center/mcp_config/vmstat_mcp/config.json
deleted file mode 100644
index cbff7a7bb..000000000
--- a/mcp_center/mcp_config/vmstat_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "系统资源交互瓶颈信息收集工具",
- "overview": "系统资源交互瓶颈信息收集工具",
- "description": "系统资源交互瓶颈信息收集工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13101/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/mcp_config/zip_mcp/config.json b/mcp_center/mcp_config/zip_mcp/config.json
deleted file mode 100644
index 3c53bd4e9..000000000
--- a/mcp_center/mcp_config/zip_mcp/config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "文件压缩解压工具",
- "overview": "文件压缩解压工具",
- "description": "文件压缩解压工具",
- "mcpType": "sse",
- "config": {
- "url": "http://127.0.0.1:13119/sse"
- }
-}
\ No newline at end of file
diff --git a/mcp_center/service/cache-miss-audit-server.service b/mcp_center/service/cache-miss-audit-server.service
deleted file mode 100644
index a29c4161e..000000000
--- a/mcp_center/service/cache-miss-audit-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Cache Miss Audit Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/cache_miss_audit/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/cat-server.service b/mcp_center/service/cat-server.service
deleted file mode 100644
index 27d5d76da..000000000
--- a/mcp_center/service/cat-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Cat Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/cat/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/chmod-server.service b/mcp_center/service/chmod-server.service
deleted file mode 100644
index a34e0f3d7..000000000
--- a/mcp_center/service/chmod-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Chmod Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/chmod/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/chown-server.service b/mcp_center/service/chown-server.service
deleted file mode 100644
index a4c4dbb8f..000000000
--- a/mcp_center/service/chown-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Chown Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/chown/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/docker-server.service b/mcp_center/service/docker-server.service
deleted file mode 100644
index 466854bd9..000000000
--- a/mcp_center/service/docker-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Docker Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/docker/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/echo-server.service b/mcp_center/service/echo-server.service
deleted file mode 100644
index 3a5c01ade..000000000
--- a/mcp_center/service/echo-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Echo Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/echo/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/ethtool-server.service b/mcp_center/service/ethtool-server.service
deleted file mode 100644
index 80e1b298a..000000000
--- a/mcp_center/service/ethtool-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Ethtool Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/ethtool/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/fallocate-server.service b/mcp_center/service/fallocate-server.service
deleted file mode 100644
index ec65e42e0..000000000
--- a/mcp_center/service/fallocate-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Fallocate Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/fallocate/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/file-content-tool-server.service b/mcp_center/service/file-content-tool-server.service
deleted file mode 100644
index fdd389562..000000000
--- a/mcp_center/service/file-content-tool-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Cache Miss Audit Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/file_content_tool/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/file-transfer-server.service b/mcp_center/service/file-transfer-server.service
deleted file mode 100644
index 9fdb16fd5..000000000
--- a/mcp_center/service/file-transfer-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Cache Miss Audit Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/file_transfer/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/find-server.service b/mcp_center/service/find-server.service
deleted file mode 100644
index 43951370a..000000000
--- a/mcp_center/service/find-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Find Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/find/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/firewalld-server.service b/mcp_center/service/firewalld-server.service
deleted file mode 100644
index 1aa24b4a6..000000000
--- a/mcp_center/service/firewalld-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Firewalld Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/firewalld/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/flame-graph-server.service b/mcp_center/service/flame-graph-server.service
deleted file mode 100644
index f9fa403d9..000000000
--- a/mcp_center/service/flame-graph-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Flame Graph Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/flame_graph/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/free-server.service b/mcp_center/service/free-server.service
deleted file mode 100644
index 666560406..000000000
--- a/mcp_center/service/free-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Free Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/free/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/func-timing-trace-server.service b/mcp_center/service/func-timing-trace-server.service
deleted file mode 100644
index fb6b111ef..000000000
--- a/mcp_center/service/func-timing-trace-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Func Timing Trace Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/func_timing_trace/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/grep-server.service b/mcp_center/service/grep-server.service
deleted file mode 100644
index 10e2ac105..000000000
--- a/mcp_center/service/grep-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Grep Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/grep/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/head-server.service b/mcp_center/service/head-server.service
deleted file mode 100644
index 17e8577dc..000000000
--- a/mcp_center/service/head-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Head Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/head/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/hotspot-trace-server.service b/mcp_center/service/hotspot-trace-server.service
deleted file mode 100644
index 165f65d82..000000000
--- a/mcp_center/service/hotspot-trace-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Hotspot Trace Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/hotspot_trace/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/ifconfig-server.service b/mcp_center/service/ifconfig-server.service
deleted file mode 100644
index fbef52c2a..000000000
--- a/mcp_center/service/ifconfig-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Ifconfig Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/ifconfig/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/iftop-server.service b/mcp_center/service/iftop-server.service
deleted file mode 100644
index 5c87a23a7..000000000
--- a/mcp_center/service/iftop-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Iftop Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/iftop/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/iptable-server.service b/mcp_center/service/iptable-server.service
deleted file mode 100644
index b04eb0641..000000000
--- a/mcp_center/service/iptable-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Iptables Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/iptables/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/kill-command-server.service b/mcp_center/service/kill-command-server.service
deleted file mode 100644
index 1ffd9b693..000000000
--- a/mcp_center/service/kill-command-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Kill Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/kill/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/ls-server.service b/mcp_center/service/ls-server.service
deleted file mode 100644
index 3978f3fda..000000000
--- a/mcp_center/service/ls-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Ls Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/ls/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/lscpu-server.service b/mcp_center/service/lscpu-server.service
deleted file mode 100644
index 4fc8593e2..000000000
--- a/mcp_center/service/lscpu-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Lscpu Info Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/lscpu/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/lsof-server.service b/mcp_center/service/lsof-server.service
deleted file mode 100644
index 0f03a008a..000000000
--- a/mcp_center/service/lsof-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Lsof Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/lsof/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/mkdir-server.service b/mcp_center/service/mkdir-server.service
deleted file mode 100644
index 81dcc576f..000000000
--- a/mcp_center/service/mkdir-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Mkdir Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/mkdir/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/mv-server.service b/mcp_center/service/mv-server.service
deleted file mode 100644
index cb2078c14..000000000
--- a/mcp_center/service/mv-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Mv Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/mv/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/netstat-server.service b/mcp_center/service/netstat-server.service
deleted file mode 100644
index 488e1a572..000000000
--- a/mcp_center/service/netstat-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Netstat Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/netstat/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/nload-server.service b/mcp_center/service/nload-server.service
deleted file mode 100644
index 3e8614c4a..000000000
--- a/mcp_center/service/nload-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Nload Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/nload/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/nmap-server.service b/mcp_center/service/nmap-server.service
deleted file mode 100644
index 83a3d8dba..000000000
--- a/mcp_center/service/nmap-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Nmap Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/nmap/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/nohup-command-server.service b/mcp_center/service/nohup-command-server.service
deleted file mode 100644
index 455c03620..000000000
--- a/mcp_center/service/nohup-command-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Nohup Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/nohup/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/npu-smi-server.service b/mcp_center/service/npu-smi-server.service
deleted file mode 100644
index f7d174a88..000000000
--- a/mcp_center/service/npu-smi-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Npu Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/npu/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-bind-docker-server.service b/mcp_center/service/numa-bind-docker-server.service
deleted file mode 100644
index 83ba2c01f..000000000
--- a/mcp_center/service/numa-bind-docker-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Bind Docker Container Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_bind_docker/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-bind-proc-servcer.service b/mcp_center/service/numa-bind-proc-servcer.service
deleted file mode 100644
index 74a06821f..000000000
--- a/mcp_center/service/numa-bind-proc-servcer.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Bind Process Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_bind_proc/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-container-server.service b/mcp_center/service/numa-container-server.service
deleted file mode 100644
index 3da5c41c1..000000000
--- a/mcp_center/service/numa-container-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Container Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_container/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-cross-node-server.service b/mcp_center/service/numa-cross-node-server.service
deleted file mode 100644
index 4afdc57ed..000000000
--- a/mcp_center/service/numa-cross-node-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Cross Node Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_cross_node/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-diagnose-server.service b/mcp_center/service/numa-diagnose-server.service
deleted file mode 100644
index bdae38626..000000000
--- a/mcp_center/service/numa-diagnose-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Diagnose Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_diagnose/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-perf-compare-server.service b/mcp_center/service/numa-perf-compare-server.service
deleted file mode 100644
index ba72eb2bd..000000000
--- a/mcp_center/service/numa-perf-compare-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Performance Comapare Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_perf_compare/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-rebind-proc-server.service b/mcp_center/service/numa-rebind-proc-server.service
deleted file mode 100644
index 890a9ede6..000000000
--- a/mcp_center/service/numa-rebind-proc-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Rebind Process Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_rebind_proc/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numa-topo-server.service b/mcp_center/service/numa-topo-server.service
deleted file mode 100644
index e2c44b99d..000000000
--- a/mcp_center/service/numa-topo-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numa Topo Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numa_topo/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/numastat-server.service b/mcp_center/service/numastat-server.service
deleted file mode 100644
index 0f071605d..000000000
--- a/mcp_center/service/numastat-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Numastat Info Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/numastat/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/nvidia-smi-server.service b/mcp_center/service/nvidia-smi-server.service
deleted file mode 100644
index 3ee863a01..000000000
--- a/mcp_center/service/nvidia-smi-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Nvidia-smi Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/nvidia/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/perf-interrupt-server.service b/mcp_center/service/perf-interrupt-server.service
deleted file mode 100644
index c80f8c9cf..000000000
--- a/mcp_center/service/perf-interrupt-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Irq Latency Trace Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/perf_interrupt/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/qemu-server.service b/mcp_center/service/qemu-server.service
deleted file mode 100644
index f26114cb0..000000000
--- a/mcp_center/service/qemu-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Qemu Info Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/qemu/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/remote-info-server.service b/mcp_center/service/remote-info-server.service
deleted file mode 100644
index 6dfaad8cb..000000000
--- a/mcp_center/service/remote-info-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Remote Info Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/remote_info/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/rm-server.service b/mcp_center/service/rm-server.service
deleted file mode 100644
index 3c98f3e8b..000000000
--- a/mcp_center/service/rm-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Rm Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/rm/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/sar-server.service b/mcp_center/service/sar-server.service
deleted file mode 100644
index 51bcc2c14..000000000
--- a/mcp_center/service/sar-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Sar Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/sar/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/sed-server.service b/mcp_center/service/sed-server.service
deleted file mode 100644
index ffbfe51cf..000000000
--- a/mcp_center/service/sed-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Sed Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/sed/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/shell-generator-server.service b/mcp_center/service/shell-generator-server.service
deleted file mode 100644
index 44df19365..000000000
--- a/mcp_center/service/shell-generator-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Shell generator Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/shell_generator/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/strace-command-server.service b/mcp_center/service/strace-command-server.service
deleted file mode 100644
index 3befbda27..000000000
--- a/mcp_center/service/strace-command-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Strace Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/strace/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/strace-syscall-server.service b/mcp_center/service/strace-syscall-server.service
deleted file mode 100644
index 7cb591cef..000000000
--- a/mcp_center/service/strace-syscall-server.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Strace Syscall Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-Environment=CONFIG=/etc/euler-copilot-framework/config.toml
-ExecStart=/usr/bin/python3 servers/strace_syscall/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/swapoff-server.service b/mcp_center/service/swapoff-server.service
deleted file mode 100644
index f3cf75b53..000000000
--- a/mcp_center/service/swapoff-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Swapoff Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/swapoff/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/swapon-server.service b/mcp_center/service/swapon-server.service
deleted file mode 100644
index a00e9b238..000000000
--- a/mcp_center/service/swapon-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Swapon Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/swapon/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/sync-server.service b/mcp_center/service/sync-server.service
deleted file mode 100644
index 7933da69e..000000000
--- a/mcp_center/service/sync-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Sync Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/sync/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/tail-server.service b/mcp_center/service/tail-server.service
deleted file mode 100644
index b47a6be08..000000000
--- a/mcp_center/service/tail-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Tail Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/tail/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/tar-server.service b/mcp_center/service/tar-server.service
deleted file mode 100644
index 0a4714740..000000000
--- a/mcp_center/service/tar-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Tar Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/tar/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
diff --git a/mcp_center/service/top-command-server.service b/mcp_center/service/top-command-server.service
deleted file mode 100644
index b591f1ebd..000000000
--- a/mcp_center/service/top-command-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Top Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/top/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/touch-server.service b/mcp_center/service/touch-server.service
deleted file mode 100644
index 4bca5bfb0..000000000
--- a/mcp_center/service/touch-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Touch Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/touch/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/tshark-server.service b/mcp_center/service/tshark-server.service
deleted file mode 100644
index d029d95b6..000000000
--- a/mcp_center/service/tshark-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Tshark Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/tshark/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/vmstat-server.service b/mcp_center/service/vmstat-server.service
deleted file mode 100644
index ad5b553cf..000000000
--- a/mcp_center/service/vmstat-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Vmstat Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/vmstat/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
diff --git a/mcp_center/service/zip-server.service b/mcp_center/service/zip-server.service
deleted file mode 100644
index 1c65f8b22..000000000
--- a/mcp_center/service/zip-server.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=Zip Command Server for MCP Center
-After=network.target
-
-[Service]
-User=root
-WorkingDirectory=/usr/lib/euler-copilot-framework/mcp_center
-# 关键:添加 PYTHONPATH,将工作目录加入模块搜索路径
-Environment=PYTHONUNBUFFERED=1
-Environment=PYTHONPATH=/usr/lib/euler-copilot-framework/mcp_center
-ExecStart=/usr/bin/python3 servers/zip/src/server.py
-Restart=always
-RestartSec=5
-KillMode=control-group
-KillSignal=SIGTERM
-TimeoutStopSec=30
-SuccessExitStatus=143
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file
--
Gitee