Kubernetes MCP 服务器是一个灵活的机器通信协议(MCP)服务器,它提供了与 Kubernetes 的接口,支持自动检测扩展脚本参数、Pydantic 模型支持等多种功能,能有效提升系统的兼容性与扩展性。
在使用 Kubernetes MCP 服务器前,请确保满足以下先决条件:
安装步骤如下:
从项目仓库克隆代码:
git clone https://github.com/your-repository/kubernetes-mcp.git
cd kubernetes-mcp
安装依赖项:
pip install -r requirements.txt
启动 MCP 服务器:
python3 bin/start_mcp_server.py
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
项目使用 MIT License 开源协议。
欢迎贡献!请通过 GitHub 提交代码或提出问题。
如需帮助,请联系维护人员。