MKP 是一款用于与 Kubernetes 集群交互的工具,借助模型上下文协议 (MCP) 实现资源访问与服务提供。它具备资源发现、操作及配置管理等一系列实用功能。
MKP 工具可帮助你便捷地与 Kubernetes 集群进行交互,以下是使用前的安装与运行步骤。
克隆项目仓库并进行构建:
# 克隆仓库并构建
git clone https://github.com/StacklokLabs/mkp.git
cd mkp
make build
# 默认运行
./build/mkp-server
# 指定 kubeconfig 文件
./build/mkp-server --kubeconfig=/path/to/kubeconfig
# 以只读模式运行(默认)
./build/mkp-server --read-only=true
# 禁用资源发现
./build/mkp-server --serve-resources=false
--serve-resources 参数控制是否启用资源发现功能。--read-only 或 --read-write 设置读写权限。支持与 ToolHive 集成,实现便捷的部署、验证和停止操作。
# 示例命令
echo '{
"id": "get_resource",
"method": "GET",
"params": {
"uri": "k8s://clustered/apps/v1/deployments/nginx-deployment"
}
}' | ./build/mkp-server --tool stdout
# 示例命令
echo '{
"id": "list_resources",
"method": "GET",
"params": {
"uri": "k8s://clustered/apps/v1/deployments"
}
}' | ./build/mkp-server --tool stdout
# 示例命令
echo '{
"id": "apply_resource",
"method": "POST",
"params": {
"uri": "k8s://namespaced/default/apps/v1/deployments/nginx-deployment",
"manifest": {
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "nginx-deployment",
"namespace": "default"
},
"spec": {
"replicas": 3,
"selector": {
"matchLabels": {
"app": "nginx"
}
},
"template": {
"metadata": {
"labels": {
"app": "nginx"
}
},
"spec": {
"containers": [
{
"name": "nginx",
"image": "nginx:latest",
"ports": [80]
}
]
}
}
}
}
}
}' | ./build/mkp-server --tool stdout
# 启动 MCP 服务器
./build/mkp-server --tool stdout
# 使用 ToolHive 部署
poetry run mcp run \
--name mkp-service \
--image ./build/mkp-server \
--command "mkp-server" \
--port 8080
poetry run mcp ls
poetry run mcp stop mkp-service
使用以下命令进行代码测试:
make test
使用以下命令格式化代码:
make fmt
使用以下命令管理依赖:
go mod tidy
项目使用 MIT 许可证,具体内容请参见 LICENSE 文件。