如果你曾經聽過 Model Context Protocol (MCP),但還不確定如何用它來建立應用程式,這份指南就是為你準備的。
這篇文章是我 MCP 系列的一部分。如果你剛接觸這個主題,請先閱讀我之前寫的文章:Model Context Protocol (MCP) Servers Explained: A Complete Beginner’s Guide。
理解概念是一回事。實際建立一個會使用 MCP 的 AI Agent 又是另一回事。
在這份指南中,你將建立一個簡單的 AI Agent,讓它能與 MCP 伺服器溝通、使用外部工具,並回傳有用的回應。更重要的是,你會理解為什麼每個元件都存在,以及它們如何協同運作。
當你完成後,你將擁有一個穩固的基礎,之後可以延伸到更進階的 AI 應用程式。
你將建立什麼
想像你問一個 AI 助理:
「今天多倫多的天氣如何?」
AI 不會胡亂猜測答案,而是會聯繫天氣工具、取得真實資訊,再自然地回應。
這整個互動都是透過 Model Context Protocol 實現的。
我們的簡單 AI Agent 將會:
- 接收使用者的問題
- 判斷是否需要使用工具
- 呼叫 MCP 伺服器
- 接收結構化資料
- 產生最終回應
雖然我們會以天氣範例為主,但這個架構同樣適用於:
- AI 程式碼助理
- 客服 Agent
- 文件搜尋應用程式
- 資料庫助理
- 企業內部聊天機器人
準備事項
在開始之前,請確認你已具備:
- Python 3.11 或更新版本
- Claude Desktop
- Visual Studio Code(建議)
- 基本的 Python 知識
我們也會使用官方的 MCP Python SDK。
了解架構
在撰寫程式碼之前,先了解請求如何在 MCP 應用程式中流動會很有幫助。
┌──────────┐
│ User │
└────┬─────┘
│
▼
┌───────────────┐
│ Claude Desktop│
└────┬──────────┘
│
▼
┌───────────────┐
│ MCP Client │
└────┬──────────┘
│
▼
┌───────────────┐
│ MCP Server │
└────┬──────────┘
│
▼
┌───────────────┐
│ Custom Tool │
└────┬──────────┘
│
▼
Structured Data
│
▼
Claude generates
natural response
│
▼
User
Enter fullscreen mode Exit fullscreen mode
每個元件都有特定的職責。
| 元件 | 職責 |
|---|---|
| User | 提出問題 |
| Claude | 理解請求 |
| MCP Client | 傳送工具請求 |
| MCP Server | 公開可用工具 |
| Tool | 執行請求的工作 |
| Claude | 產生最終回應 |
步驟 1:建立專案
建立一個新的專案資料夾。
mkdir weather-agent
cd weather-agent
Enter fullscreen mode Exit fullscreen mode
建立虛擬環境。
python -m venv .venv
Enter fullscreen mode Exit fullscreen mode
啟用它。
Windows
.venv\Scripts\activate
Enter fullscreen mode Exit fullscreen mode
macOS/Linux
source .venv/bin/activate
Enter fullscreen mode Exit fullscreen mode
安裝 MCP SDK。
pip install mcp
Enter fullscreen mode Exit fullscreen mode
步驟 2:建立你的第一個 MCP 伺服器
每個 MCP 伺服器都會公開一個或多個工具。
工具其實就是一個函式,AI 模型可以在需要資訊或執行特定動作時呼叫它。
常見的例子包括:
- 天氣查詢
- 計算機
- 檔案讀取器
- SQL 資料庫查詢
- 電子郵件傳送
讓我們建立一個天氣工具。
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Weather Server")
@mcp.tool()
def get_weather(city: str):
return f"The weather in {city} is sunny and 24°C."
if __name__ == "__main__":
mcp.run()
Enter fullscreen mode Exit fullscreen mode
雖然這個範例回傳的是硬編碼的資料,但相同的結構也能搭配真實 API 使用。
步驟 3:理解程式碼
讓我們來拆解一下剛才發生了什麼。
mcp = FastMCP("Weather Server")
Enter fullscreen mode Exit fullscreen mode
建立一個 MCP 伺服器。
@mcp.tool()
Enter fullscreen mode Exit fullscreen mode
將一個 Python 函式註冊為 MCP 工具。
def get_weather(city: str):
Enter fullscreen mode Exit fullscreen mode
定義 Claude 可以呼叫的工具。
mcp.run()
Enter fullscreen mode Exit fullscreen mode
啟動 MCP 伺服器。
伺服器啟動後,Claude 會自動發現所有已註冊的工具。
你不需要明確告訴 Claude什麼時候該使用工具。
Claude 會根據使用者的請求自行判斷。
步驟 4:連接 Claude Desktop
Claude Desktop 需要知道你的 MCP 伺服器在哪裡執行。
更新你的 MCP 設定。
{
"mcpServers": {
"weather": {
"command": "python",
"args": [
"/path/to/weather_server.py"
]
}
}
}
Enter fullscreen mode Exit fullscreen mode
重新啟動 Claude Desktop。
如果設定正確,Claude 就會自動發現你的新天氣工具。
步驟 5:測試你的 Agent
現在請問 Claude:
今天多倫多的天氣如何?
在幕後,會進行以下流程。
User asks question
│
▼
Claude understands request
│
▼
Needs external data?
│
Yes
│
▼
Calls Weather Tool
│
▼
Receives result
│
▼
Writes natural response
│
▼
Returns answer
Enter fullscreen mode Exit fullscreen mode
請注意一個重要的細節。
Claude 並沒有在寫 Python 程式碼。
它是在決定什麼時候該使用工具。
這種決策過程正是讓 AI Agent 如此強大的原因。
為什麼 MCP 很重要
如果沒有 MCP:
Question
↓
LLM guesses
↓
Possible hallucination
Enter fullscreen mode Exit fullscreen mode
有了 MCP:
Question
↓
LLM calls tool
↓
Gets real data
↓
Returns reliable answer
Enter fullscreen mode Exit fullscreen mode
模型不再只依賴訓練資料,而是可以在需要時與外部系統互動。
擴展你的 Agent
當你建立好一個工具後,要再加入更多工具就很簡單了。
例如:
計算機
calculate(expression)
Enter fullscreen mode Exit fullscreen mode
檔案讀取器
read_file(filename)
Enter fullscreen mode Exit fullscreen mode
SQL 資料庫
query_database(sql_query)
Enter fullscreen mode Exit fullscreen mode
電子郵件傳送器
send_email()
Enter fullscreen mode Exit fullscreen mode
文件搜尋
search_documents(question)
Enter fullscreen mode Exit fullscreen mode
AI 會根據使用者的請求,決定要呼叫哪一個工具。
常見的新手錯誤
1. 預期每個提示都會使用工具
AI 模型只有在判斷需要工具時才會呼叫它們。
2. 回傳非結構化的文字
盡可能回傳結構化資料,例如 JSON。
結構化回應更容易讓語言模型理解。
3. 建立大型工具
單一工具應該只執行一個明確的工作。
較小的工具更容易維護,也更容易讓 AI 模型正確使用。
4. 忽略錯誤處理
請驗證輸入並回傳有意義的錯誤訊息。
可靠的工具才能帶來可靠的 AI 應用程式。
後續步驟
現在你已經建立了一個簡單的 MCP 伺服器,試著用真實世界的整合來擴展它。
一些想法包括:
- 連接真實的天氣 API
- 搜尋本機文件
- 查詢 PostgreSQL 資料庫
- 建立 GitHub 助理
- 連接 Google Calendar
- 建立檔案管理助理
- 使用 LangGraph 建立多 Agent 系統
每個專案都會建立在你在此學到的相同 MCP 基礎之上。
結語
建立你的第一個 MCP 伺服器不只是另一個 Python 專案。
它引入了一種實務模式,用來將語言模型與真實工具和真實資料連接在一起。
你不需要期待 AI 模型知道一切,而是讓它在需要時能發現並使用專門的工具。
隨著 AI 應用程式持續演進,像 MCP 這樣的協定將成為現代軟體開發的重要一環。現在學習這些概念,將能幫助你打造出能搜尋文件、與 API 互動、查詢資料庫、自動化工作流程,並解決真實世界問題的助理。
從一個工具開始。
然後再加入另一個。
很快地,你就會擁有一個能處理遠遠超出簡單對話的 AI Agent。
感謝閱讀
如果你覺得這份指南有幫助,歡迎追蹤我,之後還會有更多關於 AI Engineering、MCP、LangGraph、RAG、FastAPI 和 Full Stack 開發的文章。
🔗 LinkedIn: https://www.linkedin.com/in/sushyamnagallapati/
Happy building!
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.