kagent提供了RemoteMCPServer自定义资源定义(CRD)来接入远程的MCP服务器。
基于HTTP的MCP协议简介
Model Context Protocol (MCP) 是一种用于AI应用与其上下文源之间进行通信的协议。MCP支持多种传输层机制,其中基于HTTP的传输协议为远程服务器通信提供了标准化的解决方案。
MCP架构概述
MCP采用客户端-服务器架构,主要参与者包括:
MCP Host: 协调和管理一个或多个MCP客户端的AI应用(如Claude Code、Claude Desktop等)。
MCP Client: 维护与MCP服务器的连接并获取上下文的组件。
MCP Server: 向MCP客户端提供上下文的程序。
HTTP传输层
MCP支持两种传输机制:
Stdio传输: 用于本地进程间通信。
Streamable HTTP传输: 使用HTTP POST进行客户端到服务器的消息传递,支持可选的Server-Sent Events (SSE) 进行流式传输。
Streamable HTTP传输支持标准HTTP认证方法,包括Bearer令牌、API密钥和自定义头信息,并建议使用OAuth获取认证令牌。
核心功能
MCP定义了三类服务器可以暴露的核心原语:
Tools: AI应用可以调用的可执行功能(如文件操作、API调用、数据库查询)。
Resources: 提供上下文信息的数据源(如文件内容、数据库记录、API响应)。
Prompts: 用于与语言模型交互的可重用模板。
在kagent中接入HTTP协议的MCP服务
kagent提供了RemoteMCPServer自定义资源定义(CRD)来接入远程的MCP服务器。
使用示例
apiVersion: kagent.dev/v1alpha2
kind: RemoteMCPServer
metadata:
name: example-http-mcp-server
namespace: default
spec:
description: "示例HTTP协议MCP服务器"
protocol: STREAMABLE_HTTP # 使用HTTP协议
url: https://example-mcp-server.com # MCP服务器URL
headersFrom:
- name: Authorization
valueFrom:
secret:
name: mcp-server-credentials
key: token
timeout: 30s
terminateOnClose: true在Agent中使用RemoteMCPServer
定义好RemoteMCPServer后,可以在Agent中将其作为工具源使用:
apiVersion: kagent.dev/v1alpha2
kind: Agent
metadata:
name: example-agent
namespace: default
spec:
declarative:
systemMessage: "你是一个使用外部工具的AI助手"
tools:
- type: McpServer
mcpServer:
apiGroup: kagent.dev
kind: RemoteMCPServer
name: example-http-mcp-server
toolNames: ["example-tool1", "example-tool2"] # 指定要使用的工具名称认证配置
对于需要认证的MCP服务器,可以通过Secret配置认证信息:
apiVersion: v1
kind: Secret
metadata:
name: mcp-server-credentials
namespace: default
data:
token: <base64-encoded-api-key>然后在RemoteMCPServer中引用。
使用 | 使用 |
通过这种方式,可以轻松地将基于HTTP协议的MCP服务器集成到kagent中,为AI应用提供丰富的上下文和工具能力。