article
README
🚀 MKP 项目文档(中文版)
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
✨ 主要特性
MCP 工具
- 资源操作工具:提供获取资源信息、列举资源以及应用资源配置等功能。
资源发现与服务模式
- 资源发现:可通过
--serve-resources参数控制是否启用资源发现功能。 - 服务模式:默认采用只读模式,可使用
--read-only或--read-write设置读写权限。
与 ToolHive 集成
支持与 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
与 ToolHive 集成使用示例
基础用法
运行实例
# 启动 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 文件。
微信扫一扫