
为什么需要 MCP?
传统上,AI 系统要与外部工具集成,通常需要为每个工具编写特定的 API 接口,过程繁琐且容易出错。MCP 的出现,旨在简化这一过程,提供一种统一的方式,让 AI 模型能够更容易地访问和操作各种数据源和工具。
MCP 的优势包括:
-
标准化接口:一次集成,多个工具可用,减少重复开发。
-
实时双向通信:支持 AI 模型与工具之间的实时互动,提高响应速度。
-
灵活扩展:支持动态发现和集成新的工具和数据源,适应不断变化的需求 。
MCP 的工作原理
MCP 采用客户端-服务器架构,主要包括以下组件:
-
MCP 主机:如 Claude Desktop、集成开发环境(IDE)或其他 AI 工具,作为与 MCP 服务器通信的客户端。
-
MCP 服务器:轻量级程序,通过 MCP 协议暴露特定功能,如访问文件系统、数据库或外部 API。
-
本地数据源:如计算机文件、数据库和服务,MCP 服务器可以安全地访问这些资源。
-
远程服务:通过互联网访问的外部系统,MCP 服务器可以连接到这些服务 。
MCP 采用基于能力的协商机制,Client 和 Server 需要在初始阶段声明各自支持的“能力”特性。“能力”声明决定了会话阶段可使用的协议特征和基本操作。
-
初始阶段:
-
Server 需要声明:可用 Resource、支持的 Tool、Prompt 模板。
-
Client 需要声明:Sampling 支持,Notification 处理。
-
会话阶段:Client 和 Server 需要严格遵守已声明的能力范围。
如下图所示展示初始阶段和会话阶段的几个过程:
-
初始阶段,Host 调用 Client,Client 访问 Server 获取 Server 可支持的资源和能力(list_resources(),list_tools())。
-
会话阶段(Host 发起),Host 中用户或模型发起 Action,调用 Client,Client 请求 Server 来获取资源或执行工具(read_resource(),call_tool())。
-
会话阶段(Server 发起),Server 调用 Client 获得 Sampling 支持,Client 转发给 Host 并获取响应,然后返回给 Server。
构建Kubernetes MCP Server
K8S MCP 的主要功能包括:
-
资源查询:列出集群中的资源,如 pods、deployments、services 等。
-
详细信息获取:获取特定资源的详细信息,辅助诊断和管理。
-
执行管理命令:通过授权的方式,执行扩容、更新、重启等操作。
-
安全审计:所有操作都经过授权和审计,确保集群的安全性。
要使用 K8s MCP,需满足以下前提条件:
-
拥有一个运行中的 Kubernetes 集群,可以是本地(如 Minikube)或云端(如 AWS、Azure、Google Cloud)。
-
安装并配置好 kubectl 工具,确保可以正常连接到集群。
-
安装 Node.js 和 Bun
下载链接:https://nodejs.org/en
下载链接:https://bun.sh/
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
该项目使用 Bun(一个快速 JavaScript 运行时)作为包管理器。请确保已安装 Bun,然后运行:
bun install
这将读取 package.json 文件并安装项目所需的所有依赖项。
bun run dev
{
"mcpServers": {
"k8s-mcp": {
"command": "node",
"args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"] //修改为文件所在位置
}
}
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|