在過去的幾個月裡,MCP 的概念一直蓬勃發展。 MCP(模型上下文協定)由 Anthropic 開發並於 2024 年底發布。它允許 AI 代理和 LLM 與第三方 API 互動以處理真實資料,並允許它們代表您採取行動。
對於 Redis MCP,正如您將在部落格中進一步看到的那樣,這意味著您可以使用自然語言搜尋資料庫。
現在,要利用 MCP 並允許它與其他 API 交互,您將需要一個 MCP 伺服器來向您的代理程式公開要使用的工具。
最大的問題是如何執行您的 MCP 伺服器而不給開發人員的工作帶來困難。讓每個人都建立自己的本地伺服器非常繁瑣,並且會引起各種不一致。將其集中為共享服務可以使事情變得簡單、安全,並讓您的團隊專注於建置而不是照顧伺服器。
透過博客,我們將介紹如何在 Kubernetes 上執行 MCP 伺服器。透過這樣的設置,您可以將它們用於不同的用例,並允許您的開發人員輕鬆連接它們。
我們知道 Kubernetes 可能很難。這就是我們建立 Cyclops 的原因,它是一個在 Kubernetes 上建立開發者平台的開源框架。抽象 Kubernetes 的複雜性,並透過可滿足您需求的可自訂 UI 部署和管理您的應用程式。
我們正在將 Cyclops 開發為一個開源專案。如果您有興趣嘗試一下,這裡有一個在我們的儲存庫中提供的快速入門指南。如果您喜歡所看到的內容,請考慮給我們一顆星以表示支持⭐
>
MCP 伺服器支援兩種類型的傳輸,或「AI 代理如何與伺服器通訊」 - stdin
和SSE
。
Stdin 伺服器以二進位形式執行,代理程式透過標準輸入向伺服器建立請求,並透過標準輸出接收回應。這在本地執行良好,但在公司設定中,讓每個開發人員執行一個伺服器可能會變得混亂。
另一方面,具有 SSE(伺服器發送事件)傳輸的伺服器透過 HTTP 進行通訊。代理在SSE端點上訂閱伺服器以接收回應,然後透過POST請求發起請求。
透過 SSE 傳輸,MCP 伺服器集中在受控環境中並作為共享服務公開。這不僅透過消除單獨設定的需要改善了開發人員的體驗,而且還減少了配置不一致並最大限度地降低了從本地管理實例引入安全漏洞的風險。
我們建立了一個設置,介紹如何將您最喜歡的 MCP 伺服器部署到您的 Kubernetes 叢集。完成 MCP 部署後,您將擁有一個集中的位置,您可以在叢集內輕鬆管理它們或部署新的 MCP。
使用 Cyclops,我們建立了一個自訂模板,讓您可以透過 UI 輕鬆部署 MCP 伺服器 - 甚至可以從 Docker 映像部署自訂 MCP 伺服器。
上圖是之前建議的架構。
擁有 MCP 伺服器的專門工程團隊可以透過 Cyclops UI 執行和管理它們。該團隊可以配置 MCP 伺服器以與現有的第三方應用程式(如 Grafana 和 Redis)進行通訊。
從那裡,所有其他工程師可以簡單地將他們的 Cursor 連接到暴露的 MCP 伺服器並允許它代表他們採取行動。
以下是如何親自嘗試的具體設定!讓我們知道您的想法!
要執行 MCP 伺服器,需要滿足以下幾個先決條件:
- If you don’t have a running cluster, you can create one with [minikube](https://minikube.sigs.k8s.io/docs/start).
kubectl
已安裝
AI 代理程式 - 我們在教程中使用了 Cursor
現在您可以使用以下命令將 Cyclops 安裝到您的 Kubernetes 叢集中(附帶用於部署 MCP 伺服器的 UI):
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.20.3/install/cyclops-install.yaml && kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.20.3/install/demo-templates.yaml
它將建立一個名為cyclops
的新命名空間,並部署 Cyclops 實例執行所需的一切。
現在剩下的就是將 Cyclops 伺服器暴露到叢集之外:
kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops
現在您可以透過瀏覽器透過http://localhost:3000存取 Cyclops。
現在您的 Cyclops 已啟動,我們可以在叢集內沿著連接到該實例的 Redis MCP 執行 Redis 實例。
若要執行 Redis 實例,請前往 Cyclops 並按一下「新增模組」。現在您可以從一堆模板中進行選擇,從中選擇 Redis 模板。
現在您可以為您的實例設定身份驗證(將用於將 MCP 伺服器連接到您的實例):
我將密碼設定為my-secret-password
- 稍後我們將 Redis MCP 連接到它時需要它。我現在可以點擊Deploy
來執行我的 Redis 實例。
現在您將被重定向到模組詳細資訊頁面,顯示您的 Redis 正在執行。一旦您的 Redis 實例準備就緒,您就可以建立 MCP 伺服器並連接它來管理您的實例。
要執行 MCP 伺服器,請前往Add Module
畫面並選擇mcp-server
模板。在Configure
部分,將會有一個下拉式選單來決定您需要哪種類型的 MCP 伺服器,在本例中是redis
。
為了向剛剛部署的 Redis 實例驗證 MCP 伺服器的身份,我們需要向其傳遞主機和密碼:
REDIS_HOST
- 您的實例的主機。您的實例應該可以在{module name}-redis-master.{namespace}
上存取。我們部署的實例稱為cache
,並在default
命名空間中執行 - 因此是cache-redis-master.default
REDIS_PORT
- 預設連接埠為6379
我們沒有更改
REDIS_PWD
- 之前在身份驗證中設定。在我們的例子中, my-secret-password
。對於生產用例,您可以在 UI 中使用下面的秘密引用。
一旦您的 MCP 伺服器啟動並執行,您就需要將其暴露在叢集之外。堡壘測試,您可以透過連接埠轉送來完成。您可以透過執行以下命令來執行此操作:
kubectl port-forward -n default svc/redis-mcp 8000:8000
如果您的 MCP 模組名稱不同,請將redis-mcp
替換為您的模組名稱。
現在您可以在 JSON 設定中設定 Cursor 以連接到您的 MCP 伺服器:
{
"mcpServers": {
"redis": {
"url": "http://localhost:8000/sse"
}
}
}
您現在可以向 Cursor 詢問 Redis 資料庫及其內部資料的狀態。
使用剛剛使用的模板,您可以輕鬆部署Wikipedia MCP 伺服器、 Grafana MCP 伺服器或其他自訂伺服器,方法是在服務下拉選單中選擇custom
,並在Custom Docker image override
部分中定義 Docker 映像。
我們相信人工智慧正在開發人員工作流程中找到自己的位置,但應該有一定程度的抽象和驗證來啟用它並盡可能安全。這是我們朝這個方向邁出的第一步。
我們建立了這個開源;請隨意嘗試並告訴我們您的想法!加入我們的 Discord ,幫助引導圍繞 AI 和 Kubernetes 的討論🙌
>
原文出處:https://dev.to/cyclops-ui/mcp-servers-for-agentic-dev-platforms-3ja9