Talos MCP服务器

Talos MCP服务器是一个提供对Talos OS集群管理能力全面访问的MCP服务器,通过标准化MCP接口暴露39个强大工具,用于监控、管理和与Talos OS节点交互。

  • by andrewwhitecdw
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 andrewwhitecdw/talos-mcp

使用说明

Talos MCP服务器

一种模型上下文协议(MCP)服务器,提供对Talos OS集群管理功能的全面访问。该服务器提供了39个强大的工具,用于通过标准化的MCP接口监视、管理Talos OS节点并与之交互。

特性

系统检查和监控

  • 容器管理:列出并监控支持Kubernetes命名空间的容器
  • 资源监控:CPU、内存使用情况和详细统计信息
  • 流程管理:列出并排序正在运行的进程
  • 硬件信息:磁盘详细信息、网络接口和系统资源

网络运营

  • 接口管理:具有多种输出格式的详细网络接口信息
  • 路由:使用高级筛选完成路由表访问
  • 连接性:网络统计、数据包捕获和诊断

集群管理

  • 健康监测:使用可配置参数进行全面的集群健康检查
  • 节点操作:重新启动、关闭、重置和升级功能
  • 时间同步:NTP服务器验证和时间管理

存储和文件操作

  • 文件系统:具有过滤、递归和多种格式的高级目录列表
  • 磁盘管理:支持YAML/JSON输出的详细磁盘信息
  • 文件操作:读取、复制和管理Talos节点上的文件

服务和日志

  • 服务控制:启动、停止、重新启动和监视系统服务
  • 日志访问:使用尾部支持和Kubernetes集成检索服务日志
  • 系统事件:访问内核消息和系统事件

配置等

  • 配置管理:应用和验证Talos配置
  • etcd操作:状态监控、成员管理和维护

可用工具

类别 工具 增强功能
系统监控 containers --kubernetes 命名空间支持
stats --kubernetes 命名空间支持
get_processes --sort 通过cpu/rss
memory_verbose 详细的内存信息
get_cpu_memory_usage CPU/内存组合统计数据
文件操作 list --long, --humanize, --recurse, --depth, --type 过滤器
read 文件内容访问
copy 文件传输操作
get_usage 磁盘使用信息
get_mounts 文件系统装载详细信息
网络 interfaces --namespace, --output (表格/json/yaml)
routes --namespace, --output (表格/json/yaml)
get_netstat 网络连接统计
capture_packets 网络数据包捕获
get_network_io_cgroups 网络I/O统计
list_network_interfaces 传统接口列表
服务和日志 dmesg 固定参数验证
service 服务管理操作
restart 服务重启功能
get_logs --tail 计数, --kubernetes 支持
get_events 系统事件监控
存储 disks --namespace, --output (表格/json/yaml)
list_disks 旧磁盘列表
集群管理 get_health 增强的集群拓扑支持
get_version --short 紧凑格式
get_time --check NTP验证
节点管理 reboot_node 安全节点重启
shutdown_node 优雅的节点关闭
reset_node 恢复出厂设置操作
upgrade_node 节点映像升级
upgrade_k8s Kubernetes版本升级
配置 apply_config 配置部署
validate_config 配置验证
etcd get_etcd_status etcd集群状态
get_etcd_members 会员信息
bootstrap_etcd 集群引导
defrag_etcd 数据库碎片整理
机器配置 patch_mc 应用机器配置补丁(NVIDIA GPU设置)
扩展 get_extensions 列出已安装的系统扩展

安装

快速安装(推荐)

单线安装程序:

curl -fsSL https://raw.githubusercontent.com/5dlabs/talos-mcp/main/install.sh | bash

或者下载并运行:

wget https://raw.githubusercontent.com/5dlabs/talos-mcp/main/install.sh
chmod +x install.sh
./install.sh

安装选项:

./install.sh --help                     # Show all options
./install.sh --version v1.0.0           # Install specific version
./install.sh --dir /usr/local/bin       # Custom install directory
./install.sh --no-config               # Skip Cursor configuration

先决条件

  • talosctl CLI工具已安装并配置
  • TALOSCONFIG 环境变量集
  • Talos操作系统集群访问

手动构建(开发)

# Clone repository
git clone https://github.com/5dlabs/talos-mcp.git
cd talos-mcp

# Build from source
cargo build --release

# Binary location
./target/release/talos-mcp-server

配置

确保您的 TALOSCONFIG 环境变量指向您的Talos配置:

export TALOSCONFIG=/path/to/your/talosconfig

为了持久性,请添加到您的shell配置文件中:

echo 'export TALOSCONFIG=/path/to/your/talosconfig' >> ~/.zshrc  # or ~/.bashrc

MCP集成

安装程序会自动配置Cursor。手动配置:

{
  "mcpServers": {
    "talos-mcp": {
      "command": "/path/to/talos-mcp-server",
      "env": {
        "TALOSCONFIG": "/path/to/talosconfig"
      }
    }
  }
}

使用示例

增强的列表操作

{
  "method": "list",
  "params": {
    "node": "192.168.1.77",
    "path": "/opt",
    "long": true,
    "humanize": true,
    "recurse": true,
    "type": ["d"]
  }
}

网络接口详细信息(JSON)

{
  "method": "interfaces",
  "params": {
    "node": "192.168.1.77",
    "output": "json"
  }
}

容器监控(Kubernetes)

{
  "method": "containers",
  "params": {
    "node": "192.168.1.77",
    "kubernetes": true
  }
}

时间同步检查

{
  "method": "get_time",
  "params": {
    "node": "192.168.1.77",
    "check": "pool.ntp.org"
  }
}

带尾部的服务日志

{
  "method": "get_logs",
  "params": {
    "node": "192.168.1.77",
    "service": "kubelet",
    "tail": 100,
    "kubernetes": true
  }
}

多集群支持(上下文)

{
  "method": "get_version",
  "params": {
    "node": "192.168.1.77",
    "context": "production-cluster"
  }
}

NVIDIA GPU设置

使用内核模块和系统配置NVIDIA GPU节点:

{
  "method": "patch_mc",
  "params": {
    "node": "192.168.1.77",
    "patch": "machine:\n  kernel:\n    modules:\n      - name: nvidia\n      - name: nvidia_uvm\n      - name: nvidia_drm\n      - name: nvidia_modeset\n  sysctls:\n    net.core.bpf_jit_harden: 1"
  }
}

验证是否安装了NVIDIA扩展:

{
  "method": "get_extensions",
  "params": {
    "node": "192.168.1.77",
    "output": "json"
  }
}

检查NVIDIA模块是否已加载:

{
  "method": "read",
  "params": {
    "node": "192.168.1.77",
    "path": "/proc/modules"
  }
}

验证驱动程序版本:

{
  "method": "read",
  "params": {
    "node": "192.168.1.77",
    "path": "/proc/driver/nvidia/version"
  }
}

建筑

核心组件

  • main.rs:MCP协议处理和命令路由
  • mcp.rs:MCP协议类型定义(JSON-RPC)
  • tools.rs:工具模式定义和参数验证
  • handlers.rs:按类别组织的工具执行处理程序

工具类别

  • 系统检查: handle_system_inspection_methods()
  • 文件操作: handle_file_operations_methods()
  • 网络操作: handle_network_operations_methods()
  • 服务和日志记录: handle_service_log_methods()
  • 存储和硬件: handle_storage_hardware_methods()
  • 核心集群: handle_core_cluster_methods()
  • 节点管理: handle_node_management_methods()
  • 配置等: handle_config_etcd_methods()

发展

添加新工具

  1. 在中定义架构 tools.rs
  2. 在适当的类别中添加处理程序方法
  3. 用参数处理实现命令逻辑
  4. 添加到中的工具列表 get_all_tool_schemas()

测试

所有增强功能都包括全面的参数验证和响应格式化。使用MCP兼容客户端或提供的工具接口进行测试。

CI/CD

GitHub Actions工作流提供:

  • 多平台构建(Linux、macOS、Windows)
  • Docker容器构建
  • 安全扫描和测试
  • 自动发布

MCP集成

此服务器实现了模型上下文协议(MCP)规范,使其与以下内容兼容:

  • 克劳德桌面版
  • 光标
  • 自定义MCP客户端
  • 人工智能助手和开发工具

协议特性

  • 基于stdio的JSON-RPC 2.0
  • 工具发现和模式验证
  • 结构化参数传递
  • 丰富的响应格式

贡献

欢迎投稿!请确保:

  • 所有新工具都包括全面的模式
  • 使用元数据增强响应格式
  • 正确的错误处理和验证
  • 文档更新

许可证

MIT许可证