    
MCP Linux通用实用程序服务器
模型上下文协议(MCP)Linux通用工具(LCU)服务器是一个基于Python的服务器,通过模型上下文协议提供对各种Linux系统操作和信息的访问。
特性
- CPU操作:CPU信息、使用率、平均负载等。
- 存储器操作:内存和交换信息、使用统计。
- 进程/线程操作:流程列表、信息和管理。
- 存储操作:磁盘、卷和分区信息。
- 文件系统操作:文件创建、删除、更新和信息。
- 硬件操作:硬件检测和信息。
- 网络运营:接口信息、连接测试和数据传输。
- 监控操作:系统状态监测和健康检查。
- 日志操作:跨多个来源访问系统日志、日志分析和统计数据。
安装
先决条件
- Python 3.10或更高版本
- 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, 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用法
启动服务器
您可以使用命令行界面启动服务器:
mcp-lcu-server [OPTIONS]可用选项:
--config,-c:配置文件的路径--transport,-t:传输类型(stdio、sse或两者)--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 bothAPI文档
工具
服务器提供了各种与Linux系统交互的工具:
CPU工具
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- 通过修改服务器实现,删除与命令执行相关的MCP工具。
启用命令执行时,请考虑以下附加安全措施:
- 使用
allowed_commands限制可以执行的命令 - 使用
blocked_commands明确阻止危险命令 - 设置适当的超时和输出大小限制
- 使用禁用sudo访问
allow_sudo: false除非绝对必要
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
