K8s_mcp_server

K8s_mcp_server

🚀 Kubernetes MCP 服务器

Kubernetes MCP 服务器是一个灵活的机器通信协议(MCP)服务器,它提供了与 Kubernetes 的接口,支持自动检测扩展脚本参数、Pydantic 模型支持等多种功能,能有效提升系统的兼容性与扩展性。

🚀 快速开始

在使用 Kubernetes MCP 服务器前,请确保满足以下先决条件:

  • 操作系统:Linux 或 macOS(Windows 可通过WSL运行)
  • Python 版本:3.8+
  • 已安装 kubectl,并配置到系统路径中

安装步骤如下:

  1. 从项目仓库克隆代码:

    git clone https://github.com/your-repository/kubernetes-mcp.git
    cd kubernetes-mcp
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 启动 MCP 服务器:

    python3 bin/start_mcp_server.py
    

✨ 主要特性

  • 自动检测扩展脚本参数:无需手动配置,系统会自动识别并解析脚本参数。
  • Pydantic 模型支持:通过 Pydantic 进行数据校验和序列化,确保数据结构正确。
  • 多环境兼容:支持不同的 Kubernetes 环境配置。
  • 扩展性强:便于集成新的功能模块和协议。

📦 安装指南

克隆代码

git clone https://github.com/your-repository/kubernetes-mcp.git
cd kubernetes-mcp

安装依赖

pip install -r requirements.txt

启动服务器

python3 bin/start_mcp_server.py

💻 使用示例

基本用法

# 运行MCP服务器,默认监听localhost:50051
python3 bin/k8s-mcp-server run

# 以调试模式运行
DEBUG=1 python3 bin/k8s-mcp-server run

# 指定配置文件路径
CONFIG_PATH=/path/to/config.yaml python3 bin/k8s-mcp-server run

自定义脚本使用

from kubernetes_mcp_sdk import KubernetesMCPClient

client = KubernetesMCPClient()
response = client.invoke_command(
command_name="your_command",
parameters={
"param1": "value1",
"param2": 123
}
)
print(response)

📚 详细文档

目录结构

项目根目录下应包含以下文件夹:

kubernetes-mcp/
├── bin/                 # 存放可执行脚本,如启动脚本等
├── config/             # 项目配置文件,包括MCP服务器配置
├── scripts/            # 自定义扩展脚本存放位置,默认为scripts/
└── src/                # 核心源代码目录,包含各个功能模块

创建自定义脚本

脚本模板

#!/usr/bin/env python3
"""
示例脚本名

简要描述脚本的功能。

参数:
--param1: 参数1的描述(必填)
--param2: 参数2的描述(默认值:default_value)
"""

import argparse
import json
import sys
import os

def main():
"""
脚本主函数,负责解析参数和执行逻辑

返回:
dict: 执行结果
"""
parser = argparse.ArgumentParser(
description="详细描述脚本功能",
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)

# 定义参数
parser.add_argument(
"--param1",
type=str,
required=True,
help="参数1的描述(必填)"
)

parser.add_argument(
"--param2",
type=int,
default=42,
help="参数2的描述"
)

# 处理--args-file参数
parser.add_argument("--args-file", help="包含参数的JSON文件路径")
args, _ = parser.parse_known_args()

if args.args_file:
with open(args.args_file, 'r') as f:
arguments = json.load(f)
for arg_name, arg_value in arguments.items():
setattr(args, arg_name, arg_value)
else:
args = parser.parse_args()

# 使用参数
print(f"参数1: {args.param1}")
print(f"参数2: {args.param2}")

# 添加自定义逻辑

if __name__ == "__main__":
main()

环境变量

  • SCRIPTS_DIR:覆盖默认的脚本目录位置
    SCRIPTS_DIR=/path/to/scripts python3 bin/k8s-mcp-server run
    

🔧 技术细节

架构组成

  1. MCP 服务器:使用 FastMCP SDK 实现 MCP 协议。
  2. Kubernetes 客户端:负责与 kubectl 的交互。
  3. 扩展脚本:提供专业功能,参数自动检测。

Pydantic 模型应用

  • 数据校验和序列化。
  • 类型安全的数据模型。
  • 提升 IDE 支持和错误检测能力。

📄 许可证

项目使用 MIT License 开源协议。

🤝 贡献指南

欢迎贡献!请通过 GitHub 提交代码或提出问题。

📞 联系方式

如需帮助,请联系维护人员。

  • 0 关注
  • 0 收藏,13 浏览
  • system 提出于 2025-10-05 17:42

相似服务问题

相关AI产品