diff --git a/docs/en/openeuler_intelligence/oe_cli/architecture.md b/docs/en/openeuler_intelligence/oe_cli/architecture.md new file mode 100644 index 0000000000000000000000000000000000000000..0e8cc8df9457ad5bee109fcf8cf374753485cd06 --- /dev/null +++ b/docs/en/openeuler_intelligence/oe_cli/architecture.md @@ -0,0 +1,51 @@ +# oe-cli + +![oe-cli Architecture Diagram](./pictures/architecture.png) + +## 1. Tool Overview + +oe-cli is a shell-based tool developed for the openEuler operating system. Leveraging the core capabilities of large language models, it automatically converts user natural language requests into tool calls and presents the results in natural language, providing openEuler users with an efficient and convenient operations and maintenance interaction interface. + +## 2. Core Capability Modules + +oe-cli's core functionality comprises four main modules. The responsibilities and implementation logic of each module are as follows: + +### 2.1 Automated Deployment Module + +This module enables one-click deployment of oe-cli and its associated components through a standardized process. The specific workflow includes: + +1. **Interactive Configuration**: Collects key information such as framework deployment mode and basic large model parameters through user interaction, automatically writing them to the configuration file to ensure deployment parameter accuracy; + +2. **Dependency Installation**: Automatically executes deployment scripts to install two types of dependencies: + +- RPM Dependencies: Includes core components such as the Agent scheduling framework, ensuring the tool's scheduling capabilities; + +- Python Dependencies: Covers fundamental libraries that support oe-cli deployment and operation, ensuring complete tool functionality. + +### 2.2 Message Rendering Module + +This module focuses on standardized rendering of three key message types to enhance information display readability and user interaction experience: + +1. **Text Message Rendering**: Formats summary information after task execution to clearly present task results; + +2. **Agent Running Status Rendering**: Displays Agent's single-step execution status in real time, enabling users to monitor task progress; + +3. **Prompt Message Rendering**: In non-automatic operation mode, standardizes the rendering of operation prompts requiring user confirmation, guiding users through the interaction process. + +### 2.3 Configuration Loading and Switching Module + +This module supports flexible switching of core shell configurations to meet requirements across different scenarios. Specific switching capabilities include: + +1. **Chinese/English Information Switching**: Enables switching between Chinese and English for the shell interface display and Agent output content, accommodating users with different language preferences; + +2. **Model Switching**: Supports rapid switching of large models used for Agent scheduling, allowing users to select appropriate models based on business needs; + +3. **Interaction Mode Switching**: Provides switching functionality for Agent operation modes (automatic execution/user manual confirmation), balancing efficiency with operational control. + +### 2.4 Log Management Module + +This module implements standardized log management for critical operational information with a time-based approach: Automatically backs up both the shell's own operation logs and Agent execution logs according to preset file sizes, ensuring log traceability and easy management, while providing data support for troubleshooting and operational analysis. + +## 3. Tool Value + +Through its four core capabilities - one-click deployment, standardized message rendering, flexible configuration switching, and standardized log management - oe-cli creates a natural language-based operations and maintenance interaction interface for openEuler users. This effectively lowers the entry barrier for new openEuler users, reduces operational complexity for maintenance personnel, decreases overall operations and maintenance costs, and helps improve the efficiency of openEuler operating system maintenance. diff --git a/docs/en/openeuler_intelligence/oe_cli/deployment.md b/docs/en/openeuler_intelligence/oe_cli/deployment.md new file mode 100644 index 0000000000000000000000000000000000000000..d092fec378fc6b7207f4aa7f23d50fba9912cee7 --- /dev/null +++ b/docs/en/openeuler_intelligence/oe_cli/deployment.md @@ -0,0 +1,230 @@ +# OE-CLI Deployment Manual + +## 1. Environment Requirements + +- **Operating System**: openEuler 24.03 LTS SP2 or later +- **Memory**: Minimum 8GB RAM +- **Storage**: Minimum 20GB available disk space +- **Network**: Stable internet connection (If external network access is unavailable, please download required resources in advance; see Q&A for details) +- **Large Language Model (LLM) Service**: + - **Online**: Access to online LLM APIs that support tool calls, such as Bailian, DeepSeek Chat, GLM-4.5, etc. + - **Local**: Support for locally deployed LLM services like llama-server, ollama, vLLM, LM Studio, etc., requiring deployment of LLM with tool call capabilities such as Qwen3, GLM-4.5, Kimi K2, DeepSeek 3.2, etc. +- **System Permissions**: sudo privileges are required to install necessary packages and dependencies + +## 2. Installation Steps + +### 2.1 Install Packages + +```bash +sudo dnf update -y +sudo dnf install -y openeuler-intelligence-cli openeuler-intelligence-installer +``` + +If the `openeuler-intelligence-cli` package is not available on openEuler 24.03 LTS SP2, please refer to the solutions in the Q&A section. + +### 2.2 Initialize openEuler Intelligence + +```bash +sudo oi --init +``` + +![Choose to connect to existing service or deploy new service](./pictures/oi-deploy-01-welcome.png) + +The deployment of a new service involves installing RPM packages. Please run this command as a user with administrator privileges. + +**Note**: The command-line client interface style may vary depending on terminal compatibility. For the best experience, it is recommended to use a terminal emulator that supports 256 colors or higher. This document uses the GNOME terminal built into openEuler DevStation as an example. + +### 2.3 Select Deploy New Service + +On the welcome screen, select "Deploy a New Service" and press Enter to continue. + +![Select Deploy New Service](./pictures/oi-deploy-02-env-check.png) + +Select "Continue Configuration" to proceed to the parameter configuration interface. + +### 2.4 Configure Parameters + +In the parameter configuration interface, configure the following parameters according to your environment: + +- **Service Address**: Set the IP address for the openEuler Intelligence service (default: `127.0.0.1`) +- **Deployment Mode**: Choose "Lightweight Deployment" or "Full Deployment" + - Lightweight deployment only supports the command-line interface, initializes all built-in agents by default, and automatically selects "Intelligent Operations Assistant" as the default agent + - Full deployment supports both graphical and command-line interfaces, but requires manual initialization of agents via the web interface as needed + +![Basic Configuration](./pictures/oi-deploy-03-basic.png) + +After completing basic configuration, click the "LLM Configuration" tab to access the LLM configuration interface. + +![LLM Configuration Tab](./pictures/oi-deploy-04-llm-tab.png) + +Configure the LLM service parameters in order: + +- **API Endpoint**: Enter the API address for your online or local LLM service +- **API Key**: Provide the API Key or Token as required by your selected LLM service +- **Model Name**: Select the LLM you want to use + +Ensure the selected LLM supports tool calling capabilities; otherwise, agents will not function properly. + +![Fill in LLM Information](./pictures/oi-deploy-05-llm-fill-in.png) + +**Embedding Model Configuration**: + +- In Lightweight Deployment mode, not configuring an Embedding model may limit some agent functionality +- In Full Deployment mode, an Embedding model must be configured to proceed with deployment +- Supported Embedding endpoint formats include OpenAI-compatible format and MindIE format + +### 2.5 Start Deployment + +After completing LLM configuration, click the "Start Deployment" button to begin the deployment process. + +![Start Deployment](./pictures/oi-deploy-06-start.png) + +![Deployment in Progress](./pictures/oi-deploy-07-ing.png) + +The deployment process may take some time. Please wait patiently. The system will display a success message upon completion. + +![Deployment Complete](./pictures/oi-deploy-08-finish.png) + +After Lightweight Deployment completes, it will display the initialized agents and the automatically configured default agent. + +## 3. Intranet/Offline Environment Deployment + +### 3.1 Pre-download Resources + +For deployment in intranet environments, download the following resources in advance: + +- Download MongoDB Server installation package to `/opt/mongodb` directory: + - x86_64: [mongodb-org-server-7.0.21-1.el9.x86_64.rpm](https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/RPMS/mongodb-org-server-7.0.21-1.el9.x86_64.rpm) + - aarch64: [mongodb-org-server-7.0.21-1.el9.aarch64.rpm](https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/aarch64/RPMS/mongodb-org-server-7.0.21-1.el9.aarch64.rpm) + +- Download MongoDB Shell installation package to `/opt/mongodb` directory: + - x86_64: [mongodb-mongosh-2.5.2.x86_64.rpm](https://downloads.mongodb.com/compass/mongodb-mongosh-2.5.2.x86_64.rpm) + - aarch64: [mongodb-mongosh-2.5.2.aarch64.rpm](https://downloads.mongodb.com/compass/mongodb-mongosh-2.5.2.aarch64.rpm) + +- For **Full Deployment** mode, also download MinIO RPM installation package to `/opt/minio` directory: + - x86_64: [x86_64 Download Page](https://dl.min.io/server/minio/release/linux-amd64/) + *Select the latest version, e.g., `minio-20250907161309.0.0-1.x86_64.rpm`* + - aarch64: [aarch64 Download Page](https://dl.min.io/server/minio/release/linux-arm64/) + *Select the latest version, e.g., `minio-20250907161309.0.0-1.arm64.rpm`* + +### 3.2 Using LLM Services + +#### 3.2.1 Intranet Online LLM Service + +If the intranet LLM service requires HTTPS access, ensure certificates are properly configured in the system to avoid certificate verification failures during deployment. If valid certificates cannot be configured, add the following environment variable to skip certificate verification: + +```bash +export OI_SKIP_SSL_VERIFY=true +``` + +Add this command to your `~/.bashrc` or `~/.bash_profile` file to ensure the environment variable is set for each login session. + +#### 3.2.2 Locally Deployed LLM Service + +If no LLM service is available, you can deploy one locally that supports tool calling capabilities. openEuler Intelligence supports the standard OpenAI API (v1/chat/completions). + +For local devices without GPU, consider using MoE models with fewer activation parameters, such as Qwen3-30B-A3B, for better performance. Local deployment of LLM requires substantial computing resources; a server or PC with at least 32GB RAM and a multi-core CPU is recommended. + +### 3.3 Configure Proxy for openEuler Intelligence + +If your intranet environment requires a proxy server to access LLM services, add the following to the `oi-runtime` service file (`/etc/systemd/system/oi-runtime.service`): + +```ini +[Service] +Environment="HTTP_PROXY=http://:" +Environment="HTTPS_PROXY=http://:" +Environment="NO_PROXY=localhost,127.0.0.1" +``` + +Replace `` and `` with your actual proxy server address and port. After saving the file, execute the following commands to reload the service configuration and restart the `oi-runtime` service: + +```bash +sudo systemctl daemon-reload +sudo systemctl restart oi-runtime +``` + +## 4. Frequently Asked Questions (Q&A) + +### Q1: What if required packages cannot be found on openEuler 24.03 LTS SP2? + +**A1**: The official repository doesn't configure the EPOL repository update source by default. You can manually add the EPOL repository by creating the configuration file `/etc/yum.repos.d/openEuler.repo` with the following content: + +```ini +[update-EPOL] +name=update-EPOL +baseurl=https://repo.openeuler.org/openEuler-24.03-LTS-SP2/EPOL/update/main/$basearch/ +metadata_expire=1h +enabled=1 +gpgcheck=1 +gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS-SP2/OS/$basearch/RPM-GPG-KEY-openEuler +``` + +### Q2: How do I set the installation interface language? + +**A2**: The installation interface language is automatically selected based on your terminal's language environment variables. You can specify the language by setting the `LANG` environment variable: + +```bash +export LANG=zh_CN.UTF-8 # Set to Chinese +export LANG=en_US.UTF-8 # Set to English +``` + +To change the interface language after deployment, use the following commands in the command-line interface: + +```bash +oi --locale zh_CN # Switch to Chinese +oi --locale en_US # Switch to English +``` + +### Q3: What if pip package download speed is slow during deployment? + +**A3**: Use domestic pip mirror sources, such as Tsinghua University's mirror. Configure pip to use the Tsinghua mirror by modifying the pip configuration file: + +```bash +mkdir -p ~/.pip +cat > ~/.pip/pip.conf << EOF +[global] +index-url = https://pypi.tuna.tsinghua.edu.cn/simple +EOF +``` + +### Q4: How do I obtain required dependency packages without internet access? + +**A4**: Download the required dependency packages in an environment with internet access, then transfer them to the target environment via USB drive or other means. Detailed steps: + +1. In an internet-connected environment, download the required dependency packages using: + + ```bash + pip download -d /path/to/download/dir + ``` + + Replace `` with the actual package name and `/path/to/download/dir` with your download directory. + +2. Copy the downloaded dependency packages to the target environment. + +3. In the target environment, install the dependency packages using: + + ```bash + pip install --no-index --find-links=/path/to/download/dir + ``` + + Replace `/path/to/download/dir` with your download directory and `` with the package to install. + +### Q5: Server system version is constrained and cannot upgrade to openEuler 24.03 LTS SP2. What do I do? + +**A5**: Try manually installing required packages and dependencies on your current system version. Since openEuler 24.03 LTS and later versions use kernel 6.6 and Python 3.11, you only need to modify the version information in `/etc/os-release` and `/etc/openEuler-release` files to 24.03 LTS SP2. + +Note: This installation method requires you to prepare necessary packages and dependencies yourself, which may cause compatibility issues. Verify in a test environment before applying to production. + +### Q6: How do I access the graphical interface after full deployment? + +**A6**: After full deployment, access the graphical interface via a web browser. By default, the access address is `http://localhost:8080`. + +### Q7: Shell cannot connect to backend service after full deployment. What do I do? + +**A7**: If your runtime environment supports a full desktop client (e.g., DevStation or VNC connection), run `oi --login` to open the browser for login. Note: Before first login, ensure you have registered a valid account in the web interface and that your browser doesn't block pop-ups. + +If you cannot use a full desktop client (e.g., SSH connection or pure command-line environment), log in via a browser first. After successful browser login, open Developer Tools, find "Local Storage" in the "Application" tab, and check the value of the `ECSESSION` key. Then, in the Shell, press `Ctrl + S` to open the settings page, find the "API Key" input box, paste the `ECSESSION` value, and save. The Shell should then connect to the backend service normally. + +### Q8: How to initialize agents after full deployment? + +**A8**: After full deployment, first register an administrator user named `openEuler` on the web interface, then log into the graphical interface. Register required MCP Server services in the "Plugin Center," then create and configure agents in the "Application Center." For detailed operations, refer to the web graphical interface user manual. diff --git a/docs/en/openeuler_intelligence/oe_cli/oe_cli_agent_introduce.md b/docs/en/openeuler_intelligence/oe_cli/oe_cli_agent_introduce.md new file mode 100644 index 0000000000000000000000000000000000000000..1ab39782004061b026cebfbda2ff22dcf63ec634 --- /dev/null +++ b/docs/en/openeuler_intelligence/oe_cli/oe_cli_agent_introduce.md @@ -0,0 +1,1113 @@ +# openEuler Intelligence Agent User Manual + +## 1. Introduction + +This manual introduces the OE Agent series—**the core toolset of the openEuler Intelligence ecosystem**. Designed for developers, operators, and administrators working with openEuler, it supports mainstream deployment models including physical machines, virtual machines, and container clusters. Users can perform end-to-end operations entirely within the openEuler ecosystem without relying on third-party tools. + +The core value of this series lies in addressing key operational pain points in openEuler environments. It efficiently handles four core scenarios—"daily O&M, heterogeneous AI computing, general computing, and container/virtualization"—without the need to switch between multiple tools or memorize complex commands. This approach lowers the entry barrier for beginners while boosting productivity for experienced users. + +It offers three key features: First, **scenario-focused design**, providing specialized assistants for different tasks rather than a single "one-size-fits-all" tool. Second, **deep ecosystem integration**, fully leveraging openEuler's system characteristics to avoid compatibility issues. Third, **lightweight operations**, enabling complex tasks through simple interactions without requiring deep knowledge of underlying technical details. + +The series includes five core intelligent assistants, detailed in this manual: + +1. **OE-Intelligent Ops Assistant**: Handles daily openEuler operations and maintenance, covering basic tasks like network monitoring, performance analysis, hardware queries, and file management/transfer. +2. **OE-AI Computing Tuning Assistant**: Tailored for heterogeneous AI computing scenarios on openEuler, monitoring GPU/NPU status, tracking AI training tasks, and troubleshooting tuning issues. +3. **OE-General Computing Tuning Assistant**: Focuses on general computing (particularly for NUMA-architecture servers), performing architectural optimization, performance diagnosis, and tuning to resolve bottlenecks. +4. **OE-Container & Image Assistant**: Manages openEuler container and virtualization environments, covering Docker O&M, QEMU virtual machine management, and container performance optimization. +5. **Intelligent Q&A**: Provides answers to general operating system questions, supporting multi-turn conversational interaction. + +Subsequent sections will detail these five assistants, explaining their use cases, core capabilities, operational procedures, and practical examples. All content is aligned with real-world openEuler requirements, emphasizing **practical, reusable solutions** to help you get started quickly and maximize the tools' value. + +### Default Agent Summary + +| Agent Name | Core Use Cases | Core Capabilities | +| :--- | :--- | :--- | +| [**OE-Intelligent Ops Assistant**](#oe-intelligent-ops-assistant) | General system O&M for all scenarios (daily monitoring, basic operations, network management) | 1. Network status monitoring (traffic stats, connection troubleshooting, bandwidth analysis) & firewall rule management (port access, security policy configuration)
2. System performance analysis (CPU/memory/process load monitoring) & hardware information query (node configuration, hardware model collection)
3. Storage management (memory/Swap control, disk data sync) & file operations (content editing, cross-node transfer, batch management) | +| [**OE-AI Computing Tuning Assistant**](#oe-ai-computing-tuning-assistant) | AI/GPU/NPU heterogeneous computing (model training, heterogeneous hardware monitoring) | 1. Heterogeneous hardware status monitoring (real-time collection of GPU load/memory/temperature, NPU compute power/memory usage)
2. AI task system tracking (execution trace, resource consumption stats) & troubleshooting (out-of-memory errors, abnormal process location)
3. Basic O&M support (background task startup, log tracking, config file editing, cross-node data transfer)
4. AI training task performance analysis & optimization suggestions (identifies bottlenecks like Host-bound, slow operators, CPU preemption using full-stack trace data; provides targeted tuning guidance to reduce training cost waste from failures) | +| [**OE-General Computing Tuning Assistant**](#OE-General-Computing-Tuning-Assistant) | General computing (NUMA architecture optimization, performance bottleneck diagnosis) | 1. NUMA architecture analysis (node topology, CPU/memory affinity) & process binding optimization (startup binding, dynamic adjustment, container NUMA control)
2. CPU hotspot profiling (high-frequency function identification), cache loss diagnosis (L1/L2/L3 cache miss rate analysis) & system call troubleshooting (I/O bottlenecks, interrupt impact)
3. System performance metric collection (periodic CPU/memory/IOPS recording) & tuning validation (performance baseline comparison, optimization plan generation)
4. Intelligent parameter tuning & validation (generates application-tuning parameter recommendations using LLMs and custom prompts based on system, micro-architecture, and application metrics; quantifies performance gains via benchmark comparisons against baselines for precise optimization) | +| [**OE-Container & Image Assistant**](#oe-container--image-assistant) | Container & virtualization environment management (Docker O&M, QEMU management) | 1. Docker container lifecycle management (create/start/stop/delete) & image O&M (export/import, cross-node migration)
2. QEMU virtualization environment control (VM creation, resource configuration, network mode setup, status monitoring)
3. Container NUMA binding optimization (memory access pattern analysis, cross-node overhead reduction, performance tuning configuration) | + +**Notes:** + +1. **Key MCP Tools**: Focus on each Agent's unique capabilities. These scenario-specific tools are the primary criteria for selection. +2. **Basic General Tools**: Cover high-frequency daily O&M tasks. Integrated into all Agents to ensure basic operations can be performed without switching. +3. **Scenario Matching Guide**: For daily network/hardware monitoring, use the **OE-Intelligent Ops Assistant**; for AI heterogeneous computing, use the **OE-AI Computing Tuning Assistant**; for NUMA optimization, use the **OE-General Computing Tuning Assistant**; for container/virtualization management, use the **OE-Container & Image Assistant**. + + + +## 2. OE-Intelligent Ops Assistant + +The OE-Intelligent Ops Assistant is a **universal, all-scenario O&M agent** within the openEuler Intelligence ecosystem. It addresses the full "monitor-troubleshoot-handle-manage" lifecycle for enterprise server daily O&M, integrating 42 standardized MCP tools (covering network, processes, hardware, storage, files, etc.) to enable a highly efficient "one-agent-replaces-many-tools" operational model. + +Its core strengths are **low learning curve, full operational closure, and cross-environment adaptability**: It supports both natural language and standardized command interactions, allowing novice operators to perform tasks without memorizing complex commands. It closes the loop from "anomaly detection (e.g., high CPU load, network lag)" to "problem identification (e.g., process tracing, traffic analysis)" and finally "fault resolution (e.g., process termination, configuration change)" without leaving the module. Compatible with physical machines, VMs, and cloud servers, it serves as the **central one-stop tool for enterprise daily O&M**. + +### 2.1 MCP Service Matrix + +The OE-Intelligent Ops Assistant employs 42 standardized MCP tools to build five core capability modules: "Basic Info & Command Execution," "Process & System Monitoring," "Network Monitoring & Security," "Hardware & Storage Management," and "File & Text Operations." These cover over 95% of high-frequency daily O&M scenarios. The specific service-to-tool mapping is as follows: + +| Service Category | MCP Tool Name (with anchor) | Core Function | Default Port | +|------------------------|-----------------------------|------------------------------------------------|-----------| +| I. Basic Information & Command Execution | [remote_info_mcp](#remote_info_mcp) | Retrieves basic information (system version, hardware model) from local/remote nodes | 12100 | +| | [shell_generator_mcp](#shell_generator_mcp) | Generates and executes Shell commands based on natural language input | 12101 | +| II. Process & System Monitoring | [kill_mcp](#kill_mcp) | Terminates processes, views semaphore meanings, and handles abnormal processes | 12111 | +| | [nohup_mcp](#nohup_mcp) | Starts processes in the background to prevent termination upon terminal exit | 12112 | +| | [strace_mcp](#strace_mcp) | Traces process system calls to analyze the behavior of abnormal processes | 12113 | +| | [top_mcp](#top_mcp) | Monitors CPU/memory/process load to identify high-resource-consumption processes | 12110 | +| | [perf_interrupt_mcp](#perf_interrupt_mcp) | Locates high-frequency interrupt sources and analyzes related CPU usage | 12220 | +| | [flame_graph_mcp](#flame_graph_mcp) | Generates CPU flame graphs to visualize bottlenecks in the function call stack | 12222 | +| III. Network Monitoring & Security | [iftop_mcp](#iftop_mcp) | Monitors specified network interface traffic in real-time, showing bandwidth usage per connection/host | 12116 | +| | [nload_mcp](#nload_mcp) | Visually displays inbound/outbound bandwidth changes for network interfaces to identify bottlenecks | 12117 | +| | [netstat_mcp](#netstat_mcp) | Inspects network connection status, port usage, and protocol statistics to troubleshoot anomalies | 12118 | +| | [lsof_mcp](#lsof_mcp) | Identifies file usage conflicts and processes holding network connections to resolve resource contention | 12119 | +| | [ifconfig_mcp](#ifconfig_mcp) | Views and configures network interface IP/MAC addresses to diagnose basic issues | 12120 | +| | [ethtool_mcp](#ethtool_mcp) | Queries network interface characteristics (speed/duplex mode) and configures parameters | 12121 | +| | [tshark_mcp](#tshark_mcp) | Captures and analyzes network packets to diagnose protocol anomalies (e.g., packet loss, latency) | 12122 | +| | [firewalld_mcp](#firewalld_mcp) | Configures firewall rules and zones to manage port access permissions | 12130 | +| | [iptables_mcp](#iptables_mcp) | Configures iptables packet filtering and NAT rules to enhance network security | 12131 | +| | [nmap_mcp](#nmap_mcp) | Scans target IPs for active status and open ports to troubleshoot network reachability | 12135 | +| IV. Hardware & Storage Management | [lscpu_mcp](#lscpu_mcp) | Collects static CPU information (architecture, core count, NUMA nodes) | 12202 | +| | [free_mcp](#free_mcp) | Displays overall system memory and Swap usage to identify insufficient memory | 13100 | +| | [sync_mcp](#sync_mcp) | Forces memory buffer data to be written to disk to prevent data loss | 13103 | +| | [swapon_mcp](#swapon_mcp) | Enables Swap devices/files to expand virtual memory capacity | 13104 | +| | [swapoff_mcp](#swapoff_mcp) | Disables Swap devices/files to free up disk resources | 13105 | +| | [fallocate_mcp](#fallocate_mcp) | Quickly creates Swap files of a specified size for emergency memory expansion | 13106 | +| V. File & Text Operations | [file_content_tool_mcp](#file_content_tool_mcp) | Performs CRUD operations on file content for text-based tasks | 12125 | +| | [file_transfer_mcp](#file_transfer_mcp) | Transfers files between local and remote nodes, supporting batch operations | 12136 | +| | [find_mcp](#find_mcp) | Finds files based on criteria like name, size, or modification time | 13107 | +| | [touch_mcp](#touch_mcp) | Creates empty files or modifies file access/modification timestamps | 13108 | +| | [mkdir_mcp](#mkdir_mcp) | Creates single or multi-level directories with configurable permissions | 13109 | +| | [rm_mcp](#rm_mcp) | Deletes files or directories, supporting forced deletion | 13110 | +| | [mv_mcp](#mv_mcp) | Moves files to a specified path or renames them | 13111 | +| | [ls_mcp](#ls_mcp) | Lists files/directories in a path, showing names, permissions, and sizes | 13112 | +| | [head_mcp](#head_mcp) | Displays the first N lines of a file (default: 10) | 13113 | +| | [tail_mcp](#tail_mcp) | Displays the last N lines of a file, supporting real-time tracking (`-f`) | 13114 | +| | [cat_mcp](#cat_mcp) | Displays the entire content of a file or concatenates multiple files | 13115 | +| | [chmod_mcp](#chmod_mcp) | Modifies read, write, and execute permissions for files/directories | 13117 | +| | [chown_mcp](#chown_mcp) | Changes the owner (user/group) of files/directories | 13116 | +| | [tar_mcp](#tar_mcp) | Archives or extracts files, supporting gzip/bzip2 compression | 13118 | +| | [zip_mcp](#zip_mcp) | Compresses or decompresses files in zip format, supporting password protection | 13119 | +| | [grep_mcp](#grep_mcp) | Searches file contents for keywords, supporting regular expressions | 13120 | +| | [sed_mcp](#sed_mcp) | Performs batch text replacement and deletion, supporting stream editing | 13121 | +| | [echo_mcp](#echo_mcp) | Writes text to a file (in overwrite or append mode) | 13125 | + +### 2.2 Use Cases + +The following use cases are categorized into five high-frequency operation and maintenance scenarios: "Network Troubleshooting, System Resource Monitoring, File Management, Abnormal Process Handling, and Hardware Information Query." A natural language interactive prompt format is provided; simply replace key information such as IP addresses, network interface names, and file paths to use them. All scenarios are tailored to the actual O&M needs within an enterprise environment. + +- **Scenario 1: Troubleshooting Server Network Latency (eth0 interface, high latency accessing an internal service)** + + ```text + The local server is experiencing high latency (>300ms) when accessing the internal business service at 192.168.2.5. The eth0 interface seems sluggish. Please help troubleshoot: + 1. Check the real-time traffic on the eth0 interface (statistics by source/destination IP) and the peak inbound/outbound bandwidth utilization; + 2. Identify the current number of network connections to 192.168.2.5, along with the corresponding Process IDs (PIDs) and names, to check for any abnormal connections; + 3. Inspect the firewalld rules for the 192.168.2.0/24 network segment for any port blocks, and finally provide optimization suggestions. + ``` + +- **Scenario 2: Continuous Resource Monitoring for a Remote Node (192.168.1.100, monitoring load during peak business hours)** + + ```text + Please continuously monitor the 192.168.1.100 node (during peak business hours 10:00-12:00, refreshing every 5 seconds): + 1. Check the 1/5/15-minute average CPU load and the top 5 memory-consuming processes (display process name, PID, and memory usage percentage); + 2. Monitor the disk usage of the root partition (/) and provide a real-time alert if it exceeds 85%; + 3. Record the peak CPU load and maximum memory usage during the monitoring period, and generate a brief statistical report. + ``` + +- **Scenario 3: Cross-node File Transfer and Configuration Modification (Local → 192.168.1.101, business configuration update)** + + ```text + Please complete the following two tasks: + 1. Transfer the local file `/usr/local/app/conf/new_app.conf` to the `/opt/app/conf/` directory on 192.168.1.101. Back up the old file as `app.conf.bak` before overwriting it; + 2. On 192.168.1.101, modify the value of "max_connection" to 500 and "timeout" to 300 in the `/opt/app/conf/app.ini` file. After modifying, verify the configuration file syntax is correct. + ``` + +- **Scenario 4: Abnormal Process Handling and Service Restart (High CPU usage by the local "api-service" process)** + + ```text + The local "api-service" process (PID ~2345) has sustained CPU usage over 90% and its interface responses are timing out. Please handle this as follows: + 1. First, check the process's system call activity (focusing on I/O-related calls), then force-terminate it using the SIGKILL signal; + 2. Restart the process in the background using `nohup`, specifying the startup parameter `--config /etc/api-service/config.yaml` and outputting logs to `/var/log/api-service/run.log`; + 3. After restarting, check if the new process PID and its listening port (8080) are active correctly, and check the first 10 log entries for any errors. + ``` + +- **Scenario 5: Hardware and System Information Collection for a Remote Node (192.168.1.102, new node onboarding check)** + + ```text + Please collect the basic hardware and system information for the new node 192.168.1.102: + 1. Check detailed CPU information (architecture, number of physical cores, logical cores, NUMA node layout, frequency range); + 2. Obtain the system version, kernel version, hostname, and list of IP addresses; + 3. Check the total physical memory size, number of memory channels, capacity and frequency of individual memory modules, and the disk partition layout (focusing on the size and filesystem type of the /data partition). Return the results in a structured format. + ``` + + + +## 3. OE Intelligent Computing Tuning Assistant + +The OE Intelligent Computing Tuning Assistant is a **specialized agent for heterogeneous computing scenarios** within the openEuler Intelligence ecosystem. It focuses on core scenarios like AI training and inference, providing integrated "Hardware Monitoring - Task Diagnosis - O&M Tuning" capabilities for GPU (NVIDIA) and NPU heterogeneous computing environments. Its core value lies in addressing three major pain points in intelligent computing: **difficulty in monitoring heterogeneous hardware status, challenges in locating task performance bottlenecks, and high complexity of operations**. This enables even non-expert O&M personnel to quickly manage intelligent computing resources and troubleshoot task issues using natural language commands, significantly reducing O&M costs for intelligent computing environments. + +This agent is deeply adapted to deployment environments like GPU server clusters and AI workstations, enabling a full closed-loop process from "real-time resource monitoring" to "automatic anomaly alerting" and "optimization suggestion generation." It covers the entire lifecycle needs from model training initiation to stable inference service operation. + +### 3.1 MCP Service Matrix + +Based on 28 standardized MCP tools, the OE Intelligent Computing Tuning Assistant comprises three core modules: "Heterogeneous Hardware Monitoring," "Intelligent Computing Task Diagnosis," and "Fundamental O&M Support." This structure precisely maps to the end-to-end requirements of intelligent computing scenarios, from "hardware status awareness" to "task problem resolution." The specific mappings between services and tools are as follows: + +| Service Category | MCP Tool Name (with anchor) | Core Function | Default Port | +| :--------------- | :------------------------------------------------ | :--------------------------------------------- | :----------- | +| **I. Heterogeneous Hardware Monitoring** | [nvidia_mcp](#nvidia_mcp) | Real-time monitoring of NVIDIA GPU status (load, memory usage, temperature, driver version) with support for simultaneous multi-GPU viewing. | 12114 | +| | [npu_mcp](#npu_mcp) | Monitors NPU resource usage (compute utilization, memory occupancy) and configures NPU task binding parameters. | 12115 | +| **II. Intelligent Computing Task Diagnosis** | [strace_mcp](#strace_mcp) | Traces system calls of intelligent computing task processes to locate I/O bottlenecks (e.g., data read timeouts, network request blocking). | 12113 | +| | [top_mcp](#top_mcp) | Views CPU/memory/process load on intelligent computing nodes to identify abnormal processes preempting GPU resources. | 12110 | +| **III. Intelligent Computing Task O&M** | [shell_generator_mcp](#shell_generator_mcp) | Generates commands specific to intelligent computing scenarios (e.g., GPU task binding commands, model training startup scripts). | 12101 | +| | [nohup_mcp](#nohup_mcp) | Starts long-running intelligent computing tasks (e.g., AI model training) in the background to prevent termination upon terminal exit. | 12112 | +| | [kill_mcp](#kill_mcp) | Terminates abnormal intelligent computing tasks (e.g., training processes with memory leaks, unresponsive inference services). | 12111 | +| **IV. Network and Security Management** | [firewalld_mcp](#firewalld_mcp) | Configures firewall rules for intelligent computing nodes, opening AI service ports (e.g., TensorBoard port 6006, inference service port 8080). | 12130 | +| | [iptables_mcp](#iptables_mcp) | Manages network access to intelligent computing nodes, restricting unauthorized device connections to GPU nodes to ensure data security. | 12131 | +| **V. File and Data Management** | [file_transfer_mcp](#file_transfer_mcp) | Transfers intelligent computing task data (e.g., model files, training datasets, checkpoint files) with support for cross-node batch transfer. | 12136 | +| | [file_content_tool_mcp](#file_content_tool_mcp) | Edits intelligent computing task configuration files (e.g., model parameter YAML, training hyperparameter JSON) with support for batch modification. | 12125 | +| | [find_mcp](#find_mcp) | Finds target files on intelligent computing nodes (e.g., model files of a specific version, training logs). | 13107 | +| | [cat_mcp](#cat_mcp) | Views intelligent computing task logs (e.g., training error logs, inference service runtime logs). | 13115 | +| | [tail_mcp](#tail_mcp) | Tails intelligent computing task logs in real time to monitor training progress (e.g., loss changes, epoch completion). | 13114 | +| **VI. Basic System Operations** | [ls_mcp](#ls_mcp) | Lists contents of intelligent computing task directories (e.g., training output folders, model weight file lists). | 13112 | +| | [rm_mcp](#rm_mcp) | Deletes redundant files on intelligent computing nodes (e.g., expired training logs, corrupted checkpoint files). | 13110 | +| | [mv_mcp](#mv_mcp) | Moves intelligent computing task files (e.g., relocating trained model files to a storage directory). | 13111 | +| | [touch_mcp](#touch_mcp) | Creates empty files required for intelligent computing tasks (e.g., log files, task flag files). | 13108 | +| | [mkdir_mcp](#mkdir_mcp) | Creates directories for intelligent computing tasks (e.g., training output directories organized by date). | 13109 | +| **VII. Compression and Permission Management** | [tar_mcp](#tar_mcp) | Packages and unpacks intelligent computing task data (e.g., compressing training datasets, decompressing model file packages). | 13118 | +| | [zip_mcp](#zip_mcp) | Compresses intelligent computing log files (e.g., full training logs) to reduce storage footprint. | 13119 | +| | [chmod_mcp](#chmod_mcp) | Modifies file permissions for intelligent computing tasks (e.g., setting model files to read-only, adding execute permission to startup scripts). | 13117 | +| | [chown_mcp](#chown_mcp) | Changes ownership of intelligent computing task files (e.g., granting model file ownership to a training user). | 13116 | +| **VIII. Text Processing and Synchronization** | [grep_mcp](#grep_mcp) | Searches for keywords in intelligent computing logs (e.g., "error", "out of memory" messages). | 13120 | +| | [sed_mcp](#sed_mcp) | Performs batch search-and-replace in intelligent computing configuration files (e.g., modifying the batch size parameter across all training scripts). | 13121 | +| | [echo_mcp](#echo_mcp) | Writes text content to intelligent computing task files (e.g., adding task markers to a log file). | 13125 | +| | [sync_mcp](#sync_mcp) | Flushes intelligent computing task data from memory to disk (e.g., training checkpoint temporary files) to prevent data loss. | 13103 | +| | [head_mcp](#head_mcp) | Views the first N lines of an intelligent computing file (e.g., for quick preview of a training configuration file). | 13113 | +| **IX. AI Slow Node Detection** | [systrace_mcp](#systrace_mcp) | Provides AI training task performance analysis and optimization suggestions. Based on full-stack trace data, it identifies bottlenecks (e.g., host-bound, slow operators, CPU preemption) and offers targeted tuning guidance to reduce training cost waste caused by failures. | 12145 | + +### 3.2 Use Cases + +The following section categorizes high-frequency intelligent computing scenarios into five areas: GPU Training Monitoring, NPU Inference Deployment, VRAM Overflow Troubleshooting, Cross-Node Resource Comparison, and Training Log Analysis. It provides natural language interaction prompts; simply replace key information such as node IP, task name, and file path to use them. All scenarios are tailored to the actual operational needs of enterprise AI training and inference. + +- **Scenario 1: Real-time GPU Model Training Monitoring (BERT Pre-training, GPUs 0 & 1)** + > I am running a BERT model pre-training task locally on GPUs 0 and 1 (process name: `bert-train`). Please monitor it in real-time: + > 1. Refresh the utilization (%), used VRAM / total VRAM (e.g., 8192MiB/16384MiB), and core temperature for GPUs 0 and 1 every 3 seconds. + > 2. Track the training log at `/data/train_logs/bert-train-202501.log` and output the latest 15 lines whenever the keywords "epoch" or "loss" appear. + > 3. If any GPU's temperature exceeds 88°C or its VRAM usage surpasses 90%, trigger an immediate alert and provide temporary load-reduction suggestions. + +- **Scenario 2: NPU Inference Service Deployment and Status Verification (Node 192.168.3.20)** + > Deploy an image classification inference service on the NPU node at 192.168.3.20: + > 1. First, check the resource usage (compute utilization, memory usage) of NPUs 0 and 1, and identify any device with an idle rate over 80%. + > 2. Use `nohup` to start the "img-cls-infer" service in the background, binding it to an idle NPU device. Use the configuration file `/etc/infer/img-cls.conf` and direct logs to `/var/log/infer/img-cls.log`. + > 3. After startup, verify the service's Process ID (PID) and check if the listening port (9000) is active. Finally, send a test request to validate the inference response. + +- **Scenario 3: GPU VRAM Overflow Troubleshooting and Optimization (YOLOv8 Training Task)** + > My local YOLOv8 object detection training task (PID: 3456) failed with a "CUDA out of memory" error. Please help me troubleshoot and optimize: + > 1. Check the current VRAM usage details for all GPUs and identify the process/task consuming the most memory. + > 2. Use `strace` to trace the system calls leading up to the failure and analyze if there were any abnormal memory requests (e.g., repeatedly loading the dataset). + > 3. Based on the task configuration, suggest optimization strategies (e.g., adjust batch size, enable gradient checkpointing, use mixed-precision training) and generate a modified startup command. + +- **Scenario 4: Cross-GPU Node Resource Comparison and Task Allocation (Nodes 192.168.3.10 & 192.168.3.11)** + > I need to deploy a new Transformer model training task. Please compare the two GPU nodes, 192.168.3.10 and 192.168.3.11: + > 1. Check each node's GPU models, counts, total VRAM per card, and current overall VRAM usage. + > 2. Compare the average GPU load (over 10 minutes) and the number of idle CPU cores for currently running tasks on both nodes. + > 3. Considering the new task is expected to use 12GiB of VRAM per GPU with ~70% load, determine which node is more suitable for deployment and provide GPU binding recommendations. + +- **Scenario 5: Batch Analysis of Training Logs for Problem Identification (Multi-Node Logs)** + > The distributed training task across three GPU nodes (192.168.3.10, .11, .12) is frequently interrupted. Please help me analyze the logs: + > 1. Collect the training logs from all three nodes (path: `/data/dist-train/logs/train.log`) and transfer them to the local `/tmp/analysis/` directory. + > 2. Search all logs for the keywords "error", "timeout", and "crash", then count the frequency of each error type and its corresponding node. + > 3. Extract 20 lines of context before and after each error to identify potential issues like inter-node communication timeouts or insufficient hardware resources, then generate an analysis report. + +- **Scenario 6: Slow Node Detection in AI Training Tasks** + > 1. Deploy the `systrace` collection component on the AI training task machine and perform data collection. Refer to: [https://gitee.com/openeuler/sysTrace/blob/master/docs/0.quickstart.md](https://gitee.com/openeuler/sysTrace/blob/master/docs/0.quickstart.md) + > 2. Modify the configuration files in the `/etc/systrace/config` directory. Refer to: [https://gitee.com/openeuler/sysTrace/blob/master/systrace_mcp/README.md](https://gitee.com/openeuler/sysTrace/blob/master/systrace_mcp/README.md) + > 3. Use the agent for dialogue: "Help me analyze the AI training status of the machine at IP [IP Address]." + + + +## 4. OE General Computing Tuning Assistant + +The OE General Computing Tuning Assistant is a **performance optimization agent for general computing scenarios** within the openEuler Intelligence ecosystem. It focuses on overcoming performance bottlenecks in NUMA architecture servers and general computing nodes, with core capabilities spanning four key areas: "NUMA Resource Management, System Hotspot Tracking, Cache Efficiency Analysis, and End-to-End Performance Tuning." Its core value lies in addressing three major pain points in general computing: **NUMA cross-node access latency, difficulty in pinpointing CPU performance bottlenecks, and inefficient system resource scheduling.** By integrating an intelligent toolchain, it enables developers and operators to enhance the performance of general computing tasks (achieving an average performance gain of 10%-30%) without requiring deep expertise in low-level technical details. + +This agent is deeply adapted for NUMA servers and general computing clusters based on x86/ARM architectures. It is widely applicable to scenarios like databases, big data processing, and high-concurrency services, providing a closed-loop capability covering "performance baseline collection -> bottleneck identification -> optimization implementation -> result verification." + +### 4.1 MCP Service Matrix + +The OE General Computing Tuning Assistant is built on 46 standardized MCP tools, organized into four core modules: **"NUMA Architecture Optimization, System Performance Diagnosis, General Computing O&M, and Tuning Validation."** This structure comprehensively addresses the full lifecycle needs of general computing scenarios, from **"hardware topology awareness"** to **"continuous performance optimization."** The specific mapping of services to tools is as follows: + +| Service Category | MCP Tool Name (with Anchor) | Core Function | Default Port | +| :--------------- | :--------------------------- | :------------ | :----------- | +| **I. NUMA Architecture Optimization** | [numa_topo_mcp](#numa_topo_mcp) | Collects NUMA hardware topology (node distribution, CPU/memory binding) and system configuration to generate a topology map. | 12203 | +| | [numa_bind_proc_mcp](#numa_bind_proc_mcp) | Binds a process to a specified NUMA node at startup to avoid cross-node memory access latency. | 12204 | +| | [numa_rebind_proc_mcp](#numa_rebind_proc_mcp) | Dynamically adjusts the NUMA binding of running processes to optimize resource allocation in real time. | 12205 | +| | [numa_container_mcp](#numa_container_mcp) | Monitors the NUMA memory access patterns of Docker containers to optimize containerized application performance. | 12214 | +| | [numastat_mcp](#numastat_mcp) | Collects statistics on system-wide NUMA memory access (local/remote ratio) to identify excessive cross-node access. | 12210 | +| | [numa_cross_node_mcp](#numa_cross_node_mcp) | Identifies processes causing excessive cross-node memory access and quantifies the performance impact. | 12211 | +| | [numa_perf_compare_mcp](#numa_perf_compare_mcp) | Compares task performance (response time, throughput) under different NUMA binding strategies to select the optimal solution. | 12208 | +| | [numa_diagnose_mcp](#numa_diagnose_mcp) | Uses a control variable method with NUMA binding to pinpoint hardware-level performance anomalies (e.g., memory controller bottlenecks). | 12209 | +| **II. System Performance Diagnosis** | [hotspot_trace_mcp](#hotspot_trace_mcp) | Quickly locates CPU hotspot functions in the system/process (based on `perf` sampling) to identify computational bottlenecks. | 12216 | +| | [cache_miss_audit_mcp](#cache_miss_audit_mcp) | Analyzes the causes of CPU cache misses (L1/L2/L3) and quantifies their impact on performance. | 12217 | +| | [func_timing_trace_mcp](#func_timing_trace_mcp) | Precisely measures function execution time and call stacks to locate time-consuming critical paths. | 12218 | +| | [strace_syscall_mcp](#strace_syscall_mcp) | Traces the frequency and duration of process system calls to troubleshoot inefficient I/O or network calls. | 12219 | +| | [perf_interrupt_mcp](#perf_interrupt_mcp) | Analyzes CPU consumption by high-frequency interrupt sources (e.g., NICs, timers) to locate interrupt-induced performance degradation. | 12220 | +| | [flame_graph_mcp](#flame_graph_mcp) | Generates CPU/Memory flame graphs to visualize function call stacks and performance bottleneck distribution. | 12222 | +| **III. General Computing Monitoring** | [lscpu_mcp](#lscpu_mcp) | Collects CPU architecture details (core count, frequency, cache size, NUMA node affinity). | 12202 | +| | [top_mcp](#top_mcp) | Monitors CPU/memory/process load in real time, focusing on resource usage trends for general computing tasks. | 12110 | +| | [vmstat_mcp](#vmstat_mcp) | Collects system resource interaction metrics (context switches, IOPS, Swap usage) to identify bottlenecks. | 13101 | +| | [sar_mcp](#sar_mcp) | Periodically records system performance data (CPU utilization, memory paging, network throughput) and supports historical analysis. | 13102 | +| | [free_mcp](#free_mcp) | Displays overall system memory/Swap usage to identify the impact of insufficient memory on general computing. | 13100 | +| **IV. Tuning Task O&M** | [shell_generator_mcp](#shell_generator_mcp) | Generates dedicated commands for scenarios like NUMA binding and performance testing (e.g., `numactl` startup commands). | 12101 | +| | [nohup_mcp](#nohup_mcp) | Launches long-running performance tests (e.g., stress tests, benchmarks) in the background to prevent terminal disruption. | 12112 | +| | [kill_mcp](#kill_mcp) | Terminates abnormal performance testing processes (e.g., stress tests that have exhausted resources). | 12111 | +| | euler-copilot-tune_mcp | Invokes the Euler tuning model to generate scenario-based automated tuning suggestions (e.g., kernel parameter adjustments). | 12147 | +| **V. File and Configuration Management** | [file_transfer_mcp](#file_transfer_mcp) | Transfers performance test data and tuning configuration files (e.g., benchmark results, NUMA binding scripts). | 12136 | +| | [file_content_tool_mcp](#file_content_tool_mcp) | Edits system configuration files (e.g., kernel parameters in `sysctl.conf`, application performance settings). | 12125 | +| | [grep_mcp](#grep_mcp) | Searches for key metrics in performance logs (e.g., "cache miss", "numa node"). | 13120 | +| | [sed_mcp](#sed_mcp) | Batch-modifies tuning configuration files (e.g., globally adjusting application memory allocation policies). | 13121 | +| | [cat_mcp](#cat_mcp) | Views performance test logs and system monitoring reports (e.g., historical `sar` data). | 13115 | +| | [tail_mcp](#tail_mcp) | Tracks performance test logs in real time (e.g., QPS changes during stress tests). | 13114 | +| **VI. Basic System Operations** | [ls_mcp](#ls_mcp) | Lists performance test directories and tuning tool paths (e.g., the directory storing `perf` reports). | 13112 | +| | [mkdir_mcp](#mkdir_mcp) | Creates performance test working directories (e.g., benchmark result directories organized by date). | 13109 | +| | [rm_mcp](#rm_mcp) | Deletes redundant performance logs and obsolete test data. | 13110 | +| | [mv_mcp](#mv_mcp) | Archives performance test results (e.g., moves pre- and post-tuning comparison data to an archive directory). | 13111 | +| | [sync_mcp](#sync_mcp) | Flushes temporary performance test data to disk (e.g., intermediate benchmark results) to prevent data loss. | 13103 | +| **VII. Compression and Permission Management** | [tar_mcp](#tar_mcp) | Archives performance test logs (e.g., complete `sar` monitoring data) to reduce storage space usage. | 13118 | +| | [zip_mcp](#zip_mcp) | Compresses tuning configuration file packages for easy distribution across nodes. | 13119 | +| | [chmod_mcp](#chmod_mcp) | Modifies execution permissions for performance testing tools and tuning scripts. | 13117 | +| | [chown_mcp](#chown_mcp) | Grants tuning users access to performance monitoring data files. | 13116 | +| **VIII. Remote and Network Management** | [remote_info_mcp](#remote_info_mcp) | Retrieves basic information (OS version, hardware configuration) from remote general-computing nodes. | 12100 | +| | [firewalld_mcp](#firewalld_mcp) | Configures port access rules for performance monitoring tools (e.g., allowing remote access to the `sar` data port). | 12130 | +| | [iptables_mcp](#iptables_mcp) | Manages network access for general-computing nodes to ensure a secure performance testing environment. | 12131 | + +### 4.2 Use Cases + +The following section provides natural language prompts, categorized into three high-frequency scenarios: "NUMA binding optimization, CPU cache issue diagnosis, and system tuning validation." You can use these prompts directly by replacing the key information such as process names, node details, and thresholds. + +- **Scenario 1: MySQL Database NUMA Binding Optimization (Process Name: mysqld)** + + ```text + The MySQL server at 192.168.3.10 is experiencing high query latency. Please perform NUMA optimization: + 1. Check this server's NUMA topology and the memory usage rate of each node. + 2. Bind the mysqld process to NUMA node 0 to prevent cross-node access. + 3. After optimization, compare whether the query latency has decreased and provide the performance improvement data. + ``` + +- **Scenario 2: Diagnosing High CPU Cache Miss Rate (Application Name: order-service)** + + ```text + The locally running "order-service" application has low throughput, suspected to be a cache-related issue: + 1. Audit the L3 cache miss rate for this application's process; flag as abnormal if it exceeds 5%. + 2. Identify the frequently called functions causing the cache misses. + 3. Provide optimization suggestions (e.g., data preloading, function logic adjustments). + ``` + +- **Scenario 3: Monitoring NUMA Memory Access for Containerized Apps (Container Name: payment-container)** + + ```text + Please monitor the Docker container "payment-container": + 1. Check the current NUMA node memory access distribution for this container. + 2. Calculate the percentage of cross-node memory access and alert if it exceeds 10%. + 3. Provide a configuration plan for NUMA binding of the container. + ``` + +- **Scenario 4: Comparing NUMA Tuning Results (Pre- vs. Post-Tuning)** + + ```text + The "user-service" application on node 192.168.4.12 has undergone NUMA binding (bound to node 1). Please verify the results: + 1. Compare the application's CPU usage (peak/average) and interface response times (P95/P99) before and after tuning. + 2. Check the memory access hit rate for NUMA node 1 post-tuning (target is to increase it to over 90%) and the volume of cross-node access. + 3. Perform a load test simulating 2000 concurrent requests; compare the service throughput and error rate before and after tuning, and generate a visual comparison report (including trend charts for key metrics). + ``` + +- **Scenario 5: Diagnosing High CPU Usage from Frequent Interrupts on a General Compute Node (Node: 192.168.4.13)** + + ```text + The idle CPU usage on the general-purpose compute node 192.168.4.13 exceeds 30%, suspected to be caused by frequent interrupts: + 1. Identify the source of the frequent interrupts on this node (e.g., network card interrupts, timer interrupts) and report the CPU usage for each interrupt source. + 2. Analyze the impact of these frequent interrupts on general computing tasks (e.g., data processing services), such as increased context switches or longer execution delays. + 3. Propose an interrupt optimization strategy (e.g., binding the network card interrupt queue to a dedicated NUMA node CPU, adjusting the timer interrupt frequency) and verify if the idle CPU usage drops below 15% after optimization. + ``` + +- **Scenario 6: Using General Euler-copilot-tune to Tune MySQL Service** + + ```text + 1. Modify the .env.yaml and app_config.yaml files in the /etc/euler-copilot-tune/config directory to configure the target server and tuning service. Refer to: https://gitee.com/openeuler/A-Tune/tree/euler-copilot-tune/#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%87%86%E5%A4%87. Then restart the tuning MCP service (systemctl restart tune-mcpserver). + 2. In the agent, use the following: "Collect performance data for the MySQL service, analyze performance bottlenecks, recommend parameters, and begin tuning." + ``` + + + +## 5. OE Container Image Assistant + +The OE Container Image Assistant is an **intelligent agent for full lifecycle management of containers and virtualization** within the openEuler Intelligence ecosystem. It focuses on three core areas: Docker container O&M, QEMU virtualization management, and container NUMA optimization, delivering integrated capabilities for "image management, container scheduling, virtualization deployment, and performance optimization." Its core value lies in addressing three major pain points in containerized virtualization environments: **inefficient context switching between multiple tools, challenges in aligning containers with hardware resources, and complex virtualization deployment procedures**. By integrating a standardized MCP toolchain, it enables operations staff to manage container and virtualization environments efficiently without needing expertise in multiple technology stacks. + +This agent is deeply compatible with Docker 19.03+ and QEMU 5.0+. It is widely applicable in scenarios such as containerized application deployment (e.g., microservices), lightweight virtualized testing (e.g., multi-system environments), and container NUMA performance optimization (e.g., high-concurrency container services), covering the entire workflow from "image pull, to container runtime, to virtualization deployment, and finally resource tuning." + +### 5.1 MCP Service Matrix + +The OE Container Image Assistant employs 28 standardized MCP tools, organized into four core modules: **Docker Container Management, QEMU Virtualization Control, Container NUMA Optimization, and Basic O&M Support.** This structure comprehensively addresses the full lifecycle management requirements for both containerized and virtualized environments. The specific mappings between service categories and tools are as follows: + +| Service Category | MCP Tool Name (with anchor) | Core Function | Default Port | +| :--------------- | :--------------------------- | :------------ | :----------- | +| **I. Docker Container Management** | [docker_mcp](#docker_mcp) | Manages the full lifecycle of Docker containers (create/start/stop/delete/restart), with support for port mapping, data volume mounting, and restart policy configuration. | 12133 | +| | [numa_bind_docker_mcp](#numa_bind_docker_mcp) | Binds Docker containers to specific NUMA nodes to optimize memory access performance and avoid cross-node latency. | 12206 | +| | [strace_mcp](#strace_mcp) | Traces system calls of container processes to diagnose issues such as startup failures and resource access errors. | 12113 | +| **II. QEMU Virtualization Management & Control** | [qemu_mcp](#qemu_mcp) | Manages QEMU virtual machines (create/start/shutdown/destroy), including configuration of CPU cores, memory size, and disk mounts. | 12134 | +| | [file_transfer_mcp](#file_transfer_mcp) | Facilitates file transfer between the local host and QEMU VMs or Docker containers (e.g., for VM images, container configs). | 12136 | +| **III. Image & Configuration Management** | [file_content_tool_mcp](#file_content_tool_mcp) | Edits configuration files for containers and VMs (e.g., Docker Compose YAML, QEMU startup scripts), supporting batch modifications. | 12125 | +| | [grep_mcp](#grep_mcp) | Searches for keywords (e.g., "error", "timeout", "numa") within container logs and VM runtime logs. | 13120 | +| | [sed_mcp](#sed_mcp) | Performs batch search-and-replace on container/VM configuration parameters (e.g., globally adjusting memory limits or network settings). | 13121 | +| | [cat_mcp](#cat_mcp) | Displays the contents of container logs (startup/app logs) and QEMU VM status information. | 13115 | +| | [tail_mcp](#tail_mcp) | Monitors container logs (e.g., request logs from microservices) and QEMU VM boot process logs in real-time. | 13114 | +| **IV. Container O&M Assistance** | [shell_generator_mcp](#shell_generator_mcp) | Generates specialized commands for container/virtualization scenarios (e.g., Docker NUMA binding commands, QEMU startup commands). | 12101 | +| | [kill_mcp](#kill_mcp) | Terminates abnormal container processes and unresponsive QEMU VM processes. | 12111 | +| | [remote_info_mcp](#remote_info_mcp) | Retrieves basic information from remote container and virtualization nodes (OS version, Docker/QEMU version, hardware config). | 12100 | +| **V. Network & Security Control** | [firewalld_mcp](#firewalld_mcp) | Configures firewall rules for container/VM nodes, opening service ports (e.g., app port 8080) and remote access ports (e.g., SSH port 22). | 12130 | +| | [iptables_mcp](#iptables_mcp) | Manages container network access (e.g., restricting outbound connections) and sets VM network forwarding rules to ensure environment security. | 12131 | +| **VI. Basic File Operations** | [ls_mcp](#ls_mcp) | Lists the contents of container directories (e.g., application files) and QEMU VM image directories. | 13112 | +| | [mkdir_mcp](#mkdir_mcp) | Creates data directories for containers and storage directories for QEMU VM images (e.g., organized by container name or VM ID). | 13109 | +| | [rm_mcp](#rm_mcp) | Deletes redundant containers, expired QEMU VMs, and obsolete image files (e.g., unused Docker images, corrupted VM disk files). | 13110 | +| | [mv_mcp](#mv_mcp) | Moves container data volumes and QEMU VM image files (e.g., migrating backed-up VM images to a storage directory). | 13111 | +| | [touch_mcp](#touch_mcp) | Creates empty files required by containers/VMs (e.g., container startup flag files, VM configuration templates). | 13108 | +| | [sync_mcp](#sync_mcp) | Forces writes of container memory data and QEMU VM temporary data to disk (e.g., data volume cache, memory snapshots) to prevent data loss. | 13103 | +| **VII. Compression & Permission Management** | [tar_mcp](#tar_mcp) | Packages and unpacks container data volumes and QEMU VM image files (e.g., compressing backups, decompressing image archives). | 13118 | +| | [zip_mcp](#zip_mcp) | Compresses container logs and VM configuration files to reduce storage footprint. | 13119 | +| | [chmod_mcp](#chmod_mcp) | Modifies permissions for container data volumes and VM files (e.g., setting read/write on config files, execute on startup scripts). | 13117 | +| | [chown_mcp](#chown_mcp) | Changes the owner of container directories and VM files (e.g., granting a data volume to the container's runtime user). | 13116 | +| **VIII. File Content Viewing** | [head_mcp](#head_mcp) | Displays the first N lines of container config files or QEMU startup scripts (e.g., for a quick preview of Docker Compose config). | 13113 | +| | [find_mcp](#find_mcp) | Finds container-related files (e.g., specific logs, Docker images) and QEMU VM images (filterable by size, modification time). | 13107 | +| | [echo_mcp](#echo_mcp) | Writes content to container config files or VM log files (e.g., adding env variables to a script, inserting markers into logs). | 13125 | + +### 5.2 Use Cases + +The following section categorizes common scenarios into three high-frequency use cases: "Docker container management," "QEMU virtual machine control," and "container NUMA optimization." It provides natural language prompts where you can directly substitute key information like container names, virtual machine names, and node IPs. + +- **Scenario 1: Docker Container Deployment and Log Monitoring (Container Name: web-app, Image Name: nginx:1.24)** + + ```text + Deploy and monitor an Nginx container locally for me: + 1. Pull the nginx:1.24 image, create a container named "web-app", expose port 80, and mount the host directory `/home/nginx/html` to `/usr/share/nginx/html` inside the container; + 2. After starting the container, track its logs in real-time and filter for the keyword "error"; + 3. Check the container's CPU and memory usage to confirm it is running normally. + ``` + +- **Scenario 2: QEMU Virtual Machine Creation and Configuration (VM Name: test-vm, Memory: 4G, vCPUs: 2)** + + ```text + Create a QEMU virtual machine for me: + 1. Using the `/data/images/euleros.qcow2` image, create a virtual machine named "test-vm" with 2 vCPUs, 4GB of RAM, and a 100GB disk; + 2. Start the virtual machine and check its status; + 3. Configure the virtual machine's network for bridge mode to ensure external network access. + ``` + +- **Scenario 3: Container NUMA Binding Optimization (Container Name: db-container, NUMA Node: 1)** + + ```text + The "db-container" (a MySQL service) on host 192.168.4.10 is responding slowly. Help me optimize it: + 1. Check the host's NUMA topology and confirm the CPU and memory resources of Node 1; + 2. Configure NUMA binding for "db-container" to exclusively use resources from Node 1; + 3. After optimization, check if the container's memory access latency has decreased. + ``` + +- **Scenario 4: Cross-Node Container Image Migration (Source Node: 192.168.4.10, Target Node: 192.168.4.11, Image Name: app:v1.0)** + + ```text + Migrate a container image for me: + 1. On node 192.168.4.10, export the "app:v1.0" image to `/data/backups/app-v1.0.tar`; + 2. Transfer the tar file to the `/data/images` directory on node 192.168.4.11; + 3. Import the image on the target node and verify it is functional. + ``` + +## 6. MCP Overview + +The current system integrates **over 50 core functional modules**, offering comprehensive support for operational scenarios across seven major domains: + +1. **Hardware Information Collection**: Supports CPU architecture analysis, NUMA topology queries, and GPU load monitoring, establishing a data foundation for underlying resource analysis. +2. **System Resource Monitoring**: Collects memory usage, CPU load, and network traffic data in real-time to dynamically identify resource bottlenecks. +3. **Process and Service Management**: Provides process start/stop control, signal meaning lookup, and stable background process execution, ensuring reliable service operation. +4. **File Operation Management**: Covers file creation, deletion, modification, and queries; compression and decompression (tar/zip formats); and permission/ownership configuration, managing the entire file lifecycle. +5. **Performance Diagnosis and Optimization**: **Features built-in flame graph generation** (encapsulating the native `perf` tool), system call analysis, and CPU cache miss analysis, enabling deep performance tuning without deploying additional tools. +6. **Virtualization and Container Support**: Supports Docker container NUMA binding and QEMU virtual machine management, addressing virtualization operational needs. +7. **Network Scanning and Discovery**: Performs IP/network segment scanning and port identification, facilitating rapid basic network assessments. + +These capabilities utilize native system tools (e.g., `perf`) exclusively, requiring no extra third-party operational software, thus fulfilling all requirements from basic maintenance to in-depth performance optimization. + +Regarding deployment and iteration, the framework offers two core advantages: + +- **Dual-Mode Adaptability**: Supports both local invocation and remote SSH management, suitable for single-machine and multi-node cluster environments. +- **High Stability and Extensibility**: Upgrades or maintenance on individual modules do not affect the overall system. The open-source nature allows community developers to contribute to feature development and bug fixes, continuously enhancing the modules for evolving operational scenarios. + +### 6.1 MCP Server List + +| Port Number | Service Name | Directory Path | Introduction | +| :---------- | :------------------------------ | :------------------------------------------ | :------------------------------------------------- | +| 12100 | [remote_info_mcp](#remote_info_mcp) | mcp_center/servers/remote_info_mcp | Get endpoint information | +| 12101 | [shell_generator_mcp](#shell_generator_mcp) | mcp_center/servers/shell_generator_mcp | Generate & execute shell commands | +| 12110 | [top_mcp](#top_mcp) | mcp_center/servers/top_mcp | Get system load information | +| 12111 | [kill_mcp](#kill_mcp) | mcp_center/servers/kill_mcp | Control process & view process signal meanings | +| 12112 | [nohup_mcp](#nohup_mcp) | mcp_center/servers/nohup_mcp | Background process execution | +| 12113 | [strace_mcp](#strace_mcp) | mcp_center/servers/strace_mcp | Trace process information, useful for anomaly analysis | +| 12114 | [nvidia_mcp](#nvidia_mcp) | mcp_center/servers/nvidia_mcp | GPU load information query | +| 12115 | [npu_mcp](#npu_mcp) | mcp_center/servers/npu_mcp | NPU query and control | +| 12116 | [iftop_mcp](#iftop_mcp) | mcp_center/servers/iftop_mcp | Network traffic monitoring | +| 12117 | [nload_mcp](#nload_mcp) | mcp_center/servers/nload_mcp | Nload bandwidth monitoring | +| 12118 | [netstat_mcp](#netstat_mcp) | mcp_center/servers/netstat_mcp | netstat network connection monitoring | +| 12119 | [lsof_mcp](#lsof_mcp) | mcp_center/servers/lsof_mcp | Quickly troubleshoot file usage conflicts, network connection anomalies, and process resource usage issues | +| 12120 | [ifconfig_mcp](#ifconfig_mcp) | mcp_center/servers/ifconfig_mcp | ifconfig network interface information monitoring | +| 12121 | [ethtool_mcp](#ethtool_mcp) | mcp_center/servers/ethtool_mcp | ethtool network interface information query, features, and settings | +| 12122 | [tshark_mcp](#tshark_mcp) | mcp_center/servers/tshark_mcp | Capture, display, and analyze network traffic | +| 12125 | [file_content_tool_mcp](#file_content_tool_mcp) | mcp_center/servers/file_content_tool_mcp | CRUD operations on file content | +| 12130 | [firewalld_mcp](#firewalld_mcp) | mcp_center/servers/firewalld_mcp | Firewalld Network Firewall Management Tool | +| 12131 | [iptables_mcp](#iptables_mcp) | mcp_center/servers/iptables_mcp | iptables firewall management tool | +| 12133 | [docker_mcp](#docker_mcp) | mcp_center/servers/docker_mcp | Docker tool | +| 12134 | [qemu_mcp](#qemu_mcp) | mcp_center/servers/qemu_mcp | Qemu virtual machine management tool | +| 12135 | [nmap_mcp](#nmap_mcp) | mcp_center/servers/nmap_mcp | Nmap IP scanning | +| 12136 | [file_transfer_mcp](#file_transfer_mcp) | mcp_center/servers/file_transfer_mcp | File transfer/download | +| 12145 | [systrace_mcp](#systrace_mcp) | mcp_center/servers/systrace/systrace_mcp | Start the MCP Server service | +| 12146 | systrace_openapi_mcp | mcp_center/servers/systrace/systrace_mcp | Start the OpenAPI Server service | +| 12147 | [euler-copilot-tune_mcp](#euler-copilot-tune_mcp) | mcp_center/servers/euler-copilot-tune_mcp | Tune the MCP service | +| 12202 | [lscpu_mcp](#lscpu_mcp) | mcp_center/servers/lscpu_mcp | Collect static information such as CPU architecture | +| 12203 | [numa_topo_mcp](#numa_topo_mcp) | `mcp_center/servers/numa_topo_mcp` | Query NUMA hardware topology and system configuration | +| 12204 | [numa_bind_proc_mcp](#numa_bind_proc_mcp) | `mcp_center/servers/numa_bind_proc_mcp` | Bind a process to a specified NUMA node at startup | +| 12205 | [numa_rebind_proc_mcp](#numa_rebind_proc_mcp) | `mcp_center/servers/numa_rebind_proc_mcp` | Modify the NUMA binding of an already running process | +| 12206 | [numa_bind_docker_mcp](#numa_bind_docker_mcp) | `mcp_center/servers/numa_bind_docker_mcp` | Configure NUMA binding for a Docker container | +| 12208 | [numa_perf_compare_mcp](#numa_perf_compare_mcp) | mcp_center/servers/numa_perf_compare_mcp | Use NUMA bindings to control test variables | +| 12209 | [numa_diagnose_mcp](#numa_diagnose_mcp) | mcp_center/servers/numa_diagnose_mcp | Use NUMA bindings to diagnose hardware issues | +| 12210 | [numastat_mcp](#numastat_mcp) | mcp_center/servers/numastat_mcp | View the system's overall NUMA memory access status | +| 12211 | [numa_cross_node_mcp](#numa_cross_node_mcp) | mcp_center/servers/numa_cross_node_mcp | Identify processes with high cross-node memory access | +| 12214 | [numa_container_mcp](#numa_container_mcp) | mcp_center/servers/numa_container_mcp | Monitor NUMA memory access of Docker containers | +| 12216 | [hotspot_trace_mcp](#hotspot_trace_mcp) | mcp_center/servers/hotspot_trace_mcp | Quickly locate CPU performance bottlenecks in the system/process | +| 12217 | [cache_miss_audit_mcp](#cache_miss_audit_mcp) | mcp_center/servers/cache_miss_audit_mcp | Locate performance degradation caused by CPU cache misses | +| 12218 | [func_timing_trace_mcp](#func_timing_trace_mcp) | mcp_center/servers/func_timing_trace_mcp | Accurately measure function execution time (including call stack) | +| 12219 | [strace_syscall_mcp](#strace_syscall_mcp) | mcp_center/servers/strace_syscall_mcp | Investigate inefficient system calls (high frequency/time-consuming) | +| 12220 | [perf_interrupt_mcp](#perf_interrupt_mcp) | mcp_center/servers/perf_interrupt_mcp | Identify high CPU usage caused by frequent interrupts | +| 12222 | [flame_graph_mcp](#flame_graph_mcp) | mcp_center/servers/flame_graph_mcp | Flame graph generation: Visualizing performance bottlenecks | +| 13100 | [free_mcp](#free_mcp) | mcp_center/servers/free_mcp | Obtain overall system memory status | +| 13101 | [vmstat_mcp](#vmstat_mcp) | mcp_center/servers/vmstat_mcp | System resource interaction bottleneck information collection | +| 13102 | [sar_mcp](#sar_mcp) | mcp_center/servers/sar_mcp | System resource monitoring and fault diagnosis | +| 13103 | [sync_mcp](#sync_mcp) | mcp_center/servers/sync_mcp | Write memory buffer data to disk | +| 13104 | [swapon_mcp](#swapon_mcp) | mcp_center/servers/swapon_mcp | View swap device status | +| 13105 | [swapoff_mcp](#swapoff_mcp) | mcp_center/servers/swapoff_mcp | Disable swap device | +| 13106 | [fallocate_mcp](#fallocate_mcp) | mcp_center/servers/fallocate_mcp | Temporarily create and enable swap file | +| 13107 | [find_mcp](#find_mcp) | mcp_center/servers/find_mcp | File search | +| 13108 | [touch_mcp](#touch_mcp) | mcp_center/servers/touch_mcp | File creation and timestamp modification | +| 13109 | [mkdir_mcp](#mkdir_mcp) | mcp_center/servers/mkdir_mcp | Folder creation | +| 13110 | [rm_mcp](#rm_mcp) | mcp_center/servers/rm_mcp | File deletion | +| 13111 | [mv_mcp](#mv_mcp) | mcp_center/servers/mv_mcp | File movement or renaming | +| 13112 | [ls_mcp](#ls_mcp) | mcp_center/servers/ls_mcp | View directory contents | +| 13113 | [head_mcp](#head_mcp) | mcp_center/servers/head_mcp | File header viewer | +| 13114 | [tail_mcp](#tail_mcp) | mcp_center/servers/tail_mcp | File end viewer | +| 13115 | [cat_mcp](#cat_mcp) | mcp_center/servers/cat_mcp | File content viewer | +| 13116 | [chown_mcp](#chown_mcp) | mcp_center/servers/chown_mcp | File owner changer | +| 13117 | [chmod_mcp](#chmod_mcp) | mcp_center/servers/chmod_mcp | File permission changer | +| 13118 | [tar_mcp](#tar_mcp) | mcp_center/servers/tar_mcp | File compression/decompression tool | +| 13119 | [zip_mcp](#zip_mcp) | mcp_center/servers/zip_mcp | File compression/decompression tool | +| 13120 | [grep_mcp](#grep_mcp) | mcp_center/servers/grep_mcp | File content search tool | +| 13121 | [sed_mcp](#sed_mcp) | mcp_center/servers/sed_mcp | Text processing tool | +| 13125 | [echo_mcp](#echo_mcp) | mcp_center/servers/echo_mcp | Text writing tool | + +### 6.2 MCP Server Details + +This section provides detailed explanations of the core MCP service modules. Structured "Service-Tool-Function-Parameter-Return Value" tables clearly outline the capabilities of each MCP Server, including its constituent tools, their core functions, key invocation parameters, and the structured data format of the execution results. The goal is to provide operations and maintenance personnel with an at-a-glance operational guide, enabling them to quickly understand service functions, correctly configure parameters, and efficiently parse returned results, thereby meeting the practical needs of daily O&M, performance analysis, and troubleshooting. + +#### remote_info_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **remote_info_mcp** | top_collect_tool | Retrieves information on the **top k processes by memory usage** on a target device (local or remote); k is configurable. | - `host`: Remote hostname/IP (optional for local collection)
- `k`: Number of processes to retrieve (default: 5) | A list of processes, each containing `pid` (process ID), `name` (process name), and `memory` (memory usage in MB). | +| | get_process_info_tool | Queries **detailed runtime information** for a specified process ID (PID), supporting both local and remote hosts. | - `host`: Remote hostname/IP (optional for local queries)
- `pid`: Target process ID (required; must be a positive integer) | A detailed process dictionary containing `status`, `create_time`, `cpu_times`, `memory_info`, `open_files` (list), `connections` (list), etc. | +| | change_name_to_pid_tool | Performs a reverse lookup to find the **PID list** for a given process name, addressing the "find PID by name" scenario. | - `host`: Remote hostname/IP (optional for local queries)
- `name`: Target process name (required; cannot be empty) | A string of space-separated PIDs (e.g., "1234 5678"). | +| | get_cpu_info_tool | Collects CPU hardware and usage information from the target device, including core count, frequency, and per-core utilization. | - `host`: Remote hostname/IP (optional for local collection) | A CPU information dictionary containing `physical_cores`, `total_cores`, `max_frequency` (MHz), `cpu_usage` (per-core usage %), etc. | +| | memory_analyze_tool | Analyzes the memory usage of the target device, calculating total, available, and used memory, as well as usage percentage. | - `host`: Remote hostname/IP (optional for local collection) | A memory information dictionary containing `total` (MB), `available` (MB), `used` (MB), and `percent` (usage %). | +| | get_disk_info_tool | Collects disk partition information and capacity usage status for the target device, filtering out temporary filesystems (e.g., tmpfs, devtmpfs). | - `host`: Remote hostname/IP (optional for local collection) | A list of disks, each containing `device`, `mountpoint`, `fstype`, `total` (GB), and `percent` (usage %). | +| | get_os_info_tool | Obtains the operating system type and version information of the target device. | - `host`: Remote hostname/IP (optional for local collection) | An operating system information string (e.g., "openEuler 22.03 LTS"). | +| | get_network_info_tool | Collects network interface information for the target device, including IP address, MAC address, and interface status (up/down). | - `host`: Remote hostname/IP (optional for local collection) | A list of network interfaces, each containing `interface` (name), `ip_address`, `mac_address`, and `is_up` (boolean). | +| | write_report_tool | Writes system information analysis results to a local report file, automatically generating a timestamped file path. | - `report`: The report content string (required; cannot be empty) | The file path string for the generated report (e.g., "/reports/system_report_20240520_153000.txt"). | +| | telnet_test_tool | Tests Telnet connectivity to a specified port on a target host to verify if the port is open. | - `host`: Remote hostname/IP (required)
- `port`: Port number (required; 1-65535) | A boolean connectivity result (`True` for success, `False` for failure). | +| | ping_test_tool | Tests ICMP Ping connectivity to a target host to verify network reachability. | - `host`: Remote hostname/IP (required) | A boolean connectivity result (`True` for success, `False` for failure). | +| | get_dns_info_tool | Collects DNS configuration information from the target device, including nameserver lists and search domains. | - `host`: Remote hostname/IP (optional for local collection) | A DNS information dictionary containing `nameservers` (list) and `search` (list of search domains). | +| | perf_data_tool | Collects real-time performance data from the target device, supporting monitoring for a specific process or the entire system. | - `host`: Remote hostname/IP (optional for local collection)
- `pid`: Process ID (optional for system-wide monitoring) | A performance data dictionary containing `cpu_usage` (%), `memory_usage` (%), and `io_counters` (I/O statistics). | + +--- + +#### shell_generator_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **shell_generator_mcp** | cmd_generator_tool | 1. System Info Collection: If `host` is specified, retrieves remote host info (OS distro, uptime, root partition/memory usage, top 5 memory processes) via SSH; otherwise, collects local info.
2. LLM Command Generation: Feeds system info and user requirements to an LLM to generate context-appropriate Linux shell commands.
3. Format Validation: Extracts and validates YAML-formatted command blocks from the LLM response, outputting clean command strings. | - `host` (optional): Remote hostname/IP. Host credentials must be pre-configured. If omitted, operates on the local machine.
- `goal` (required): Description of user's O&M needs (e.g., "check root partition usage," "find top 3 memory-consuming processes"). | A valid, context-appropriate Linux shell command string (post-format validation). | +| | cmd_executor_tool | 1. Multi-Scenario Execution: Executes shell commands on local or remote hosts.
2. Remote Execution: Connects via SSH (using pre-configured credentials), executes the command, captures stdout/stderr, and closes the connection.
3. Local Execution: Executes commands locally via the `subprocess` module.
4. Error Handling: Returns specific error messages on failure (e.g., permission denied, command not found). | - `host` (optional): Remote hostname/IP. Must match configuration. If omitted, operates locally.
- `command` (required): The Linux shell command string to execute (ideally generated by `cmd_generator_tool`). | Success: The standard output from the command.
Failure: A specific error message (e.g., "Permission denied," "command not found"). | + +--- + +#### top_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **top_mcp** | top_collect_tool | Retrieves information on the **top k processes by memory usage** on a target device (local or remote); k is configurable. | - `host`: Remote hostname/IP (optional for local collection)
- `k`: Number of processes to retrieve (default: 5) | A list of processes, each containing `pid` (process ID), `name` (process name), and `memory` (memory usage in MB). | +| | top_servers_tool | Uses the `top` command to retrieve load information for a specified target (local/remote server), covering CPU, memory, disk, network, and process status to support O&M, performance analysis, and troubleshooting. | - `host`: Remote hostname/IP (optional for local collection)
- `dimensions`: Metrics to collect (optional values: cpu, memory, disk, network)
- `include_processes`: Whether to include process information (boolean)
- `top_n`: Number of top processes to return (integer) | - `server_info`: Basic server information
- `metrics`: Statistical results for the requested dimensions
- `processes`: List of processes (returned only if `include_processes` is `True`)
- `error`: Error message (null if no error). | + +--- + +#### kill_mcp + +| Tool Name | Tool Function | Core Input Parameters | Key Return Content | +| :-------- | :------------ | :-------------------- | :----------------- | +| `kill_process` | Sends a signal to terminate a process using the `kill` command (supports local/remote; default signal is SIGTERM(15)). | - `pid`: PID of the process to terminate (required; positive integer)
- `signal`: Signal number (optional; common values: 9 (SIGKILL), 15 (SIGTERM))
- `host`: Remote hostname/IP (optional for local operations; must match configuration) | - `success`: Operation status (boolean)
- `message`: Result description
- `data`: Operation details
  - `host`: Target host
  - `pid`: Target PID
  - `signal`: Signal sent | +| `pause_process` | Pauses a process by sending the `SIGSTOP` signal via the `kill` command (supports local/remote). | - `pid`: PID of the process to pause (required; positive integer)
- `host`: Remote hostname/IP (optional for local operations; must match configuration) | - `success`: Operation status (boolean)
- `message`: Result description
- `data`: Operation details
  - `host`: Target host
  - `pid`: Target PID | +| `resume_process` | Resumes a paused process by sending the `SIGCONT` signal via the `kill` command (supports local/remote). | - `pid`: PID of the process to resume (required; positive integer)
- `host`: Remote hostname/IP (optional for local operations; must match configuration) | - `success`: Operation status (boolean)
- `message`: Result description
- `data`: Operation details
  - `host`: Target host
  - `pid`: Target PID | +| `check_process_status` | Checks the existence and name of a process on a local or remote host. | - `pid`: PID of the process to check (required; positive integer)
- `host`: Remote hostname/IP (optional for local operations; must match configuration) | - `success`: Query status (boolean)
- `message`: Result description
- `data`: Process status
  - `host`: Queried host
  - `pid`: Queried PID
  - `exists`: Process existence (boolean)
  - `name`: Process name (empty if non-existent) | +| `get_kill_signals` | Retrieves the list of available `kill` signals with their numbers, names, and descriptions from a local or remote server. | - `host`: Remote hostname/IP (optional for local query; must match configuration) | - `success`: Query status (boolean)
- `message`: Result description
- `data`: Signal information
  - `host`: Queried host
  - `signals`: List of signals, each with:
    - `number`: Signal number
    - `name`: Signal name (e.g., SIGTERM)
    - `description`: Signal description | + +#### ls_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------- | :----------------- | :------------------------------------------------------------------------------------ | :-------------------------- | +| **ls_mcp** | ls_collect_tool | List directory contents | - `host`: Remote hostname/IP (optional for local collection)
- `file`: Target file or directory | List of the target directory's contents | + +--- + +#### lscpu_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :--------------- | :---------------------------------------------------------------------------------- | :----------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **lscpu_mcp** | lscpu_info_tool | Uses the `lscpu` command to obtain CPU architecture and core static information from a local or remote host | - `host`: Remote hostname/IP (if not provided, retrieves local machine information) | `architecture`: CPU architecture (e.g., x86_64)
`cpus_total`: Total number of CPUs
`model_name`: CPU model name
`cpu_max_mhz`: Maximum CPU frequency (MHz)
`vulnerabilities`: Dictionary of mitigation states for common security vulnerabilities | + +--- + +#### mkdir_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :----------------- | :---------------------------------------------------------------------------- | :------------------------------------------------------------------ | :--------------------------------------------- | +| **mkdir_mcp** | mkdir_collect_tool | Creates directories; supports batch creation, permission setting, and recursive creation of multi-level directories | - `host`: Remote hostname/IP (optional for local collection)
- `dir`: Directory name to create | Boolean value indicating if the `mkdir` operation was successful | + +--- + +#### mv_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------------------ | :--------------------------------------------------------------------------------------------------------- | :---------------------------------------- | +| **mv_mcp** | mv_collect_tool | Move or rename files/directories | - `host`: Remote hostname/IP (optional for local collection)
- `source`: Source file or directory
- `target`: Target file or directory | Boolean value indicating if the `mv` operation was successful | + +--- + +#### nohup_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :---------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **nohup_mcp** | run_with_nohup | Runs commands using `nohup` on a local or remote server, supporting background execution | - `command`: Command to execute (string, required)
- `host`: Remote host IP or hostname (optional for local execution)
- `port`: SSH port (default 22, used for remote execution)
- `username`: SSH username (required for remote execution)
- `password`: SSH password (required for remote execution)
- `output_file`: Output log file path (optional, auto-generated by default)
- `working_dir`: Command execution working directory (optional) | - `success`: Whether the operation was successful (boolean)
- `message`: Execution result description (string)
- `pid`: Process ID (returned on success)
- `output_file`: Output log file path
- `command`: The actual executed command
- `host`: Host where the command was executed (`localhost` for local) | + +--- + +#### perf_microarch_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------------- | :------------------- | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------- | +| **perf_microarch_mcp** | cache_miss_audit_tool | Collects system-wide microarchitecture metrics using `perf stat -a -e cache-misses,cycles,instructions sleep 10`; supports local and remote execution | - `host`: Optional; remote hostname/IP; leave blank for local machine | `cache_misses`: Number of cache misses
`cycles`: Number of CPU cycles
`instructions`: Number of instructions
`ipc`: Instructions per Cycle
`seconds`: Collection duration (seconds) | + +--- + +#### cache_miss_audit_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :----------------------- | :------------------- | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------- | +| **cache_miss_audit_mcp** | cache_miss_audit_tool | Collects system-wide microarchitecture metrics using `perf stat -a -e cache-misses,cycles,instructions sleep 10`; supports local and remote execution | - `host`: Optional; remote hostname/IP; leave blank for local machine | `cache_miss`: Number of cache misses
`cycles`: Number of CPU cycles
`instructions`: Number of instructions
`ipc`: Instructions per Cycle
`seconds`: Collection duration (seconds) | + +--- + +#### cat_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :---------------- | :------------------- | :------------------------------------------------------------------------------------ | :-------------------- | +| **cat_mcp** | cat_file_view_tool | Quickly view file content | - `host`: Remote hostname/IP (optional for local collection)
- `file`: Path of the file to view | File content as a string | + +--- + +#### chmod_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :--------------------- | :------------------------------- | :---------------------------------------------------------------------------------------------------------- | :-------------------------------------- | +| **chmod_mcp** | chmod_change_mode_tool | Modify file or directory permissions | - `host`: Remote hostname/IP (optional for local operation)
- `mode`: Permission mode (e.g., 755, 644)
- `file`: Path to the target file or directory | Boolean value indicating if the operation was successful | + +--- + +#### chown_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :---------------------- | :---------------------------------------- | :------------------------------------------------------------------------------------------------ | :-------------------------------------- | +| **chown_mcp** | chown_change_owner_tool | Change the owner and group of a file or directory | - `host`: Remote hostname/IP (optional for local operation)
- `owner_group`: File owner and associated group
- `file`: Target file to modify | Boolean value indicating if the operation was successful | + +--- + +#### disk_manager_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :------------------ | :----------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **disk_manager_mcp** | top_collect_tool | Retrieves the **top k processes by memory usage** on a target device (local/remote); k is configurable. | - `host`: Remote hostname/IP (optional for local collection)
- `k`: Number of processes to retrieve (default: 5) | List of processes (includes `pid`, `name`, `memory` usage in MB) | +| | get_process_info_tool | Queries **detailed runtime information** for a specified process ID (PID); supports local and remote process information retrieval. | - `host`: Remote hostname/IP (optional for local query)
- `pid`: Process ID to query (required, positive integer) | Detailed process dictionary (includes `status`, `create_time`, `cpu_times`, `memory_info`, `open_files` list, `connections` list, etc.) | +| | change_name_to_pid_tool | Performs a reverse lookup for the **PID list** based on a process name; addresses the "find PID by known process name" scenario. | - `host`: Remote hostname/IP (optional for local query)
- `name`: Process name to query (required, non-empty) | A space-separated string of PIDs (e.g., "1234 5678") | +| | get_cpu_info_tool | Collects CPU hardware and usage status information from the target device, including core count, frequency, and per-core utilization. | - `host`: Remote hostname/IP (optional for local collection) | CPU information dictionary (includes `physical_cores`, `total_cores`, `max_frequency` in MHz, `cpu_usage` per-core percentage, etc.) | +| | memory_analyze_tool | Analyzes memory usage of the target device; calculates total, available, and used memory, and the usage percentage. | - `host`: Remote hostname/IP (optional for local collection) | Memory information dictionary (includes `total` in MB, `available` in MB, `used` in MB, `percent` usage percentage) | +| | get_disk_info_tool | Collects disk partition information and capacity usage status of the target device, filtering out temporary filesystems (tmpfs, devtmpfs). | - `host`: Remote hostname/IP (optional for local collection) | List of disks (includes `device` name, `mountpoint`, `fstype`, `total` capacity in GB, `percent` disk usage percentage, etc.) | +| | get_os_info_tool | Gets the operating system type and version information of the target device; adapted for openEuler. | - `host`: Remote hostname/IP (optional for local collection) | Operating system information string (e.g., "openEuler 22.03 LTS") | +| | get_network_info_tool | Collects network interface information of the target device, including IP address, MAC address, and interface status (up/down). | - `host`: Remote hostname/IP (optional for local collection) | List of network interfaces (includes `interface` name, `ip_address`, `mac_address`, `is_up` boolean status, etc.) | +| | write_report_tool | Writes system information analysis results to a local report file; automatically generates a timestamped file path. | - `report`: Report content string (required, non-empty) | Report file path string (e.g., "/reports/system_report_20240520_153000.txt") | +| | telnet_test_tool | Tests Telnet connectivity to a specified port on a target host, verifying if the port is open. | - `host`: Remote hostname/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 a target host, verifying network reachability. | - `host`: Remote hostname/IP (required) | Connectivity result (Boolean: `True` for success, `False` for failure) | +| | get_dns_info_tool | Collects DNS configuration information of the target device, including nameserver list and search domains. | - `host`: Remote hostname/IP (optional for local collection) | DNS information dictionary (includes `nameservers` list, `search` domains list) | +| | perf_data_tool | Collects real-time performance data from the target device; supports monitoring for a **specified process** or the **entire system**. | - `host`: Remote hostname/IP (optional for local collection)
- `pid`: Process ID (optional for system-wide monitoring) | Performance data dictionary (includes `cpu_usage` %, `memory_usage` %, `io_counters` I/O statistics) | + +--- + +#### echo_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :---------------------- | :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------- | +| **echo_mcp** | echo_write_to_file_tool | Uses the `echo` command to write text to a file | - `host`: Remote hostname/IP (optional for local operation)
- `text`: Text content to write
- `file`: Target file path
- `options`: `echo` options (optional, e.g., `-n` to suppress newline)
- `mode`: Write mode; "w" for overwrite, "a" for append (default: "w") | Boolean value indicating if the write operation was successful | + +--- + +#### fallocate_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :---------------- | :------------------------- | :-------------------------------------------------- | :------------------------------------------------------------------------------------------------------- | :----------------------------------------------- | +| **fallocate_mcp** | fallocate_create_file_tool | Creates and enables a swap file (description corrected to match parameters) | - `host`: Remote hostname/IP (optional for local collection)
- `name`: Device or file path for the swap space
- `size`: Size of the disk space to create | Boolean value indicating if enabling the swap file was successful | + +--- + +#### file_content_tool_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :------------------------ | :--------------- | :----------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **file_content_tool_mcp** | file_grep_tool | Searches file content for a specified pattern using the `grep` command (supports regex, case-insensitivity). | - `file_path`: Target file path (absolute, required)
- `pattern`: Search pattern (supports regex, e.g., "error", required)
- `options`: `grep` options (e.g., `-n` for line numbers, `-i` for ignore case, optional)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: 22)
- `username`: SSH username (default: `root`)
- `password`: SSH password (required for remote execution) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Local file search completed")
- `data`: Operation details dictionary
  - `host`: Operation host
  - `file_path`: Target file path
  - `result`: List of matching lines | +| | file_sed_tool | Replaces matched content in a file using the `sed` command (supports global replace and in-place editing). | - `file_path`: Target file path (absolute, required)
- `pattern`: Replacement pattern (e.g., "s/old/new/g", required)
- `in_place`: Modify original file? (boolean, default: `False`)
- `options`: `sed` options (e.g., `-i.bak` for backup, optional)
- `host`/`port`/`username`/`password`: As above | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Remote sed execution successful")
- `data`: Operation details dictionary
  - `host`: Operation host
  - `file_path`: Target file path
  - `result`: Replaced content (returned if `in_place=False`) | +| | file_awk_tool | Processes text files using the `awk` command (supports column extraction, conditional filtering). | - `file_path`: Target file path (absolute, required)
- `script`: `awk` script (e.g., "'{print \$1,\$3}'", required)
- `options`: `awk` options (e.g., `-F:` for colon separator, optional)
- `host`/`port`/`username`/`password`: As above | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Local awk processing successful")
- `data`: Operation details dictionary
  - `host`: Operation host
  - `file_path`: Target file path
  - `result`: List of processed lines | +| | file_sort_tool | Sorts text files using the `sort` command (supports numeric sort, column sort, reverse order). | - `file_path`: Target file path (absolute, required)
- `options`: `sort` options (e.g., `-n` numeric, `-k2` by column 2, `-r` reverse, optional)
- `output_file`: Sorted output file path (optional)
- `host`/`port`/`username`/`password`: As above | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Remote sorting completed")
- `data`: Operation details dictionary
  - `host`: Operation host
  - `file_path`/`output_file`: Input/Output paths
  - `result`: Sorted list (returned if no `output_file`) | +| | file_unique_tool | Removes duplicate lines from a text file using the `uniq` command (supports counting occurrences). | - `file_path`: Target file path (absolute, required)
- `options`: `uniq` options (e.g., `-u` unique lines, `-c` count, optional)
- `output_file`: Deduplicated output file path (optional)
- `host`/`port`/`username`/`password`: As above | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Local deduplication completed")
- `data`: Operation details dictionary
  - `host`: Operation host
  - `file_path`/`output_file`: Input/Output paths
  - `result`: Deduplicated list (returned if no `output_file`) | +| | file_echo_tool | Writes content to a file using the `echo` command (supports overwrite and append modes). | - `content`: Content to write (e.g., "Hello World", required)
- `file_path`: Target file path (absolute, required)
- `append`: Append mode? (boolean, default: `False` for overwrite)
- `host`/`port`/`username`/`password`: As above | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Local write successful")
- `data`: Operation details dictionary
  - `host`: Operation host
  - `file_path`: Target file path
  - `action`: "overwrite" or "append" | + +--- + +#### find_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **find_mcp** | find_with_name_tool | Find files in a specified directory by name. | - `host`: Remote hostname/IP (optional for local collection)
- `path`: Directory to search
- `name`: Filename to find | List of found files (includes `file`: the specific file paths matching the criteria). | +| | find_with_date_tool | Find files in a specified directory by modification time. | - `host`: Remote hostname/IP (optional for local collection)
- `path`: Directory to search
- `date_condition`: Time condition (e.g., `-mtime -1` for files modified within 1 day) | List of found files (includes `file`: the specific file paths matching the criteria). | +| | find_with_size_tool | Find files in a specified directory by file size. | - `host`: Remote hostname/IP (optional for local collection)
- `path`: Directory to search
- `size_condition`: Size condition (e.g., `+10M` for files larger than 10MB) | List of found files (includes `file`: the specific file paths matching the criteria). | + +--- + +#### flame_graph_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :---------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **flame_graph_mcp** | flame_graph | Generate a CPU flame graph from `perf.data` for performance analysis (supports local/remote). | - `host`: Remote host address (optional)
- `perf_data_path`: Path to the input `perf.data` file (required)
- `output_path`: Path for the output SVG file (default: `~/cpu_flamegraph.svg`)
- `flamegraph_path`: Path to the FlameGraph scripts (required) | - `svg_path`: Path to the generated flame graph file.
- `status`: Generation status (`success` / `failure`).
- `message`: Status message or error details. | + +--- + +#### free_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **free_mcp** | free_collect_tool | Collect overall memory status information from a target device (local/remote). | - `host`: Remote hostname/IP (optional for local collection) | A list containing memory information:
- `total`: Total system memory (MB)
- `used`: Used system memory (MB)
- `free`: Free physical memory (MB)
- `available`: Allocatable system memory (MB) | + +--- + +#### func_timing_trace_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------------- | :---------------- | :------------ | :-------------------- | :----------------- | +| **func_timing_trace_mcp** | func_timing_trace_tool | Use `perf record -g` to collect function call stack timings for a target process and identify hot functions. | - `pid`: Target Process ID (PID)
- `host`: Remote host IP/domain name (optional; leave blank for local collection) | `top_functions`: A list of function timing analysis results. Each item includes:
• `function`: Function name
• `self_percent`: Self-time percentage
• `total_percent`: Total time percentage (including children)
• `call_stack`: Function call stack | + +--- + +#### grep_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **grep_mcp** | grep_search_tool | Search for a specified pattern in a file. | - `host`: Remote hostname/IP (optional for local search)
- `options`: Grep options (optional, e.g., `-i` for ignore case, `-n` for line numbers)
- `pattern`: Pattern to search for (supports regular expressions)
- `file`: Path to the file to search | A string containing the matching lines. Returns a corresponding message if no matches are found. | + +--- + +#### head_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **head_mcp** | head_file_view_tool | Quickly view the beginning of a file. | - `host`: Remote hostname/IP (optional for local collection)
- `num`: Number of lines to view from the start (default: 10)
- `file`: Path to the file to view | A string containing the file content from the beginning. | + +--- + +#### systrace_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **systrace_mcp** | slow_node_perception_tool | Detects whether the performance of a machine with a specified `task_id` has degraded. | - `task_id`: IP address of the target machine | A string containing file content. (Note: *This return value seems inconsistent with the function. Please verify.*) | +| | slow_node_detection_tool | A slow node demarcation tool invoked when `slow_node_perception_tool` returns `is_anomaly=True`. | - `performance_data`: The complete performance data (`PerceptionResult`) returned by the perception tool | *(Return content not specified in original)* | +| | generate_report_tool | Reporting tool: Generates a final report in Markdown format. | - `source_data`: The result from the perception or detection tool
- `report_type`: Report type indicating degradation state (`normal` / `anomaly`) | *(Return content not specified in original)* | + +--- + +#### hotspot_trace_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **hotspot_trace_mcp** | hotspot_trace_tool | Use `perf record` and `perf report` to analyze CPU performance bottlenecks for the entire system or a specific process. | - `host`: Remote hostname/IP (optional; analyzes local machine if omitted)
- `pid`: Target Process ID (PID) (optional; analyzes entire system if omitted) | - `total_samples`: Total number of samples collected.
- `event_count`: Event count (e.g., CPU cycles).
- `hot_functions`: List of hot functions, sorted by Children percentage. Each entry includes the function name, library, symbol type, and percentage. | + +--- + +#### docker_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **docker_mcp** | manage_container_tool | Full lifecycle management for containers on a local/remote host (create, start, stop, delete, restart), with support for port mapping and data volumes. | - `name`: Container name (required, unique identifier)
- `image`: Image name (required for create, e.g., `nginx:latest`)
- `action`: Operation type (`create`/`start`/`stop`/`delete`/`restart`, required)
- `ports`: Port mappings (optional, e.g., `8080:80,443:443`)
- `volumes`: Data volume mounts (optional, e.g., `/host/path:/container/path:ro`)
- `restart_policy`: Restart policy (`no`/`always`/`on-failure`/`unless-stopped`, default `no`)
- `host`: Remote hostname/IP (optional, default `localhost`)
- `ssh_port`: SSH port (optional, default `22` for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Container my-nginx started successfully")
- `data`: Dictionary with operation details:
- `host`: Target host
- `container_name`: Container name
- `action`: Operation performed
- `details`: Additional details (e.g., container ID, config parameters) | +| | manage_image_tool | Manage images on a local/remote host (pull, delete, tag, push, inspect), with support for private registry authentication. | - `image`: Image name (required, e.g., `nginx:latest`, `registry.com/app:v1`)
- `action`: Operation type (`pull`/`delete`/`tag`/`push`/`inspect`, required)
- `new_tag`: New tag (required for `tag` operation, e.g., `my-app:v1`)
- `registry_auth`: Registry authentication (optional, format `username:password` for private registries)
- `host`: Remote hostname/IP (optional, default `localhost`)
- `ssh_port`: SSH port (optional, default `22` for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Image nginx:latest pulled successfully")
- `data`: Dictionary with image info:
- `host`: Target host
- `image`: Image name
- `action`: Operation performed
- `inspect`: Image inspection details (returned for `inspect` action) | +| | container_data_operate_tool | Data interaction with containers on a local/remote host (export, import, and copy files between container and host). | - `name`: Container name (required; used as image prefix for `import`)
- `action`: Operation type (`export`/`import`/`cp`, required)
- `file_path`: File path (required; format `src:dst` for `cp`)
- `host`: Remote hostname/IP (optional, default `localhost`)
- `ssh_port`: SSH port (optional, default `22` for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Container my-nginx exported successfully")
- `data`: Dictionary with operation info:
- `host`: Target host
- `container_name`: Container name
- `action`: Operation performed
- `file_path`: File path involved | +| | container_logs_tool | Query container logs on a local/remote host, with support for real-time following and filtering by time or line count. | - `name`: Container name (required)
- `tail`: Number of lines to show from the end (optional, default `100`; `0` for all)
- `follow`: Follow log output in real-time (optional, `True`/`False`, default `False`)
- `since`: Show logs since a timestamp (optional, e.g., `10m`, `2024-01-01T00:00:00`)
- `host`: Remote hostname/IP (optional, default `localhost`)
- `ssh_port`: SSH port (optional, default `22` for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully obtained logs for my-nginx")
- `data`: Dictionary with log info:
- `host`: Target host
- `container_name`: Container name
- `logs`: Log content (string)
- `filter`: Applied filters (e.g., tail, since) | +| | list_containers_tool | List containers on a local/remote host, with filtering by status, name, or image. | - `all`: Show all containers (optional, `True`/`False`, default `False` for only running containers)
- `filter`: Filter conditions (optional, e.g., `name=nginx,image=nginx:latest`)
- `host`: Remote hostname/IP (optional, default `localhost`)
- `ssh_port`: SSH port (optional, default `22` for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully listed 5 running containers on localhost")
- `data`: Dictionary with list info:
- `host`: Target host
- `container_count`: Total number of containers
- `containers`: List of containers (incl. ID, name, image, status)
- `filter`: Applied filters | + +--- + +#### file_transfer_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **file_transfer_mcp** | http_download_tool | Download HTTP/HTTPS/FTP resources to the local machine using `curl` or `wget`, with automatic tool selection. | - `url`: Resource URL to download (string, required)
- `output_path`: Local path to save the file (string, required, e.g., `/tmp/file.zip`)
- `tool`: Download tool to use (optional, `curl`/`wget`; auto-selects by default) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "File downloaded via curl to /tmp/file.zip")
- `data`: Dictionary with details:
- `url`: Downloaded URL
- `output_path`: Local save path
- `file_size`: Size of the downloaded file in bytes
- `transfer_time`: Transfer duration in seconds | +| | scp_transfer_tool | Transfer files or directories between local and remote hosts using the `scp` protocol, supporting recursive directory transfer. | - `src`: Source path (string, required; e.g., `/data/docs` for local, `user@host:/remote/docs` for remote)
- `dst`: Destination path (string, required; format like `src`)
- `host`: Remote hostname/IP (string, required; must match configured host)
- `recursive`: Recursively copy directories (boolean, optional, default `false`) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "SCP transfer successful: /data/docs -> 192.168.1.100:/remote/docs")
- `data`: Dictionary with details:
- `src`: Source path
- `dst`: Destination path
- `file_count`: Total number of files transferred
- `transfer_time`: Transfer duration in seconds | +| | sftp_transfer_tool | Advanced file transfer between local and remote hosts using the `SFTP` protocol, with automatic creation of target directories. | - `operation`: Operation type (string, required; `put` for local-to-remote, `get` for remote-to-local)
- `src`: Source path (string, required; local path for `put`, remote path for `get`)
- `dst`: Destination path (string, required; remote path for `put`, local path for `get`)
- `host`: Remote hostname/IP (string, required; must match configured host)
- `create_dir`: Automatically create target directory (boolean, optional, default `true`) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "SFTP put successful: /data/file.zip -> 192.168.1.100:/remote/file.zip")
- `data`: Dictionary with details:
- `operation`: Operation performed (`put`/`get`)
- `src`: Source path
- `dst`: Destination path
- `file_size`: Total size of transferred data in bytes
- `transfer_time`: Transfer duration in seconds | + +--- + +#### numa_bind_docker_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **numa_bind_docker_mcp** | numa_bind_docker_tool | Use `numactl` to prepend NUMA binding parameters to the image's original ENTRYPOINT/CMD and run the Docker container (local/remote). | - `image`: Image name
- `cpuset_cpus`: Allowed CPU cores
- `cpuset_mems`: Allowed memory nodes
- `detach`: Run container in detached mode (default `False`)
- `host`: Remote hostname/IP (optional) | - `status`: Operation status (`success` / `error`)
- `message`: Operation result information
- `output`: Raw command output (if any) | + +--- + +#### numa_bind_proc_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **numa_bind_proc_mcp** | numa_bind_proc_tool | Run a program on specified NUMA and memory nodes using the `numactl` command (supports local/remote execution). | - `host`: Remote hostname/IP (optional for local execution)
- `numa_node`: NUMA node number (integer)
- `memory_node`: Memory node number (integer)
- `program_path`: Path to the program (required) | - `stdout`: Standard output from the program
- `stderr`: Standard error from the program
- `exit_code`: Program's exit code | + +--- + +#### numa_container_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **numa_container_mcp** | numa_container | Monitor the NUMA memory access of a specified Docker container (supports local/remote execution). | - `container_id`: Container ID or name to monitor
- `host`: Remote host address (optional; executes locally if empty) | - `status`: Operation status (`success` / `error`)
- `message`: Operation result information
- `output`: NUMA memory access statistics (includes memory usage per NUMA node) | + +--- + +#### numa_cross_node_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------ | :-------------------- | :----------------- | +| **numa_cross_node_mcp** | numa_cross_node | Automatically detect processes with anomalous NUMA cross-node memory access (supports local and remote hosts). | - `host`: Remote host IP/domain name (optional; checks local machine if blank)
- `threshold`: Cross-node memory ratio threshold (default: `30%`) | - `overall_conclusion`: Overall conclusion (existence of problem, severity, summary)
- `anomaly_processes`: List of anomalous processes, each including `pid`, `local_memory`, `remote_memory`, `cross_ratio`, `name`, `command` | + +--- + +#### numa_diagnose_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :------------------- | :------------ | :----------------------------------------------------------------- | :----------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| **numa_diagnose_mcp** | numa_diagnose | Retrieves NUMA hardware monitoring information, including CPU real-time frequency, specifications, and topology. | - `host`: Remote host address (optional, defaults to local execution) | - `real_time_frequencies`: Real-time frequency (MHz) of each CPU core
- `specifications`: CPU specifications (model / frequency range / NUMA node)
- `numa_topology`: NUMA topology structure | + +--- + +#### numa_perf_compare_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :----------------------- | :--------------- | :--------------------------------------------------------------------------- | :----------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ | +| **numa_perf_compare_mcp** | numa_perf_compare | Executes NUMA benchmark tests, supporting local binding, cross-node binding, and no-binding strategies. | - `benchmark`: Path to the benchmark executable (e.g., `/root/mcp_center/stream`)
- `host`: Remote hostname or IP address (optional) | `numa_nodes`: Number of NUMA nodes in the system
`test_results`: Test results for the three binding strategies
`timestamp`: Execution time
`error`: Error message (if any) | + +--- + +#### numa_rebind_proc_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :----------------------- | :------------------- | :-------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | +| **numa_rebind_proc_mcp** | numa_rebind_proc_tool | Modifies the NUMA memory binding of a running process, using the `migratepages` tool to move the process's memory from one NUMA node to another. | - `pid`: Process ID
- `from_node`: Source NUMA node ID
- `to_node`: Target NUMA node ID
- `host`: Remote host IP or name (optional) | `status`: Operation status (success / error)
`message`: Operation result message
`output`: Raw command output (if any) | + +--- + +#### numa_topo_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------------------------------------------------ | :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **numa_topo_mcp** | numa_topo_tool | Uses `numactl` to get NUMA topology information for a local or remote host. | - `host`: Remote hostname or IP (optional, defaults to local host) | - `nodes_total`: Total number of nodes
- `nodes`: List of node information, each containing: `node_id`, `cpus` (CPU list), `size_mb` (memory size in MB), `free_mb` (free memory in MB) | + +--- + +#### numastat_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :--------------- | :--------------------------------------------------------- | :------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **numastat_mcp** | numastat_info_tool | Uses the `numastat` command to get NUMA statistics for a local or remote host. | - `host`: Remote hostname or IP (optional, defaults to local host) | `numa_hit`: NUMA hit count
`numa_miss`: NUMA miss count
`numa_foreign`: Foreign allocation count
`interleave_hit`: Interleave hit count
`local_node`: Local node access count
`other_node`: Other node access count | + +--- + +#### nvidia_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------ | :-------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **nvidia_mcp** | nvidia_smi_status | Outputs structured GPU status data (JSON-friendly). | - `host`: Remote host IP/hostname (optional for local)
- `port`: SSH port (default 22)
- `username`/`password`: Required for remote
- `gpu_index`: Specific GPU index (optional)
- `include_processes`: Include process info (default: False) | - `success`: Query status
- `message`: Result description
- `data`: Structured data containing:
  - `host`: Host address
  - `gpus`: List of GPU info (index, model, utilization, memory, etc.) | +| | nvidia_smi_raw_table | Outputs the raw `nvidia-smi` table (preserves original formatting). | - `host`: Remote host IP/hostname (optional for local)
- `port`: SSH port (default 22)
- `username`/`password`: Required for remote | - `success`: Query status
- `message`: Result description
- `data`: Raw table data containing:
  - `host`: Host address
  - `raw_table`: Raw `nvidia-smi` output string | + +--- + +#### perf_interrupt_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :------------------ | :-------------------------- | :--------------------------------------------------------------------- | :------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **perf_interrupt_mcp** | perf_interrupt_health_check | Checks system interrupt statistics to identify high CPU usage caused by frequent interrupts. | - `host`: Remote hostname or IP address (optional, defaults to local host) | Returns a list of interrupt information, each item containing: `irq_number`, `total_count`, `device`, `cpu_distribution` (interrupt distribution per core), `interrupt_type`. | + +--- + +#### rm_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------------------ | :----------------------------------------------------------------- | :------------------------------------------ | +| **rm_mcp** | rm_collect_tool | Deletes a file or folder. | - `host`: Remote hostname/IP (optional for local)
- `path`: Path to the file or folder to delete | Boolean value indicating the success of the operation. | + +--- + +#### sar_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content (List of collected metrics, each with a `timestamp`) | +| :-------------- | :--------------------------------------- | :---------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **sar_mcp** | sar_cpu_collect_tool | Analyzes periodic patterns in CPU usage. | - `host`: Remote hostname/IP (optional)
- `interval`: Sampling interval
- `count`: Number of samples | `user`, `nice`, `system`, `iowait`, `steal`, `idle` (All as percentages of CPU time) | +| | sar_memory_collect_tool | Analyzes periodic patterns in memory resource usage. | - `host`: Remote hostname/IP (optional)
- `interval`: Sampling interval
- `count`: Number of samples | `kbmemfree`, `kbavail`, `kbmemused`, `memused`(%), `kbbuffers`, `kbcached`, `kbcommit`, `commit`(%), `kbactive`, `kbinact`, `kbdirty` (All in KB, unless noted) | +| | sar_disk_collect_tool | Analyzes periodic patterns in disk I/O usage. | - `host`: Remote hostname/IP (optional)
- `interval`: Sampling interval
- `count`: Number of samples | `name` (device), `tps`, `rkB/s`, `wkB/s`, `dkB/s`, `areq-sz`, `aqu-sz`, `await`, `util`(%) | +| | sar_network_collect_tool | Analyzes periodic patterns in network traffic. | - `host`: Remote hostname/IP (optional)
- `interval`: Sampling interval
- `count`: Number of samples | `iface`, `rxpck/s`, `txpck/s`, `rxkB/s`, `txkB/s`, `rxcmp/s`, `txcmp/s`, `rxmcst/s`, `ifutil`(%) | +| | sar_cpu_historicalinfo_collect_tool | Performs historical state analysis to troubleshoot past CPU performance issues. | - `host`: Remote hostname/IP (optional)
- `file`: SAR log file path
- `starttime`: Start time
- `endtime`: End time | `user`, `nice`, `system`, `iowait`, `steal`, `idle` (All as percentages of CPU time) | +| | sar_memory_historicalinfo_collect_tool | Performs historical state analysis to troubleshoot past memory performance issues. | - `host`: Remote hostname/IP (optional)
- `file`: SAR log file path
- `starttime`: Start time
- `endtime`: End time | `kbmemfree`, `kbavail`, `kbmemused`, `memused`(%), `kbbuffers`, `kbcached`, `kbcommit`, `commit`(%), `kbactive`, `kbinact`, `kbdirty` (All in KB, unless noted) | +| | sar_disk_historicalinfo_collect_tool | Performs historical state analysis to troubleshoot past disk I/O performance issues. | - `host`: Remote hostname/IP (optional)
- `file`: SAR log file path
- `starttime`: Start time
- `endtime`: End time | `name` (device), `tps`, `rkB/s`, `wkB/s`, `dkB/s`, `areq-sz`, `aqu-sz`, `await`, `util`(%) | +| | sar_network_historicalinfo_collect_tool | Performs historical state analysis to troubleshoot past network performance issues. | - `host`: Remote hostname/IP (optional)
- `file`: SAR log file path
- `starttime`: Start time
- `endtime`: End time | `iface`, `rxpck/s`, `txpck/s`, `rxkB/s`, `txkB/s`, `rxcmp/s`, `txcmp/s`, `rxmcst/s`, `ifutil`(%) | + +--- + +#### sed_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------- | :---------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------ | +| **sed_mcp** | sed_text_replace_tool | Replaces text matching a pattern in a file. | - `host`: Remote hostname/IP (optional)
- `options`: sed options (e.g., `-i` for in-place edit)
- `pattern`: Pattern to replace (regex supported)
- `replacement`: Replacement text
- `file`: File path | Boolean value indicating the success of the operation. | +| | sed_text_delete_tool | Deletes lines matching a pattern in a file. | - `host`: Remote hostname/IP (optional)
- `options`: sed options (e.g., `-i` for in-place edit)
- `pattern`: Pattern for lines to delete (regex supported)
- `file`: File path | Boolean value indicating the success of the operation. | + +--- + +#### strace_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------------ | :------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **strace_mcp** | strace_track_file_process | Traces process file operations and runtime state (e.g., open, read, write). | - `pid`: Target Process ID (required)
- `host`: Remote host IP/hostname (optional)
- `port`: SSH port (default 22)
- `username`/`password`: Required for remote
- `output_file`: Log path (optional)
- `follow_children`: Trace child processes (default: False)
- `duration`: Trace duration in seconds (optional) | - `success`: Trace status
- `message`: Result description
- `strace_pid`: Trace process PID
- `output_file`: Log path
- `target_pid`/`host`: Target process and host info | +| | strace_check_permission_file | Troubleshoots "Permission denied" and "File not found" errors for a process. | - `pid`: Target Process ID (required)
- Remote parameters (`host`/`port`/`username`/`password`)
- `output_file`: Log path (optional)
- `duration`: Trace duration (default: 30s) | - Basic status info (`success`/`message`, etc.)
- `errors`: Error statistics dictionary, including:
  - Permission denied errors
  - File not found errors | +| | strace_check_network | Diagnoses process network issues (connection failures, timeouts, DNS, etc.). | - `pid`: Target Process ID (required)
- Remote parameters (`host`/`port`/`username`/`password`)
- `output_file`: Log path (optional)
- `duration`: Trace duration (default: 30s)
- `trace_dns`: Trace DNS calls (default: True) | - Basic status info
- `errors`: Network error statistics, including:
  - Connection refused, timeout errors
  - DNS resolution failures (if enabled) | +| | strace_locate_freeze | Identifies the cause of process freezes (I/O blocks, lock waits, slow ops). | - `pid`: Target Process ID (required)
- Remote parameters (`host`/`port`/`username`/`password`)
- `output_file`: Log path (optional)
- `duration`: Trace duration (default: 30s)
- `slow_threshold`: Slow operation threshold in seconds (default: 0.5) | - Basic status info
- `analysis`: Freeze analysis dictionary, including:
  - Slow call details
  - Blocking type statistics
  - Longest system calls | + +--- + +#### strace_syscall_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :------------------ | :------------ | :--------------------------------------------- | :------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| **strace_syscall_mcp** | strace_syscall | Collects system call statistics for a specified process. | - `host`: Remote host address (optional)
- `pid`: Target Process ID (required)
- `timeout`: Collection timeout in seconds (default: 10) | List of dictionaries, each containing:
- `syscall`: System call name
- `total_time`: Total time spent (s)
- `call_count`: Number of calls
- `avg_time`: Average time per call (µs)
- `error_count`: Number of errors | + +--- + +#### swapoff_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------------ | :---------------------------------------------------------------------------- | :------------------------------------------------------------- | :------------------------------------------ | +| **swapoff_mcp** | swapoff_disabling_swap_tool | Disables swap space, deactivating and removing a swap partition or file from system memory management. | - `host`: Remote hostname/IP (optional)
- `name`: Path of the swap space to disable | Boolean value indicating the success of the operation. | + +--- + +#### swapon_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------- | :---------------------------------------- | :------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | +| **swapon_mcp** | swapon_collect_tool | Gets the current swap device status for a local or remote target. | - `host`: Remote hostname/IP (optional) | List of swap devices, each with: `name` (device/file path), `type`, `size`, `used` (amount used), `prio` (priority). | + +--- + +#### tail_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------- | :---------------------------- | :---------------------------------------------------------------------------- | :-------------------------- | +| **tail_mcp** | tail_file_view_tool | Quickly views the end of a file. | - `host`: Remote hostname/IP (optional)
- `num`: Number of lines from the end to view (default: 10)
- `file`: File path to view | String containing the file content. | + +--- + +#### tar_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------ | :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------ | +| **tar_mcp** | tar_extract_file_tool | Extracts files or directories using `tar`. | - `host`: Remote hostname/IP (optional)
- `options`: tar options (e.g., `-xzvf`)
- `file`: Archive file path
- `extract_path`: Target directory for extraction | Boolean value indicating the success of the operation. | +| | tar_compress_file_tool | Compresses files or directories using `tar`. | - `host`: Remote hostname/IP (optional)
- `options`: tar options (e.g., `-czvf`)
- `source_path`: Path to the file/directory to compress
- `archive_path`: Output path for the archive | Boolean value indicating the success of the operation. | + +--- + +#### touch_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :---------------------- | :------------------------------------ | :--------------------------------------------------------------------------------------------------------------------- | :------------------------------------------ | +| **touch_mcp** | touch_create_files_tool | Quickly initializes or batch-creates files. | - `host`: Remote hostname/IP (optional)
- `file`: Filename to create | Boolean value indicating the success of the operation. | +| | touch_timestamp_files_tool | Calibrates or simulates file timestamps. | - `host`: Remote hostname/IP (optional)
- `options`: Update access time (`-a`)/modification time (`-m`)
- `file`: Filename | Boolean value indicating the success of the operation. | + +--- + +#### vmstat_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :---------------------- | :------------------------------------------------ | :------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **vmstat_mcp** | vmstat_collect_tool | Gets the overall resource status of the target device. | - `host`: Remote hostname/IP (optional) | System resource status dictionary: `r` (runnable processes), `b` (I/O waiting processes), `si` (KB swapped in per second), `so` (KB swapped out per second), `bi` (blocks read from disk), `bo` (blocks written to disk), `in` (interrupts per second), `cs` (context switches per second), `us` (% user CPU time), `sy` (% system CPU time), `id` (% idle CPU time), `wa` (% I/O wait CPU time), `st` (% CPU time stolen by hypervisor). | +| | vmstat_slabinfo_collect_tool | Gets kernel slab memory cache (slabinfo) statistics. | - `host`: Remote hostname/IP (optional) | Slab memory cache info dictionary: `cache` (slab cache name), `num` (number of active objects), `total` (total number of objects), `size` (size of each object), `pages` (number of objects per slab). | + +--- + +#### zip_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------ | :-------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :------------------------------------------ | +| **zip_mcp** | zip_extract_file_tool | Extracts files using the `unzip` command. | - `host`: Remote hostname/IP (optional)
- `file`: Archive file path
- `extract_path`: Target directory for extraction | Boolean value indicating the success of the operation. | +| | zip_compress_file_tool | Compresses files or directories using the `zip` command. | - `host`: Remote hostname/IP (optional)
- `source_path`: Path to the file/directory to compress
- `archive_path`: Output path for the archive | Boolean value indicating the success of the operation. | + +--- + +#### euler-copilot-tune_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :-------------------------------- | :-------------------- | :----------------------------- | +| **tune_mcp** | Collector | Collects machine performance metrics. | (None documented) | The collected performance data. | +| | Analyzer | Analyzes the collected data. | (None documented) | An analysis report. | +| | Optimizer | Recommends tuning parameters and strategies. | (None documented) | Recommended service parameters. | +| | StartTune | Starts the tuning process. | (None documented) | Tuning completion status. | + +--- + +#### iftop_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------------- | :----------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **iftop_mcp** | get_interface_traffic | Gets real-time traffic data for a specified interface via `iftop` (includes total traffic and top connections). | - `iface`: Network interface name (e.g., eth0, required)
- `sample_seconds`: Sampling duration in seconds (default: 5, range: 3-30)
- `host`: Remote hostname/IP (default: localhost)
- `port`: SSH port (default: 22)
- `username`: SSH user (default: root)
- `password`: SSH password (required for remote) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `total_stats`: `interface`, `tx_total`/`rx_total` (MB), `tx_rate_avg`/`rx_rate_avg` (Mbps)
  - `top_connections`: Top 10 list (by receive rate) | +| | list_network_interfaces | Gets all network interface names for a local or remote host (for target selection). | - `host`: Remote hostname/IP (default: localhost)
- `port`: SSH port (default: 22)
- `username`: SSH user (default: root)
- `password`: SSH password (required for remote) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `interfaces`: List of interface names (e.g., `["eth0", "lo"]`) | + +--- + +#### nload_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------------- | :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **nload_mcp** | monitor_bandwidth | Gets real-time bandwidth data for a specified interface via `nload` (includes inbound/outbound details). | - `iface`: Network interface name (e.g., eth0, required)
- `duration`: Monitoring duration in seconds (default: 10, range: 5-60)
- `host`: Remote hostname/IP (default: localhost)
- `port`: SSH port (default: 22) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `monitor_duration`
  - `bandwidth`: `interface`, `incoming`/`outgoing` (with current/avg/max/total/unit fields) | +| | list_network_interfaces | Gets all network interface names for a local or remote host (for target selection). | - `host`: Remote hostname/IP (default: localhost)
- `port`: SSH port (default: 22) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `interfaces`: List of interface names (e.g., `["eth0", "lo"]`) | + +--- + +#### netstat_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :---------------------- | :------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **netstat_mcp** | query_network_connections | Queries network connection lists for a local/remote host via `netstat` (supports TCP/UDP and state filtering). | - `proto`: Protocol (tcp/udp/all, default: all)
- `state`: Connection state (TCP only, e.g., ESTABLISHED)
- `host`: Remote hostname/IP (default: localhost)
- `port`: SSH port (default: 22) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `connection_count`
  - `connections`: List (protocol, local/foreign IP:port, state, pid, program)
  - `filter`: Applied filters | +| | check_port_occupation | Checks the occupancy of a specified port on a local/remote host via `netstat` (includes process info). | - `port`: Port number (1-65535, required)
- `proto`: Protocol (tcp/udp, default: tcp)
- `host`: Remote hostname/IP (default: localhost)
- `ssh_port`: SSH port (default: 22) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `check_port`
  - `proto`
  - `is_occupied` (Boolean)
  - `occupations`: List (protocol, local_ip, pid, program, state) | + +--- + +#### lsof_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :----------------- | :-------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **lsof_mcp** | list_open_files | Queries open files on a local/remote host (filterable by path or user). | - `path`: File path filter (optional)
- `user`: Username filter (optional)
- `host`: Remote hostname/IP (default: localhost)
- `port`: SSH port (default: 22) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `file_count`
  - `files`: List (command, pid, user, fd, type, file_path)
  - `filter`: Applied filters | +| | list_network_files | Queries network-related files (sockets) on a local/remote host (filterable by protocol or port). | - `proto`: Protocol (tcp/udp/all, default: all)
- `port`: Port number filter (optional)
- `host`: Remote hostname/IP (default: localhost)
- `ssh_port`: SSH port (default: 22) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `connection_count`
  - `connections`: List (command, pid, user, local/foreign address, state)
  - `filter`: Applied filters | +| | find_process_by_file | Finds processes that have a specific file open on a local/remote host (precise file occupancy identification). | - `path`: File path (required)
- `host`: Remote hostname/IP (default: localhost)
- `port`: SSH port (default: 22) | - `success`: Operation status
- `message`: Result description
- `data`: Dictionary containing:
  - `host`
  - `file_path`
  - `process_count`
  - `processes`: List (command, pid, user, fd) | + +--- + +#### ifconfig_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **ifconfig_mcp** | get_network_interfaces | Queries detailed network interface information for a local or remote host (supports specifying a single interface or returning all). | - `iface`: NIC name (optional, e.g., `eth0`; if omitted, returns all interfaces)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved all 3 local network interfaces")
- `data`: Dictionary containing interface info
  - `host`: Target host
  - `interface_count`: Total number of NICs
  - `interfaces`: List of NIC details (name, status, mac_address, ipv4, ipv6, mtu, statistics, etc.)
  - `filter`: Applied filter (`iface`) | +| | get_interface_ip | Queries the IP address information for a specified network interface on a local/remote host (focuses on IPv4/IPv6 address extraction). | - `iface`: NIC name (required, e.g., `eth0`, `ens33`)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully obtained IP address information for eth0")
- `data`: Dictionary containing IP info
  - `host`: Target host
  - `interface`: NIC name
  - `ipv4`: IPv4 address details (address, subnet_mask, broadcast)
  - `ipv6`: IPv6 address details (address) | + +--- + +#### ethtool_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------- | :---------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **ethtool_mcp** | get_interface_details | Queries basic hardware information for a specified network interface (driver, firmware, speed, etc.). | - `iface`: NIC name (required, e.g., `eth0`, `ens33`)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved detailed information for local NIC eth0")
- `data`: Dictionary containing NIC info
  - `host`: Target host
  - `interface`: NIC name
  - `basic_info`: Basic information (driver, version, firmware_version, speed, duplex, link_detected, etc.) | +| | get_interface_features | Queries the supported features of a specified network interface (network protocol features, speed modes, etc.). | - `iface`: NIC name (required, e.g., `eth0`, `ens33`)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved feature information for local NIC eth0")
- `data`: Dictionary containing feature info
  - `host`: Target host
  - `interface`: NIC name
  - `features`: List of features (supported, advertised, speed_duplex) | +| | set_interface_speed | Sets the speed and duplex mode for a specified network interface (requires administrator privileges). | - `iface`: NIC name (required, e.g., `eth0`, `ens33`)
- `speed`: Speed in Mbps (required, e.g., `10`, `100`, `1000`)
- `duplex`: Duplex mode (required, `full`/`half`)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully set eth0 to 1000 Mbps full-duplex")
- `data`: Dictionary containing configuration results
  - `host`: Target host
  - `interface`: NIC name
  - `configured`: Configuration details (speed, duplex) | + +--- + +#### tshark_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------ | :------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **tshark_mcp** | capture_packets | Captures network packets from a specified interface (supports limits on duration, packet count, and filter rules). | - `iface`: NIC name (required, e.g., `eth0`, `ens33`)
- `duration`: Capture duration in seconds (default: `10`, range: 3-60)
- `count`: Maximum packets to capture (optional, e.g., `100`; stops when reached)
- `filter`: Capture filter rule (optional, e.g., `tcp port 80`; uses pcap syntax)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully captured 58 packets on local interface eth0")
- `data`: Dictionary containing capture data
  - `host`: Target host
  - `interface`: NIC name
  - `capture_params`: Capture parameters (duration, count, filter)
  - `packet_count`: Actual number of packets captured
  - `packets`: List of packets (each containing packet_id, timestamp, src_ip, dst_ip, etc.) | +| | analyze_protocol_stats | Analyzes network protocol distribution on a specified interface (calculates the percentage of packets per protocol). | - `iface`: NIC name (required, e.g., `eth0`, `ens33`)
- `duration`: Analysis duration in seconds (default: `10`, range: 3-60)
- `filter`: Analysis filter rule (optional, e.g., `ip`; only statistics traffic matching the condition)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully analyzed protocol distribution on local interface eth0, captured 120 packets total")
- `data`: Dictionary containing statistics
  - `host`: Target host
  - `interface`: NIC name
  - `analysis_params`: Analysis parameters (duration, filter)
  - `stats`: Protocol statistics (total_packets, protocols count for each protocol) | + +--- + +#### firewalld_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------------- | :-------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **firewalld_mcp** | manage_ip_access | Allows or denies access for specific IP/CIDR ranges (using rich rules). | - `ip`: Target IP/CIDR (required, e.g., `192.168.1.100/24`)
- `action`: Action type (required, `allow`/`deny`)
- `zone`: Firewall zone (default: `public`)
- `protocol`: Protocol (`tcp`, `udp`, `all`; default: `all`)
- `permanent`: Make permanent (default: `True`)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully allowed IP 192.168.1.100 access to the public zone")
- `data`: Dictionary containing configuration info
  - `host`: Target host
  - `zone`: Target zone
  - `rule`: Rule details (ip, action, protocol) | +| | manage_port_access | Adds or removes access permissions for a specific port. | - `port`: Port/port range (required, e.g., `80`, `80-90`)
- `protocol`: Protocol (`tcp`, `udp`; default: `tcp`)
- `action`: Operation type (required, `add`/`remove`)
- `zone`: Firewall zone (default: `public`)
- `permanent`: Make permanent (default: `True`)
- `host`: Remote hostname/IP (default: `localhost`)
- `ssh_port`: SSH port (default: `22`) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully added port 80/tcp access to the public zone")
- `data`: Dictionary containing configuration info
  - `host`: Target host
  - `zone`: Target zone
  - `rule`: Rule details (port, protocol, action) | +| | configure_port_forward | Configures port forwarding (source port → destination IP:port). | - `source_port`: Source port (required, e.g., `80`)
- `dest_ip`: Destination IP (required, e.g., `192.168.2.100`)
- `dest_port`: Destination port (required, e.g., `8080`)
- `protocol`: Protocol (`tcp`, `udp`; default: `tcp`)
- `action`: Operation type (`add`/`remove`; default: `add`)
- `zone`: Firewall zone (default: `public`)
- `permanent`: Make permanent (default: `True`)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully configured port forwarding 80/tcp → 192.168.2.100:8080")
- `data`: Dictionary containing forwarding rule
  - `host`: Target host
  - `zone`: Target zone
  - `forward_rule`: Forwarding details (source_port, dest_ip, etc.) | +| | list_firewall_rules | Displays firewall rules for a specified zone or all zones. | - `zone`: Target zone (optional; if omitted, queries all zones)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved rules for all zones, 12 rules total")
- `data`: Dictionary containing rule info
  - `host`: Target host
  - `zone`: Queried zone
  - `rule_count`: Total number of rules
  - `rules`: List of rules (grouped by zone) | +| | list_firewall_zones | Displays information for all firewall zones (including default zone and associated interfaces). | - `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved information for 5 zones; default zone is public")
- `data`: Dictionary containing zone info
  - `host`: Target host
  - `zone_count`: Total number of zones
  - `default_zone`: Default zone name
  - `zones`: List of zones (including name, associated interfaces, etc.) | + +This server is a wrapper around the `iptables` tool, providing IP access control rule management, DNAT port forwarding configuration, rule querying, and IP forwarding toggle capabilities. It supports operations on both local and remote hosts and allows rules to be saved for persistence. + +--- + +#### iptables_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------------- | :-------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **iptables_mcp** | manage_ip_rule | Adds or deletes IP access control rules (allow/deny TCP/UDP/all-protocol traffic for a specific IP). | - `ip`: Target IP/CIDR (required, e.g., `192.168.1.100/24`)
- `action`: Action (required, `ACCEPT`/`DROP`/`REJECT`)
- `chain`: Chain (`INPUT`/`OUTPUT`/`FORWARD`; default: `INPUT`)
- `protocol`: Protocol (`tcp`, `udp`, `all`; default: `all`)
- `port`: Port number (optional, e.g., `80`; only valid for tcp/udp)
- `action_type`: Operation type (`add`/`delete`; default: `add`)
- `save`: Save rule (default: `False`; saved rules persist after reboot)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully added rule: ACCEPT tcp traffic from 192.168.1.0/24 on port 80, rule saved")
- `data`: Dictionary containing rule info
  - `host`: Target host
  - `rule`: Rule details (ip, action, chain, protocol, port)
  - `save_status`: Rule save status (`saved`/`unsaved`) | +| | configure_port_forward | Configures DNAT-based port forwarding rules (forwards traffic from a source port to a target IP:port). | - `src_port`: Source port (required, integer 1-65535, e.g., `80`)
- `dst_ip`: Destination IP (required, IPv4 only, e.g., `10.0.0.5`)
- `dst_port`: Destination port (required, integer 1-65535, e.g., `8080`)
- `protocol`: Protocol (`tcp`, `udp`; default: `tcp`)
- `action`: Operation type (`add`/`remove`; default: `add`)
- `save`: Save rule (default: `False`)
- `host`: Remote hostname/IP (default: `localhost`)
- `ssh_port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully added port forwarding: 80/tcp → 10.0.0.5:8080")
- `data`: Dictionary containing forwarding rule
  - `host`: Target host
  - `forward_rule`: Forwarding details (src_port, dst_ip, dst_port, protocol)
  - `ip_forward_status`: IP forwarding status (`enabled`/`disabled`) | +| | list_iptables_rules | Queries all firewall rules for a specified table/chain (supports filter, nat, mangle, and raw tables). | - `table`: Target table (`filter`, `nat`, `mangle`, `raw`; default: `filter`)
- `chain`: Target chain (optional, e.g., `INPUT`; if omitted, queries all chains)
- `host`: Remote hostname/IP (default: `localhost`)
- `ssh_port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved 8 rules from the nat table on 192.168.1.100")
- `data`: Dictionary containing rule info
  - `host`: Target host
  - `table`: Queried table name
  - `rule_count`: Total number of rules
  - `rules`: List of rules (each containing chain, target, protocol, source, destination, details) | +| | enable_ip_forward | Enables or disables the system's IP forwarding functionality (a prerequisite for port forwarding). | - `enable`: Enable or disable (required, `True`/`False`)
- `persistent`: Make persistent (default: `True`; remains effective after reboot)
- `host`: Remote hostname/IP (default: `localhost`)
- `ssh_port`: SSH port (default: `22`, overrides the default configured port for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully disabled IP forwarding on 192.168.1.100 (non-persistent)")
- `data`: Dictionary containing configuration status
  - `host`: Target host
  - `enabled`: IP forwarding status (`True`/`False`)
  - `persistent`: Persistence status (`True`/`False`) | + +--- + +#### npu_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :----------------- | :---------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **npu_mcp** | get_npu_status | Gets NPU device status information via `npu-smi` (supports querying a single or all devices). | - `npu_id`: Specific NPU device ID (optional; defaults to querying all devices)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`)
- `username`: SSH username (default: `root`)
- `password`: SSH password (required for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved information for 2 NPU devices")
- `data`: Dictionary containing NPU status
  - `host`: Target host
  - `npus`: List of NPU devices, each containing:
    - `Id`: Device ID (integer)
    - `Name`: Device name
    - `Memory-Usage`: Memory usage (used, total)
    - `Utilization`: Utilization rate (%)
    - `Temperature`: Temperature (°C) | +| | set_npu_power_limit | Sets the power limit for an NPU device via `npu-smi` (unit: watts). | - `npu_id`: NPU device ID (required, non-negative integer)
- `power_limit`: Power limit value (required, positive integer)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`)
- `username`: SSH username (default: `root`)
- `password`: SSH password (required for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Power limit successfully set to 150 watts")
- `data`: Dictionary containing operation details
  - `host`: Target host
  - `npu_id`: Target device ID
  - `power_limit`: Set power value (watts) | +| | reset_npu_device | Resets an NPU device via `npu-smi` (used for fault recovery). | - `npu_id`: NPU device ID (required, non-negative integer)
- `host`: Remote hostname/IP (default: `localhost`)
- `port`: SSH port (default: `22`)
- `username`: SSH username (default: `root`)
- `password`: SSH password (required for remote operations) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "NPU device 3 has been successfully reset")
- `data`: Dictionary containing operation details
  - `host`: Target host
  - `npu_id`: ID of the reset device | + +--- + +#### sync_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :-------------------- | :------------------------------------ | :-------------------------------------------------------------- | :------------------------------------------------------------------------------ | +| **sync_mcp** | sync_refresh_data_tool | Writes data from the memory buffer to disk. | - `host`: Remote hostname/IP (optional for local data collection) | A boolean value indicating whether the buffered data was successfully flushed. | + +--- + +#### qemu_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **qemu_mcp** | manage_vm | Manages the full lifecycle of virtual machines on a local or remote host (create, start, stop, delete, modify configuration). | - `name`: VM name (required, unique identifier)
- `action`: Operation type (required: `create`, `start`, `stop`, `delete`, `modify`)
- `arch`: CPU architecture (required for `create`, e.g., `x86_64`, `arm64`)
- `memory`: Memory size (optional for `create`/`modify`, e.g., `2G`, `4096M`; default: `2G`)
- `disk`: Disk configuration (optional for `create`/`modify`, format: `"path=/data/vm/disk.qcow2,size=20G"`)
- `iso`: System image path (optional for `create`, e.g., `/data/iso/ubuntu-22.04.iso`)
- `vcpus`: Number of CPU cores (optional for `create`/`modify`; default: `2`)
- `vm_dir`: VM storage directory (optional for `create`; default: `/var/lib/qemu`)
- `host`: Remote hostname/IP (default: `localhost`)
- `ssh_port`: SSH port (default: `22`)
- `ssh_user`: SSH username (required for remote operations)
- `ssh_pwd`: SSH password (required for remote ops unless using key)
- `ssh_key`: SSH private key path (optional for remote ops; takes precedence over password) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "VM 'ubuntu-vm' created successfully")
- `data`: Dictionary containing VM operation info
  - `host`: Target host
  - `vm_name`: VM name
  - `action`: Operation performed
  - `details`: Operation details (e.g., configuration diff, disk path) | +| | list_vms | Queries the list of virtual machines on a local/remote host (supports filtering by status, architecture, and name). | - `status`: VM status (optional: `running`, `stopped`, `all`; default: `all`)
- `arch`: CPU architecture (optional, e.g., `x86_64`, `arm64`; filters VMs of specified architecture)
- `filter_name`: Name filter for fuzzy matching (optional, e.g., `"ubuntu"` filters VMs containing this string)
- `vm_dir`: VM storage directory (default: `/var/lib/qemu`)
- `host`/`ssh_port`/`ssh_user`/`ssh_pwd`/`ssh_key`: Same as `manage_vm` | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully retrieved 3 running VMs locally")
- `data`: Dictionary containing VM list
  - `host`: Target host
  - `vm_count`: Total number of VMs
  - `vms`: List of VMs, each containing:
    - `name`: VM name
    - `arch`: CPU architecture
    - `vcpus`: CPU core count
    - `memory`: Memory size
    - `disk`: Disk configuration (path, size)
    - `status`: Runtime status (`running`/`stopped`) | +| | monitor_vm_status | Monitors real-time status of a virtual machine on a local/remote host (CPU, memory, disk, network). | - `name`: VM name (required, specifies the target)
- `metrics`: Metrics to monitor (optional: `cpu`, `memory`, `disk`, `network`, `all`; default: `all`)
- `interval`: Sampling interval in seconds (optional; default: `5`, minimum: `1`)
- `count`: Number of samples (optional; default: `1`; `0` means continuous until manually stopped)
- `host`/`ssh_port`/`ssh_user`/`ssh_pwd`/`ssh_key`: Same as `manage_vm` | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully obtained 5 samples from 'ubuntu-vm'")
- `data`: Dictionary containing monitoring data
  - `host`: Target host
  - `vm_name`: VM name
  - `timestamp`: List of sample timestamps
  - `metrics_data`: Sampled metric data (returns values corresponding to the requested `metrics`) | + +--- + +#### nmap_mcp + +| MCP_Server Name | MCP_Tool List | Tool Function | Core Input Parameters | Key Return Content | +| :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **nmap_mcp** | scan_network | Scans IPs/network segments from a local or remote host (supports host discovery, port scanning, and service detection). | - `target`: Scan target (required; single IP, CIDR range, or IP range, e.g., `192.168.1.1`, `192.168.1.0/24`, `192.168.1.1-100`)
- `scan_type`: Scan type (optional: `basic`, `full`, `quick`; default: `basic`; basic=top 100 ports, full=all 1-65535 ports, quick=10 key ports)
- `port_range`: Custom port range (optional, e.g., `22,80-443`; overrides `scan_type`)
- `host_discovery`: Host discovery only, no port scan (default: `False`)
- `host`: Remote hostname/IP (default: `localhost`)
- `ssh_port`: SSH port (default: `22`)
- `ssh_user`: SSH username (required for remote operations)
- `ssh_pwd`: SSH password (optional for remote ops unless using key)
- `ssh_key`: SSH private key path (optional for remote ops; takes precedence over password) | - `success`: Operation status (boolean)
- `message`: Result description (e.g., "Successfully scanned 192.168.1.0/24, found 8 active hosts")
- `data`: Dictionary containing scan results
  - `host`: Scanning host
  - `target`: Scan target
  - `scan_type`: Scan type used (includes `custom` for custom ports)
  - `host_count`: Total hosts found
  - `up_host_count`: Number of active hosts
  - `results`: List of hosts, each containing:
    - `ip`: Host IP
    - `status`: Status (`up`, `down`, `unknown`)
    - `status_details`: Status details (e.g., latency)
    - `open_ports`: List of open ports (port number, state, service name, details) | + +--- diff --git a/docs/en/openeuler_intelligence/oe_cli/oe_cli_use_guide.md b/docs/en/openeuler_intelligence/oe_cli/oe_cli_use_guide.md new file mode 100644 index 0000000000000000000000000000000000000000..08107be234844d6573e2af6b879063a662f1b29c --- /dev/null +++ b/docs/en/openeuler_intelligence/oe_cli/oe_cli_use_guide.md @@ -0,0 +1,368 @@ +# oe-cli User Manual + +## Introduction + +OE-CLI is the command-line client for openEuler Intelligence, providing an AI-driven command-line interactive experience. It supports multiple LLM backends, integrates the MCP protocol, and offers a modern TUI interface. + +### Core Features + +- **Smart Terminal Interface**: Modern TUI interface based on Textual +- **Streaming Response**: Real-time display of AI response content +- **Deployment Assistant**: Built-in automatic deployment functionality for openEuler Intelligence + +## 1. Overall Usage Description (Based on Windows 10 CMD) + +### 1.1 Opening oe-cli + +Open oe-cli using `oi`. Use `Ctrl + C` to interrupt, `Ctrl + Q` to exit, `Ctrl + S` to open settings, and `Ctrl + T` to select an agent. Mouse selection is also supported. + +```sh +oi +``` + +![oi-use-guide-01-main-screen.png](./pictures/oi-use-guide-01-main-screen.png) + +### 1.2 Agent Selection + +Select an agent (default is OE-Intelligent Operations Assistant). Use arrow keys to navigate, Enter to confirm, ESC to cancel. Highlighted items indicate selection. + +![default-agent-screenshot](./pictures/default-agent-screenshot.PNG) + +### 1.3 Using Agents + +To use an agent, using OE-Intelligent Operations Assistant as an example, press Enter to confirm and enter the conversation interface. + +![oi-use-guide-01-main-screen-agent.png](./pictures/oi-use-guide-01-main-screen-agent.png) + +### 1.4 Tool Execution Confirmation + +Enter commands or questions in the bottom-left input field, such as "帮我分析当前机器性能情况" (Help me analyze current machine performance). The agent will automatically select appropriate MCP tools and ask for execution confirmation. Click confirm here. + +![usage-example-1](./pictures/usage-example-1.PNG) + +### 1.5 oe-cli Presets + +Configure the client using these flags for `oi` command: + +#### Configure Language + +**Supported Languages:** + +- English (en_US) - Default +- Simplified Chinese (zh_CN) + +Switch to Chinese: + +```sh +oi --locale zh_CN +``` + +Switch to English: + +```sh +oi --locale en_US +``` + +Language settings are saved automatically and take effect on next startup. + +#### Set Initial Agent + +```sh +oi --agent +``` + +#### Set Log Level and Verify + +```sh +oi --log-level INFO +``` + +### 1.6 View Logs + +View latest log content: + +```sh +oi --logs +``` + +### 1.7 Settings + +**Modify tool execution to auto-confirm:** Click Settings + +![tuning-settings](./pictures/tuning-settings.PNG) +![tuning-settings2](./pictures/tuning-settings2.PNG) + +**Click MCP tool authorization** to switch between manual and auto confirmation: + +![tuning-settings3](./pictures/tuning-settings3.PNG) + +**Configure oi-runtime address** (default: localhost:8002) + +**Click Backend: openEuler Intelligence** to switch to LLM configuration: + +![tuning-settings4](./pictures/tuning-settings4.PNG) + +### 1.8 Interface Shortcuts + +- `Ctrl+S`: Open settings +- `Ctrl+R`: Reset conversation history +- `Ctrl+T`: Select agent +- `Tab`: Switch focus between input and output areas +- `Esc`: Exit application + +**Supplement:** For detailed operations including `oi --logs`, refer to the shell's [README](https://gitee.com/openeuler/euler-copilot-shell/blob/master/README.md) + +## 2. Platform Demonstrations + +### 2.1 Using CMD + +**Open oe-cli:** + +```sh +oi +``` + +![oi-use-guide-01-main-screen.png](./pictures/oi-use-guide-01-main-screen.png) + +**Using Agents:** +![default-agent-screenshot](./pictures/default-agent-screenshot.PNG) +![oi-use-guide-01-main-screen.png](./pictures/oi-use-guide-01-main-screen.png) + +**Execute MCP tools sequentially based on context:** +![usage-example-1](./pictures/usage-example-1.PNG) +![usage-example-2](./pictures/usage-example-2.PNG) + +**Agent outputs analysis report based on tool results:** +![usage-example-3](./pictures/usage-example-3.PNG) + +### 2.2 Using VSCode + +**Open oe-cli:** +![vscode_start](./pictures/vscode_start.png) + +**Agent Selection** (usage same as above): +![vscode-agent-selection](./pictures/select_agent_vscode.png) + +**Using Agents:** +![agent_using](./pictures/agent_using.png) + +**Settings:** +![vscode-settings-page](./pictures/vscode_settings.png) + +### 2.4 Using Xshell + +**Open oe-cli:** + +```sh +oi +``` + +![xshell_start](./pictures/xshell_start.png) + +**Agent Selection:** +![xshell_select_agent](./pictures/xshell_select_agent.png) + +**Agent Usage:** + +Tool confirmation: +![xshell_behavior_ok](./pictures/xshell_behavior_ok.png) + +Question answering: +![xshell_result](./pictures/xshell_result.png) + +**Settings:** +![xshell_setting](./pictures/xshell_setting.png) + +## 3. Advanced Features + +### 3.1 Custom MCP + +Prepare MCP service based on MCP protocol, supporting SSE format calls. + +Create JSON file with this format. Configure `url` to custom MCP port (`/sse` is standard route), modify `name`, `overview`, `description`. Other fields can remain default: + +```json +{ + "name": "systrace_mcp_server", + "overview": "systrace 运维 mcp 服务", + "description": "systrace 运维 mcp 服务", + "mcpType": "sse", + "author": "root", + "config": { + "env": {}, + "autoApprove": [], + "disabled": false, + "auto_install": false, + "description": "", + "timeout": 60, + "url": "http://127.0.0.1:12145/sse" + } +} +``` + +**Note:** Multiple `init` calls will delete previous MCP services and re-register. + +After preparing JSON file, execute (use full path like `/tmp/config.json`): + +```sh +oi-manager --a init /tmp/config.json +``` + +### 3.2 Create Agent + +After MCP creation, execute: + +```sh +oi-manager --a create /tmp/config.json +``` + +The `init` command automatically adds `serviceId` field to identify MCP service in openEuler Intelligence. `create` creates one agent per MCP service. + +Example config.json after init: + +```json +{ + "name": "systrace_mcp_server", + "overview": "systrace 运维 mcp 服务", + "description": "systrace 运维 mcp 服务", + "mcpType": "sse", + "author": "root", + "config": { + "env": {}, + "autoApprove": [], + "disabled": false, + "auto_install": false, + "description": "", + "timeout": 60, + "url": "http://127.0.0.1:12145/sse" + }, + "serviceId": "p2qQke" +} +``` + +### 3.3 Create Many-to-One Agent Application + +To create multiple MCPs for one agent: + +```sh +oi-manager --a comb /tmp/comb_config.json +``` + +Create new JSON file (not from step 3.2): + +```json +{ + "appType": "agent", + "icon": "", + "name": "agent_comb", + "description": "测试agent comb", + "dialogRounds": 3, + "permission": { + "visibility": "public", + "authorizedUsers": [] + }, + "workflows": [], + "mcpService": [ + {"id": "jFOWgw"}, + {"id": "4tA5TO"} + ], + "published": "True" +} +``` + +**Note:** Mainly modify `name`, `description`, and `mcpService`. The `id` in `mcpService` list is automatically generated in step 3.2. + +**Execution Log Example:** + +```sh +[root@localhost deploy]# oi-manager --a init /root/mcp_config/perf_mcp/config.json +2025-08-15 09:49:54,874 - mcp_manager - INFO - 成功加载配置文件: /root/mcp_config/perf_mcp/config.json +2025-08-15 09:49:54,874 - mcp_manager - INFO - 删除MCP服务: dJsLV4 +2025-08-15 09:49:54,960 - mcp_manager - INFO - 已删除旧的MCP服务ID +2025-08-15 09:49:54,961 - mcp_manager - INFO - 创建MCP服务 +2025-08-15 09:49:55,060 - mcp_manager - INFO - MCP服务创建成功,service_id: XMZ7Pb +2025-08-15 09:49:55,061 - mcp_manager - INFO - 配置文件已更新: /root/mcp_config/perf_mcp/config.json +2025-08-15 09:49:55,061 - mcp_manager - INFO - 操作执行成功 + +[root@localhost deploy]# oi-manager --a create /root/mcp_config/perf_mcp/config.json +2025-08-15 09:50:03,819 - mcp_manager - INFO - 成功加载配置文件: /root/mcp_config/perf_mcp/config.json +2025-08-15 09:50:03,819 - mcp_manager - INFO - 安装MCP服务: XMZ7Pb +2025-08-15 09:50:04,052 - mcp_manager - INFO - 等待MCP服务就绪: XMZ7Pb +2025-08-15 09:50:14,955 - mcp_manager - INFO - MCP服务 XMZ7Pb 已就绪 (耗时 9 秒) +2025-08-15 09:50:14,956 - mcp_manager - INFO - 激活MCP服务: XMZ7Pb +2025-08-15 09:50:15,057 - mcp_manager - INFO - 应用创建成功,app_id: cd4a8f3b-9b25-4608-8d4c-d2c435e15ffd +2025-08-15 09:50:15,057 - mcp_manager - INFO - 发布应用: cd4a8f3b-9b25-4608-8d4c-d2c435e15ffd +2025-08-15 09:50:15,149 - mcp_manager - INFO - Agent创建流程完成 +2025-08-15 09:50:15,149 - mcp_manager - INFO - 操作执行成功 +``` + +## 4. Use Case: euler-copilot-tune Tuning + +The euler-copilot-tune project ([README](https://gitee.com/openeuler/A-Tune/blob/euler-copilot-tune/README.md)) adapts MCP protocol and supports OI calls. + +When using `oi --init` for lightweight openEuler-Intelligence installation, euler-copilot-tune installs as default MCP service (managed by systemctl, service name: `tune-mcp_server`). For latest version, install from source: + +```sh +git clone https://gitee.com/openeuler/A-Tune.git -b euler-copilot-tune +cd A-tune +python3 setup.py install +``` + +![tuning-update-1](./pictures/tuning-update-1.PNG) +![tuning-update-2](./pictures/tuning-update-2.PNG) + +euler-copilot-tune MCP service belongs to OE-Tuning Assistant. Tuning has four steps: collect service data, analyze performance bottlenecks, recommend optimization parameters, and start tuning. Natural language interactions follow this sequence. + +### Preparation + +Need target machine and services (Nginx, MySQL, etc.). Refer to [euler-copilot-tune usage examples](https://gitee.com/openeuler/A-Tune/blob/euler-copilot-tune/README.md#应用案例) for environment setup. + +Modify configuration files (`.env.yaml` and `app_config.yaml`) in `/etc/euler-copilot-tune/config/`. Refer to [README](https://gitee.com/openeuler/A-Tune/blob/euler-copilot-tune/README.md#配置文件准备) for details. Restart service after modification: + +```sh +systemctl restart tune-mcp_server +``` + +![tuning-configuration-file](./pictures/tuning-configuration-file.PNG) + +Modify oi-runtime MCP read timeout: + +```sh +vi /etc/euler-copilot-framework/config.toml + +# Add configuration (seconds) +[mcp_config] +sse_client_read_timeout = 360000 + +# Restart oi-runtime +systemctl restart oi-runtime +``` + +### Usage + +**Select OE-Tuning Assistant:** +![tuning-usage-1](./pictures/tuning-usage-1.PNG) + +**Enter in terminal:** "帮我采集192.168.159.129 机器的 nginx 服务的性能数据,分析推荐参数,开始调优" ("Help me collect performance data of the nginx service on machine 192.168.159.129, analyze recommended parameters, and start tuning.") +![tuning-usage-2](./pictures/tuning-usage-2.PNG) + +After confirmation, "tune-mcp_server" collects data. View logs with: + +```sh +journalctl -xe -u tune-mcpserver --all -f +``` + +![tuning-usage-3](./pictures/tuning-usage-3.PNG) + +After Collector execution, sequentially executes data analysis, parameter recommendation, and performance tuning tools: +![tuning-usage-4](./pictures/tuning-usage-4.PNG) +![tuning-usage-5](./pictures/tuning-usage-5.PNG) +![tuning-usage-6](./pictures/tuning-usage-6.PNG) + +After execution, view tuning results: + +```sh +journalctl -xe -u tune-mcpserver --all -f +``` + +![performance-tuning-log](./pictures/performance-tuning-log.png) diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/agent_using.png b/docs/en/openeuler_intelligence/oe_cli/pictures/agent_using.png new file mode 100755 index 0000000000000000000000000000000000000000..9c3c7a5710aab789412d69d093b7e0ac6ed8257c Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/agent_using.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/architecture.png b/docs/en/openeuler_intelligence/oe_cli/pictures/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1c59be7daf9ce1c5383ff33afc4361da2febd0 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/architecture.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/default-agent-screenshot.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/default-agent-screenshot.PNG new file mode 100755 index 0000000000000000000000000000000000000000..8e521b94c7a489381a88b4ad10f29587a210e4c2 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/default-agent-screenshot.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092746531.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092746531.png new file mode 100644 index 0000000000000000000000000000000000000000..c37f6abd03f5cfec02c2c581188acad47537e277 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092746531.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092914434.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092914434.png new file mode 100644 index 0000000000000000000000000000000000000000..15eb6f5fb465272b5f857acc3ec876b324794043 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092914434.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092956884.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092956884.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f39e26b97d32af46826e5c5f204b98e7da3490 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918092956884.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093033417.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093033417.png new file mode 100644 index 0000000000000000000000000000000000000000..249318a9fb59ac71b27894bec0b9c29e7c28aa9a Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093033417.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093329139.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093329139.png new file mode 100644 index 0000000000000000000000000000000000000000..c4c438c169f372c3ce0a6aa0f141f47ce795447b Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093329139.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093620039.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093620039.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd69bb3cbe3883384457ba524d9ecbc40f35e21 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918093620039.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918095405109.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918095405109.png new file mode 100644 index 0000000000000000000000000000000000000000..58e3196ec2ed2c9c958230dcb089bb237ba4d68f Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918095405109.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918095742768.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918095742768.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ca512f02107f2fb8ac63971ac9c67dd2974161 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918095742768.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100010161.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100010161.png new file mode 100644 index 0000000000000000000000000000000000000000..6c45efcbf9b55c7fb50d03e2be4a8689b9a3bfc6 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100010161.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100502872.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100502872.png new file mode 100644 index 0000000000000000000000000000000000000000..73fb337b965272590628a6dbcb56646dd79e20c7 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100502872.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100832293.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100832293.png new file mode 100644 index 0000000000000000000000000000000000000000..3d21d3b0fc11a75ff3a7c6875d47acf7a7fc3735 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918100832293.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101004733.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101004733.png new file mode 100644 index 0000000000000000000000000000000000000000..a3ac04e0b962df3f0acc741a83a0e9486341f253 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101004733.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101029066.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101029066.png new file mode 100644 index 0000000000000000000000000000000000000000..29f971788175a5b00bb2fec6b33eb8e001d4e640 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101029066.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101147653.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101147653.png new file mode 100644 index 0000000000000000000000000000000000000000..52546654a7d14dc7a2793edfed92e611a4a58db5 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101147653.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101425789.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101425789.png new file mode 100644 index 0000000000000000000000000000000000000000..da12e2d14bbec2d6dd9192e8a7b45d59f10bcd20 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101425789.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101443421.png b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101443421.png new file mode 100644 index 0000000000000000000000000000000000000000..ced1fb5baeaa90a20d299e84bef76ec3a692c011 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/image-20250918101443421.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_1.png b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0180a09ffad5163cce93ca2e43ccb9d5c15c410b Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_1.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_2.png b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_2.png new file mode 100644 index 0000000000000000000000000000000000000000..76285dceed4afc59bf964e8bf7357dcfd1919d7b Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_2.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_1.png b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e34f78b54fb2b69244ae1ec983763f49416b091d Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_1.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_2.png b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a19fa9f9c32c4ebb93dadb6cc5d2312ee5d3a456 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_2.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_deploy.png b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_deploy.png new file mode 100644 index 0000000000000000000000000000000000000000..601835c5321036e8a7cdc1a91e68d66f6ca38177 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_deploy.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_deploy_finished.png b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_deploy_finished.png new file mode 100644 index 0000000000000000000000000000000000000000..3458f8ca6c1eea4130bad9e8a87a3bd0a2d16722 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_deploy_finished.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_llm.png b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_llm.png new file mode 100644 index 0000000000000000000000000000000000000000..79f28d4a9d724f6a7f1b29c1ccb0eebcf341ffbf Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/init_vscode_set_llm.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-01-welcome.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-01-welcome.png new file mode 100755 index 0000000000000000000000000000000000000000..d62860bc9e2e540e6984ccac79b656e7fc3a6c42 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-01-welcome.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-02-env-check.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-02-env-check.png new file mode 100755 index 0000000000000000000000000000000000000000..4e06ef8208eb4d65b940b6e36296ce5e8f654002 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-02-env-check.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-03-basic.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-03-basic.png new file mode 100755 index 0000000000000000000000000000000000000000..0e3a26427b7bea0e20c5b1b3e70a6ebc1a1811bb Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-03-basic.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-04-llm-tab.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-04-llm-tab.png new file mode 100755 index 0000000000000000000000000000000000000000..8bf4c4d325ec742004b4d4571b2868790ba82483 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-04-llm-tab.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-05-llm-fill-in.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-05-llm-fill-in.png new file mode 100755 index 0000000000000000000000000000000000000000..0f1f21ce28951228ccf78ab1498e80d2ccdf3f5d Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-05-llm-fill-in.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-06-start.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-06-start.png new file mode 100755 index 0000000000000000000000000000000000000000..4308ef2d78a79551d6911a8c0f022c3916ac32d3 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-06-start.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-07-ing.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-07-ing.png new file mode 100755 index 0000000000000000000000000000000000000000..00b218b3014f9f5d780e1f9051924807f8f3d318 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-07-ing.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-08-finish.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-08-finish.png new file mode 100755 index 0000000000000000000000000000000000000000..6fa23c4920cf2695fc93c90324a8afab2ea8cf49 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-deploy-08-finish.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-use-guide-01-main-screen-agent.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-use-guide-01-main-screen-agent.png new file mode 100755 index 0000000000000000000000000000000000000000..07403d20a69a0ae11ce2f65d6b2270baa2a7b8be Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-use-guide-01-main-screen-agent.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/oi-use-guide-01-main-screen.png b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-use-guide-01-main-screen.png new file mode 100755 index 0000000000000000000000000000000000000000..07403d20a69a0ae11ce2f65d6b2270baa2a7b8be Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/oi-use-guide-01-main-screen.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/performance-tuning-log.png b/docs/en/openeuler_intelligence/oe_cli/pictures/performance-tuning-log.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3a0c8e5e6b89eab2521b7d0596b5a722042563 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/performance-tuning-log.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/select_agent_vscode.png b/docs/en/openeuler_intelligence/oe_cli/pictures/select_agent_vscode.png new file mode 100755 index 0000000000000000000000000000000000000000..7262634362d7e169c8526e5581cc08fbfcd8ae27 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/select_agent_vscode.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-configuration-file.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-configuration-file.PNG new file mode 100644 index 0000000000000000000000000000000000000000..53173f60e5be95a53362408b718191eb75c07a9f Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-configuration-file.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings.PNG new file mode 100755 index 0000000000000000000000000000000000000000..07403d20a69a0ae11ce2f65d6b2270baa2a7b8be Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings2.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings2.PNG new file mode 100755 index 0000000000000000000000000000000000000000..c5763b0d99bdea3ccef50431b929fcbbe7725696 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings2.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings3.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings3.PNG new file mode 100755 index 0000000000000000000000000000000000000000..38930fc1ad62d0e488e2cc7276376fc80abe542b Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings3.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings4.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings4.PNG new file mode 100755 index 0000000000000000000000000000000000000000..f7566378b5e234b5344fbcf4f758436942f954fa Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-settings4.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-update-1.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-update-1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5c3ab9ffb767e7b9f2c24f9d23f50b170975dca1 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-update-1.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-update-2.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-update-2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..1eca39090808c437578aaeebfd3c87b7f862d7c0 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-update-2.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-1.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-1.PNG new file mode 100755 index 0000000000000000000000000000000000000000..0d68773c7b491392543e6ecb1e8a63c48f3cd28c Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-1.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-2.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-2.PNG new file mode 100755 index 0000000000000000000000000000000000000000..7b4f31ed5f9c11a231a0d1e3135910ce751bfb8b Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-2.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-3.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-3.PNG new file mode 100644 index 0000000000000000000000000000000000000000..63e18dbf965d97e207ad89a5d62ec49bf3c3bb53 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-3.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-4.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..3201626a9272210a9cc4c16645f1b734f42b8565 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-4.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-5.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-5.PNG new file mode 100644 index 0000000000000000000000000000000000000000..e395e99b3deca5b90f3126202c3c13a9759e94f3 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-5.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-6.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-6.PNG new file mode 100644 index 0000000000000000000000000000000000000000..05137396e0e932fbda6391d9a22e50dcee753521 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/tuning-usage-6.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-1.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-1.PNG new file mode 100755 index 0000000000000000000000000000000000000000..87e44dd3c2b3fce28c2e66709f05b5d2757eb490 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-1.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-2.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-2.PNG new file mode 100755 index 0000000000000000000000000000000000000000..8a2c462983ff4a0cc13b5d8ade3ab08d5cd455f2 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-2.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-3.PNG b/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-3.PNG new file mode 100755 index 0000000000000000000000000000000000000000..4ec29af16bae953ac5688130581f594b8805dcc9 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/usage-example-3.PNG differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/vscode_settings.png b/docs/en/openeuler_intelligence/oe_cli/pictures/vscode_settings.png new file mode 100755 index 0000000000000000000000000000000000000000..9a1cc4a0833fe47012386db16f7cc917b0f12de7 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/vscode_settings.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/vscode_start.png b/docs/en/openeuler_intelligence/oe_cli/pictures/vscode_start.png new file mode 100755 index 0000000000000000000000000000000000000000..da69b1dfb70a99e89ca590623e6ffebfa74d93a0 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/vscode_start.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_behavior_ok.png b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_behavior_ok.png new file mode 100755 index 0000000000000000000000000000000000000000..8a221dfeebc55e381ff17188dd9adc91942b3477 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_behavior_ok.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_result.png b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_result.png new file mode 100755 index 0000000000000000000000000000000000000000..11b2248acc3189d7eaf62ddbeb76d4d801fae783 Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_result.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_select_agent.png b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_select_agent.png new file mode 100755 index 0000000000000000000000000000000000000000..c1d446212674437a274c93794bd0dd25ea11dcdf Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_select_agent.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_setting.png b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_setting.png new file mode 100755 index 0000000000000000000000000000000000000000..971fbeeb50cf8febb974019afa1306a93eaec07b Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_setting.png differ diff --git a/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_start.png b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_start.png new file mode 100755 index 0000000000000000000000000000000000000000..c97c97c4e0c71d36f22c382bac782966fe9bd71b Binary files /dev/null and b/docs/en/openeuler_intelligence/oe_cli/pictures/xshell_start.png differ