Skip to main content

Python 3.12+ Tests

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.
  • Log Operations: Access to system logs, log analysis, and statistics across multiple sources.

Installation

Prerequisites

  • Python 3.10 or higher
  • Linux operating system

Installation Steps

  1. Clone the repository:

    git clone https://github.com/yourusername/mcp_lcu_server.git
    cd mcp_lcu_server
    
  2. Install the package:

    uv venv
    source .venv/bin/activate
    python -m build
    

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: []

logs:
  # Custom log paths (optional)
  paths: 
    # syslog: /var/log/syslog
    # auth: /var/log/auth.log
  max_entries: 1000  # Maximum entries to return

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 transport
  • sse: 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 information
  • get_cpu_usage: Get CPU usage percentage
  • get_load_average: Get system load average
  • analyze_cpu_performance: Analyze CPU performance

Memory Tools

  • get_memory_info: Get detailed memory information
  • get_memory_usage: Get memory usage
  • get_swap_info: Get swap information
  • analyze_memory_performance: Analyze memory performance

Process Tools

  • list_processes: List all processes
  • get_process_info: Get detailed information about a process
  • search_processes: Search for processes
  • analyze_top_processes: Analyze top processes by CPU and memory usage

Storage Tools

  • list_disks: List physical disks
  • list_partitions: List disk partitions
  • get_disk_usage: Get disk usage
  • analyze_storage_usage: Analyze storage usage

Filesystem Tools

  • list_directory: List contents of a directory
  • read_file: Read file contents
  • write_file: Write content to a file
  • delete_file: Delete a file or directory
  • copy_file: Copy a file or directory
  • move_file: Move a file or directory
  • search_files: Search for files matching a pattern
  • search_file_contents: Search for files containing a pattern

Hardware Tools

  • get_system_info: Get general system information
  • get_cpu_info: Get CPU information
  • get_memory_info: Get memory information
  • get_storage_info: Get storage information
  • get_pci_devices: Get PCI device information
  • get_usb_devices: Get USB device information
  • analyze_hardware: Analyze hardware configuration

Network Tools

  • get_network_interfaces: Get network interfaces information
  • get_network_connections: Get network connections
  • get_network_stats: Get network statistics
  • ping_host: Ping a host
  • traceroute_host: Trace route to a host
  • http_get_request: Perform HTTP GET request
  • download_file_from_url: Download a file from a URL
  • upload_file_to_url: Upload a file to a URL
  • analyze_network: Analyze network configuration and connectivity

Monitoring Tools

  • get_system_status: Get system status
  • check_system_health: Check system health
  • monitor_resources: Monitor resource usage
  • get_system_uptime: Get system uptime
  • get_system_load: Get system load
  • analyze_system_performance: Analyze system performance

Log Tools

  • log_list_available_logs: List all available log sources on the system
  • log_get_journal_logs: Get logs from the systemd journal
  • log_get_system_logs: Get logs from system log files
  • log_get_dmesg: Get kernel logs from dmesg
  • log_get_application_logs: Get logs for a specific application
  • log_get_audit_logs: Get audit logs
  • log_get_boot_logs: Get boot logs
  • log_get_service_status_logs: Get logs related to a specific systemd service
  • log_search_logs: Search across multiple log sources
  • log_analyze_logs: Analyze logs to identify patterns and issues
  • log_get_statistics: Get statistics about log volume and characteristics

Resources

The server also provides various resources that can be accessed via MCP:

System Resources

  • linux://system/info: System information
  • linux://system/cpu: CPU information
  • linux://system/memory: Memory information
  • linux://system/uptime: System uptime

Monitoring Resources

  • linux://monitoring/status: System status
  • linux://monitoring/health: System health
  • linux://monitoring/resources: Resource usage

Filesystem Resources

  • linux://fs/dir/{path}: Directory listing
  • linux://fs/info/{path}: File information
  • linux://fs/file/{path}: File contents
  • linux://fs/usage/{path}: Directory usage analysis

Network Resources

  • linux://network/interfaces: Network interfaces
  • linux://network/connections: Network connections
  • linux://network/stats: Network statistics
  • linux://network/ping/{host}: Ping a host
  • linux://network/traceroute/{host}: Trace route to a host
  • linux://network/analysis: Network analysis

Log Resources

  • linux://logs/available: List of available log sources
  • linux://logs/journal/{parameters}: Logs from systemd journal
  • linux://logs/system/{log_type}/{parameters}: Logs from system log files
  • linux://logs/kernel/{count}: Logs from kernel ring buffer (dmesg)
  • linux://logs/application/{app_name}/{parameters}: Logs for specific applications
  • linux://logs/audit/{parameters}: Logs from the Linux audit system
  • linux://logs/boot/{count}: Logs related to system boot
  • linux://logs/service/{service}/{count}: Logs for specific systemd services
  • linux://logs/search/{query}/{parameters}: Search across multiple log sources
  • linux://logs/analysis/{parameters}: Analysis of log patterns and issues
  • linux://logs/statistics/{parameters}: Statistics about log volume and characteristics

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:

  1. Disable it by setting command.enabled: false in your configuration file:
    command:
      enabled: false
    
  2. 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.

Metadata

Release files for iflow-mcp_guolisen-mcp_lcu_server 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_guolisen-mcp_lcu_server 0.1.1
File Size Uploaded
iflow_mcp_guolisen_mcp_lcu_server-0.1.1.tar.gz 91.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_guolisen-mcp_lcu_server 0.1.1
File Interpreter ABI Platform
iflow_mcp_guolisen_mcp_lcu_server-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 206.9 kB

Release files / iflow_mcp_guolisen_mcp_lcu_server-0.1.1.tar.gz

Download URL iflow_mcp_guolisen_mcp_lcu_server-0.1.1.tar.gz
Size 91.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3bccbc00150d227b5b5ea33e4f4c0161497d2bfed46d916f217c5ce29a413341
BLAKE2b-256 checksum
How to use checksums
77bd9b1b8e8ac0b98e248c3e8f483cef2f942f3e42feb76127d3a47ad1f9926a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_guolisen_mcp_lcu_server-0.1.1-py3-none-any.whl

Download URL iflow_mcp_guolisen_mcp_lcu_server-0.1.1-py3-none-any.whl
Size 115.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3dadf1d88f8e01c98bbfa87ddd2e350f5dfbbdc8f64a2c1afabc977dc3e269e6
BLAKE2b-256 checksum
How to use checksums
310b9ac8af9cd91ae11a689940c7efd8e3ce11095e6db81ff8fc0a75f5d72452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page