返回市场
MCP客户端更新服务器

MCP客户端更新服务器

作者:guolisen6 星标更新:2025-04-25

项目介绍

【技术文档摘要】: Python 3.12+ 测试

MCP Linux 常用工具服务器

Model Context Protocol (MCP) Linux 常用工具 (LCU) 服务器是一个基于 Python 的服务器,通过 Model Context Protocol 提供对各种 Linux 系统操作和信息的访问。

特性

  • CPU 操作:CPU 信息、使用情况、负载平均值等。
  • 内存操作:内存和交换分区信息、使用统计。
  • 进程/线程操作:进程列表、信息和管理。
  • 存储操作:磁盘、卷和分区信息。
  • 文件系统操作:文件创建、删除、更新和信息。
  • 硬件操作:硬件检测和信息。
  • 网络操作:接口信息、连通性测试和数据传输。
  • 监控操作:系统状态监控和健康检查。
  • 日志操作:访问系统日志、日志分析和多源统计。

安装

先决条件

  • Python 3.10 或更高版本
  • Linux 操作系统

安装步骤

  1. 克隆仓库:

    git clone https://github.com/yourusername/mcp_lcu_server.git
    cd mcp_lcu_server
    
  2. 安装包:

    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

API 文档

工具

服务器提供了多种与 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: 将文件上传到 URL
  • analyze_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 命令。如果配置不当或在不受信任的环境中使用,此功能可能带来重大安全风险。

警告:如果您不想使用命令执行功能,有以下两个选择:

  1. 通过在配置文件中设置 command.enabled: false 来禁用它:
    command:
      enabled: false
    
  2. 修改您的服务器实现,移除与命令执行相关的 MCP 工具。

当启用命令执行时,请考虑以下额外的安全措施:

  • 使用 allowed_commands 限制可以执行哪些命令
  • 使用 blocked_commands 明确阻止危险命令
  • 设置适当的超时和输出大小限制
  • 除非绝对必要,否则使用 allow_sudo: false 禁用 sudo 访问

许可证

本项目根据 MIT 许可证发布 - 查看 LICENSE 文件了解详情。