讓 LLMs 透過 MCP 施展操作 Docker 的魔法
目錄
臺灣時間 2025 年 3 月 27 日凌晨兩點, OpenAI 的 CEO Sam Altman 在 X 平台上發布了一則令人振奮的貼文:

隨著 Open AI 也開始擁抱 MCP 生態系 ,MCP 或許將成為 AI Agent 取得外部資源的標準化協議。
本文將簡介 MCP 是什麼、如何運作,並透過實作一個簡單的 Docker 操作範例具象化 MCP 能帶給我們什麼樣的驚喜。
什麼是 MCP?
根據 Anthropic 所建立的 Model Context Protocol 官方網站說明如下:
MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications.
MCP 是一個開放的溝通協議,將 LLMs 與其他應用程式溝通方式標準化,讓 AI Agent 在需要時可以安全地存取外部應用程式的資源。就像現今極為普及的 USB-C 介面一樣,讓我們的硬體設備可以連接到各種周邊設備。
MCP 帶來了什麼改變?
MCP 的出現解決了 LLMs 存取外部資源時的碎片化問題。
MCP 出現之前,AI 模型若要與本地檔案或雲端服務互動,開發者需要自行撰寫複雜的程式碼來整合各個服務。
現在,MCP 提供統一標準,讓 AI Agent 能安全且高效地存取數據,提升應用程式的擴展性。例如,MCP 可以應用於自動化工作流程、生成數據報表,甚至控制硬體設備。
MCP 整體架構,可以分為五個部分

一、MCP 主機:
利用 MCP 來獲取數據的應用程式或工具。
MCP 主機就像是你的電腦或手機,負責執行主要的任務。
例如,Claude Desktop、Cursor、Windsurf,或是其他 AI 助理應用程式,它們透過 MCP 來串連外部資訊。
二、MCP 客戶端:
負責與伺服器一對一溝通的「中間人」。
MCP 客戶端就像是專屬的訊息傳遞員。
例如,一個 MCP 客戶端可能是一個小程式,專門負責把你的指令從 MCP 主機傳給某個伺服器,並把結果帶回來。
三、MCP 伺服器:
遵循 MCP 的標準規範並提供特定功能的輕量化的程式。
MCP 伺服器就像是專業的服務窗口。
例如,一個 MCP 伺服器可能專門負責處理你的電腦裡的 Excel 檔案,另一個則負責連接到雲端的 Google Drive,把資料整理好後傳給客戶端。
四、本地數據來源:
指的是你自己設備上的資料,比如檔案、資料庫或其他本地服務。
例如,你在你的電腦裡存放了銷售紀錄,可能是某個資料夾內的 PDF 文件,或者是一個 SQLite 資料庫,而我們透過 MCP 伺服器就可以安全地讀取這些內容。
五、遠端服務:
網路上可以連線的外部系統,通常透過 API 存取。
舉例來說,像是政府資料開放平臺、天氣預報服務,或是某個公司的雲端資料庫,MCP 伺服器都能連上這些服務並讀取資料。
有了以上知識,我們就可以施展魔法了!
動手實作:啟動操作 Docker 的魔法
先簡述一下我的開發環境:
- 作業系統:MacOS
- MCP 主機:Claude for Desktop
1. 首先依照 MCP 官方網站的 Quickstart 的建議透過終端機下指令安裝 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv 是 MCP 官方推薦的一個 Python 套件管理工具,類似 pip,但速度更快且支援虛擬環境管理。
2. 接著建立一個存放 MCP Servers 的資料夾:
mkdir ~/mcp
cd ~/mcp
3. 透過 uv 建立一個資料夾給 Docker MCP server 專案:
uv init mcp-server-docker
cd mcp-server-docker
4. 建立虛擬環境並且啟用:
uv venv
source .venv/bin/activate
5. 接著在建立好的虛擬環境安裝 mcp-server-docker:
uv pip install git+https://github.com/ckreiling/mcp-server-docker
6. 最後編輯以下路徑中的檔案:
~/Library/Application\ Support/Claude/claude_desktop_config.json
加入以下內容:
"mcpServers": {
"mcp-server-docker": {
"command": "uv",
"args": [
"--directory",
"/Users/{YourUserName}/mcp/mcp-server-docker",
"run",
"mcp-server-docker"
]
}
}
啟動操作 Docker 的魔法可能會遇到的障礙
1. 如果資料夾內沒有 claude_desktop_config.json 需要自行建立:
touch ~/Library/Application\ Support/Claude/claude_desktop_config.json
2. 如果編輯完 claude_desktop_config.json 重新啟動 Claude for Desktop 後出現以下錯誤:

有可能是因為 command 需要填入絕對路徑,因此我們可以透過以下指令找到 uv 的絕對路徑:
which uv
將顯示出來的路徑複製貼上 command 即可。若還是無法解決請參閱 MCP 官方除錯指南。
重新啟動 Claude for Desktop 後,我們會在對話框右下角看到工具錘的圖案和一個數字,滑鼠移上去後會有說明文字:


點擊工具錘的圖樣後可以看到詳細資訊,有了施展的咒語,我們就可以開始施展操作 Docker 的魔法啦!
詠唱操作 Docker 的咒語
開始前先練習發聲:根據 Docker MCP server 專案所提供的範例 Prompt 小試身手,在 Claude for Desktop 對話框內輸入:
name: nginx, containers: "deploy an nginx container exposing it on port 9000"
接下來就讓悠揚的音符飛一會兒吧!

執行過程中,我們會不斷看見這種視窗告知使用者 MCP 將會進行的操作,讓使用者決定要不要允許流程往下進行,我們可以直接選擇最左邊的選項,在這次的對話中允許。
最後我們會看見以下這張截圖中的畫面:

當 MCP 完成整個操作以後,我們可以在終端機輸入以下指令確認 Docker 執行中的 Container 是不是有剛建立的 nginx:
docker ps

就這樣,我們施展了操作 Docker 的魔法,是不是很有趣呢?
還有哪些其他有趣的 MCP Servers
目前 MCP 生態系正在持續蓬勃發展中,我們可以在以下網站中找到開發者或是其他軟體公司官方提供的 MCP Server:
Model Context Protocol servers
Glama - Open-Source MCP servers
MCP Server Directory: updated daily | PulseMCP
MCP Servers 應用範例影片
Create blender 3d scenes with Claude AI | Blender MCP Setup Instructions
Creating a UI with Figma to Cursor MCP Server
隨著 MCP 生態系的擴展,從個人助理到企業自動化,未來我們會看到更多 AI Agent 與工具無縫整合的應用。
加入語義星圖官方 Discord
想要收集更多魔法嗎?加入語義星圖 Discord 社群與我們一同探索 MCP 的潛力,打造客製化的 AI 解決方案!讓我們一同探索 MCP 的可能性與未來願景,Live long and prosper。
參考資料
標籤
Cosmo Chang
一位資深貓奴、資深軟體工程師以及資深電玩迷,目前巡航於向量空間中,偶爾在《星際公民》探索宇宙。