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應用提供豐富的上下文和工具能力。