what is mcp_lcu_server?
The mcp_lcu_server is a server application designed to facilitate communication and data management for various applications.
how to use mcp_lcu_server?
To use mcp_lcu_server, clone the repository from GitHub, configure the server settings, and run the server command to start the application.
key features of mcp_lcu_server?
- Supports multiple client connections
- Provides real-time data processing
- Easy integration with existing applications
use cases of mcp_lcu_server?
- Managing data for web applications
- Facilitating communication between microservices
- Real-time data analytics for applications
FAQ from mcp_lcu_server?
- What programming languages does mcp_lcu_server support?
mcp_lcu_server is designed to be language-agnostic and can be integrated with any programming language that supports HTTP requests.
- Is mcp_lcu_server free to use?
Yes! mcp_lcu_server is open-source and available under the MIT license.
- How can I contribute to mcp_lcu_server?
You can contribute by submitting issues, feature requests, or pull requests on the GitHub repository.
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
Command Execution Security
The server includes a powerful command execution tool that allows running shell commands on the host system. This feature can pose significant security risks if not properly configured or if used in untrusted environments.
Warning: If you don't want to use the command execution functionality, you have two options:
- Disable it by setting
command.enabled: false
in your configuration file:command: enabled: false
- Remove the MCP tools related to command execution by modifying your server implementation.
When command execution is enabled, consider these additional security measures:
- Use
allowed_commands
to restrict which commands can be executed - Use
blocked_commands
to explicitly block dangerous commands - Set appropriate timeouts and output size limits
- Disable sudo access with
allow_sudo: false
unless absolutely necessary
License
This project is licensed under the MIT License - see the LICENSE file for details.