Model Context Protocol (MCP) Linux 常用工具 (LCU) 服务器是一个基于 Python 的服务器,通过 Model Context Protocol 提供对各种 Linux 系统操作和信息的访问。
克隆仓库:
git clone https://github.com/yourusername/mcp_lcu_server.git
cd mcp_lcu_server
安装包:
uv venv
source .venv/bin/activate
python -m build
服务器可以通过 YAML 配置文件进行配置。默认情况下,它会在以下位置查找配置文件:
./config.yaml./config/config.yaml/etc/mcp-lcu-server/config.yaml~/.config/mcp-lcu-server/config.yaml您也可以使用 --config 命令行选项指定自定义配置文件路径。
server:
name: mcp-lcu-server
transport: both # stdio, sse, 或者 both
port: 8000
host: 127.0.0.1
monitoring:
enabled: true
interval: 30 # 秒
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:
- "*" # 允许所有域名
process:
allow_kill: false
allowed_users: []
logs:
# 自定义日志路径(可选)
paths:
# syslog: /var/log/syslog
# auth: /var/log/auth.log
max_entries: 1000 # 返回的最大条目数
您可以使用命令行界面启动服务器:
mcp-lcu-server [OPTIONS]
可用选项:
--config, -c: 配置文件路径--transport, -t: 传输类型(stdio, sse, 或者 both)--port, -p: SSE 传输端口--host, -h: SSE 传输主机--debug, -d: 启用调试日志服务器支持以下传输类型:
stdio: 标准输入/输出传输sse: 服务发送事件传输使用 stdio 传输启动服务器:
mcp-lcu-server --transport stdio
在 8000 端口上使用 SSE 传输启动服务器:
mcp-lcu-server --transport sse --port 8000
同时使用两种传输类型启动服务器:
mcp-lcu-server --transport both
服务器提供了多种与 Linux 系统交互的工具:
get_cpu_info: 获取详细的 CPU 信息get_cpu_usage: 获取 CPU 使用率get_load_average: 获取系统负载平均值analyze_cpu_performance: 分析 CPU 性能get_memory_info: 获取详细的内存信息get_memory_usage: 获取内存使用情况get_swap_info: 获取交换分区信息analyze_memory_performance: 分析内存性能list_processes: 列出所有进程get_process_info: 获取进程的详细信息search_processes: 搜索进程analyze_top_processes: 分析按 CPU 和内存使用量排序的顶级进程list_disks: 列出物理磁盘list_partitions: 列出磁盘分区get_disk_usage: 获取磁盘使用情况analyze_storage_usage: 分析存储使用情况list_directory: 列出目录内容read_file: 读取文件内容write_file: 将内容写入文件delete_file: 删除文件或目录copy_file: 复制文件或目录move_file: 移动文件或目录search_files: 搜索匹配模式的文件search_file_contents: 搜索包含特定模式的文件get_system_info: 获取通用系统信息get_cpu_info: 获取 CPU 信息get_memory_info: 获取内存信息get_storage_info: 获取存储信息get_pci_devices: 获取 PCI 设备信息get_usb_devices: 获取 USB 设备信息analyze_hardware: 分析硬件配置get_network_interfaces: 获取网络接口信息get_network_connections: 获取网络连接get_network_stats: 获取网络统计信息ping_host: 对主机进行 ping 测试traceroute_host: 对主机进行路由追踪http_get_request: 执行 HTTP GET 请求download_file_from_url: 从 URL 下载文件upload_file_to_url: 将文件上传到 URLanalyze_network: 分析网络配置和连通性get_system_status: 获取系统状态check_system_health: 检查系统健康状况monitor_resources: 监控资源使用情况get_system_uptime: 获取系统运行时间get_system_load: 获取系统负载analyze_system_performance: 分析系统性能log_list_available_logs: 列出系统中所有可用的日志来源log_get_journal_logs: 从 systemd 日志获取日志log_get_system_logs: 从系统日志文件获取日志log_get_dmesg: 从内核环形缓冲区获取日志(dmesg)log_get_application_logs: 获取特定应用程序的日志log_get_audit_logs: 获取审计日志log_get_boot_logs: 获取启动日志log_get_service_status_logs: 获取与特定 systemd 服务相关的日志log_search_logs: 在多个日志来源中搜索log_analyze_logs: 分析日志以识别模式和问题log_get_statistics: 获取关于日志量和特征的统计数据服务器还提供可通过 MCP 访问的各种资源:
linux://system/info: 系统信息linux://system/cpu: CPU 信息linux://system/memory: 内存信息linux://system/uptime: 系统运行时间linux://monitoring/status: 系统状态linux://monitoring/health: 系统健康状况linux://monitoring/resources: 资源使用情况linux://fs/dir/{path}: 目录列表linux://fs/info/{path}: 文件信息linux://fs/file/{path}: 文件内容linux://fs/usage/{path}: 目录使用情况分析linux://network/interfaces: 网络接口linux://network/connections: 网络连接linux://network/stats: 网络统计信息linux://network/ping/{host}: 对主机进行 ping 测试linux://network/traceroute/{host}: 对主机进行路由追踪linux://network/analysis: 网络分析linux://logs/available: 可用日志来源列表linux://logs/journal/{parameters}: 来自 systemd 日志的日志linux://logs/system/{log_type}/{parameters}: 来自系统日志文件的日志linux://logs/kernel/{count}: 来自内核环形缓冲区的日志(dmesg)linux://logs/application/{app_name}/{parameters}: 特定应用程序的日志linux://logs/audit/{parameters}: 来自 Linux 审计系统的日志linux://logs/boot/{count}: 与系统启动相关的日志linux://logs/service/{service}/{count}: 特定 systemd 服务的日志linux://logs/search/{query}/{parameters}: 在多个日志来源中搜索linux://logs/analysis/{parameters}: 日志模式和问题的分析linux://logs/statistics/{parameters}: 关于日志量和特征的统计数据服务器提供了对各种系统操作的访问,如果误用可能会非常危险。确保:
服务器包括一个强大的命令执行工具,允许在宿主系统上运行 shell 命令。如果配置不当或在不受信任的环境中使用,此功能可能带来重大安全风险。
警告:如果您不想使用命令执行功能,有以下两个选择:
command.enabled: false 来禁用它:
command:
enabled: false
当启用命令执行时,请考虑以下额外的安全措施:
allowed_commands 限制可以执行哪些命令blocked_commands 明确阻止危险命令allow_sudo: false 禁用 sudo 访问本项目根据 MIT 许可证发布 - 查看 LICENSE 文件了解详情。