象限-mcp-poc
引言:
该POC使用了 一切 MCP服务器,因为它具有流式HTTP功能
先决条件
- K8s集群
- 已安装Kuadrant,有关更多信息,请参阅Kuadrant 文档
设置环境变量
export QUAY_USERNAME=xxxx # Quay username
export KUADRANT_AWS_ACCESS_KEY_ID=xxxx # AWS Key ID with access to manage the DNS Zone ID below
export KUADRANT_AWS_SECRET_ACCESS_KEY=xxxx # AWS Secret Access Key with access to manage the DNS Zone ID below安装
- 更新
mcp-server/mcp-server-everything.yaml使用您的根域创建文件。
1. Install the MCP Server in your K8s cluster.
kubectl apply -f mcp-server/mcp-server-everything.yaml
1. 确保MCP everything服务器吊舱正在运行。
kubectl get pods -n mcp-server
1. 创建网关命名空间:
kubectl create ns mcp-gateway
1. 在与网关相同的命名空间中创建秘密凭据-这些凭据将用于配置DNS:
kubectl -n mcp-gateway create secret generic aws-credentials \ --type=kuadrant.io/aws \ --from-literal=AWS_ACCESS_KEY_ID=$KUADRANT_AWS_ACCESS_KEY_ID \ --from-literal=AWS_SECRET_ACCESS_KEY=$KUADRANT_AWS_SECRET_ACCESS_KEY
1. 在证书管理器命名空间中创建秘密凭据:
kubectl -n cert-manager create secret generic aws-credentials \ --type=kuadrant.io/aws \ --from-literal=AWS_ACCESS_KEY_ID=$KUADRANT_AWS_ACCESS_KEY_ID \ --from-literal=AWS_SECRET_ACCESS_KEY=$KUADRANT_AWS_SECRET_ACCESS_KEY
1. 创建Kuadrant网关注意更新 `kuadrant/gateway.yaml` 使用您的根域创建文件。
kubectl apply -f kuadrant/gateway.yaml
1. 创建Lets加密群集颁发者和TlS策略:
kubectl apply -f kuadrant/tls.yaml
Note: The cert can't be self signed. MCP clients dont accept self signed certs yet.
1. 创建DNS策略:
kubectl apply -f kuadrant/dns.yaml
1. 一分钟后,测试MCP服务器是否响应
curl -v -X POST "https://api.KUADRANT_ZONE_ROOT_DOMAIN_GOES_HERE/mcp" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "method": "initialize", "params": { "protocolVersion": "2024-11-05", "capabilities": { "resources": {}, "tools": {}, "prompts": {} }, "clientInfo": { "name": "test-curl-client", "version": "1.0" } }, "id": 1 }'
1. 创建费率限制策略:
kubectl apply -f kuadrant/rlp.yaml
1. 创建Auth策略和API密钥机密:
kubectl apply -f kuadrant/auth.yaml
### MCP客户端
在这个例子中,我们使用Vscode Co-pilot作为我们的MCP客户端,因为它能够使用Streamable HTTP进行连接
1. 将以下内容添加到您的VSCode settings.json中。有关更多信息,请参阅官方VSCode MCP [文档](https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server-to-your-user-settings)
"mcp": { "servers": { "my-mcp-server": { "type": "http", "url": "https://KUADRANT_ZONE_ROOT_DOMAIN_GOES_HERE/mcp", "headers": { "Authorization": "APIKEY IAMALICE" } } } },
2. 客户端现在应该能够使用服务器,您应该能够使用MCP服务器工具。使用以下命令在vscode中打开副驾驶 `⌃⌘I` 在下拉菜单中点击代理。
1. 在聊天类型中:
add 500 and 500
4. Vscode会询问您是否允许副驾驶从MCP服务器调用该工具,请确保您允许它。
1. 聊天将输出答案,并显示其运行情况 `add` 来自MCP服务器
1. 如果你在配置中省略了Auth标头,或者使用该工具多次快速询问聊天问题,部署的身份验证和速率限制策略将拒绝和限制请求。