MCP Linux Common Utility Server
by guolisen
The MCP Linux Common Utility Server is a Python-based server providing access to various Linux system operations and information through the Model Context Protocol. It offers a range of tools for managing and monitoring system resources.
Last updated: N/A
MCP Linux Common Utility Server
The Model Context Protocol (MCP) Linux Common Utility (LCU) Server is a Python-based server that provides access to various Linux system operations and information through the Model Context Protocol.
Features
- CPU Operations: CPU information, usage, load average, etc.
- Memory Operations: Memory and swap information, usage statistics.
- Process/Thread Operations: Process listing, information, and management.
- Storage Operations: Disk, volume, and partition information.
- Filesystem Operations: File creation, deletion, updating, and information.
- Hardware Operations: Hardware detection and information.
- Network Operations: Interface information, connectivity testing, and data transfer.
- Monitoring Operations: System status monitoring and health checks.
Installation
Prerequisites
- Python 3.10 or higher
- Linux operating system
Installation Steps
-
Clone the repository:
git clone https://github.com/yourusername/mcp_lcu_server.git cd mcp_lcu_server
-
Install the package:
pip install -e .
Configuration
The server can be configured using a YAML configuration file. By default, it looks for the configuration file in the following locations:
./config.yaml
./config/config.yaml
/etc/mcp-lcu-server/config.yaml
~/.config/mcp-lcu-server/config.yaml
You can also specify a custom configuration file path using the --config
command-line option.
Configuration File Example
server:
name: mcp-lcu-server
transport: both # stdio, sse, or both
port: 8000
host: 127.0.0.1
monitoring:
enabled: true
interval: 30 # seconds
metrics:
- cpu
- memory
- disk
- network
filesystem:
allowed_paths:
- /
max_file_size: 10485760 # 10MB
network:
allow_downloads: true
allow_uploads: true
max_download_size: 104857600 # 100MB
max_upload_size: 10485760 # 10MB
allowed_domains:
- "*" # Allow all domains
process:
allow_kill: false
allowed_users: []
Usage
Starting the Server
You can start the server using the command-line interface:
mcp-lcu-server [OPTIONS]
Available options:
--config
,-c
: Path to the configuration file--transport
,-t
: Transport type (stdio, sse, or both)--port
,-p
: Port for SSE transport--host
,-h
: Host for SSE transport--debug
,-d
: Enable debug logging
Transport Types
The server supports the following transport types:
stdio
: Standard input/output transportsse
: Server-Sent Events transport
Examples
Start the server with stdio transport:
mcp-lcu-server --transport stdio
Start the server with SSE transport on port 8000:
mcp-lcu-server --transport sse --port 8000
Start the server with both transports:
mcp-lcu-server --transport both
API Documentation
Tools
The server provides various tools for interacting with the Linux system:
CPU Tools
get_cpu_info
: Get detailed CPU informationget_cpu_usage
: Get CPU usage percentageget_load_average
: Get system load averageanalyze_cpu_performance
: Analyze CPU performance
Memory Tools
get_memory_info
: Get detailed memory informationget_memory_usage
: Get memory usageget_swap_info
: Get swap informationanalyze_memory_performance
: Analyze memory performance
Process Tools
list_processes
: List all processesget_process_info
: Get detailed information about a processsearch_processes
: Search for processesanalyze_top_processes
: Analyze top processes by CPU and memory usage
Storage Tools
list_disks
: List physical diskslist_partitions
: List disk partitionsget_disk_usage
: Get disk usageanalyze_storage_usage
: Analyze storage usage
Filesystem Tools
list_directory
: List contents of a directoryread_file
: Read file contentswrite_file
: Write content to a filedelete_file
: Delete a file or directorycopy_file
: Copy a file or directorymove_file
: Move a file or directorysearch_files
: Search for files matching a patternsearch_file_contents
: Search for files containing a pattern
Hardware Tools
get_system_info
: Get general system informationget_cpu_info
: Get CPU informationget_memory_info
: Get memory informationget_storage_info
: Get storage informationget_pci_devices
: Get PCI device informationget_usb_devices
: Get USB device informationanalyze_hardware
: Analyze hardware configuration
Network Tools
get_network_interfaces
: Get network interfaces informationget_network_connections
: Get network connectionsget_network_stats
: Get network statisticsping_host
: Ping a hosttraceroute_host
: Trace route to a hosthttp_get_request
: Perform HTTP GET requestdownload_file_from_url
: Download a file from a URLupload_file_to_url
: Upload a file to a URLanalyze_network
: Analyze network configuration and connectivity
Monitoring Tools
get_system_status
: Get system statuscheck_system_health
: Check system healthmonitor_resources
: Monitor resource usageget_system_uptime
: Get system uptimeget_system_load
: Get system loadanalyze_system_performance
: Analyze system performance
Resources
The server also provides various resources that can be accessed via MCP:
System Resources
linux://system/info
: System informationlinux://system/cpu
: CPU informationlinux://system/memory
: Memory informationlinux://system/uptime
: System uptime
Monitoring Resources
linux://monitoring/status
: System statuslinux://monitoring/health
: System healthlinux://monitoring/resources
: Resource usage
Filesystem Resources
linux://fs/dir/{path}
: Directory listinglinux://fs/info/{path}
: File informationlinux://fs/file/{path}
: File contentslinux://fs/usage/{path}
: Directory usage analysis
Network Resources
linux://network/interfaces
: Network interfaceslinux://network/connections
: Network connectionslinux://network/stats
: Network statisticslinux://network/ping/{host}
: Ping a hostlinux://network/traceroute/{host}
: Trace route to a hostlinux://network/analysis
: Network analysis
Security Considerations
The server provides access to various system operations, which can be potentially dangerous if misused. Make sure to:
- Configure the allowed paths for filesystem operations
- Configure the allowed domains for network operations
- Restrict the ability to kill processes
- Run the server with appropriate permissions
License
This project is licensed under the MIT License - see the LICENSE file for details.