iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
Software Development

MCP的30天養成計畫系列 第 18

【Day 18】Pydantic怎麼運用在FastMCP中

  • 分享至 

  • xImage
  •  

如果已經有點開發經驗,應該聽過 Pydantic
它的任務很簡單:幫你檢查資料格式,確保工具不會亂吃東西


為什麼需要 Pydantic?

假設我們有一個情緒分析的工具,期待輸入是:

{"texts": ["今天好開心", "這餐好難吃"]}

但使用者不小心傳了:

{"text": "今天好開心"}

如果沒有Pydantic去檢查,可能直接爆炸(不是指物理性爆炸那種,是程式直接crash的意思)
有了Pydantic後,就能在進入工具之前,先驗證輸入格式。

在FastMCP裡的用法

FastMCP支援我們用Pydantic Model來定義參數
例如以下例子:

from pydantic import BaseModel
from mcp.server.fastmcp import FastMCP

class SentimentRequest(BaseModel):
    texts: list[str]

mcp = FastMCP(name="sentiment")

@mcp.tool()
async def sentiment(payload: SentimentRequest):
    return {"result": [analyze(t) for t in payload.texts]}

這樣一來:
使用者輸入錯誤,會在「進工具前」就被擋下來。
工具輸出也能用Pydantic定義,保持一致性。

小結

Pydantic如同一層「保護網」,確保MCP的工具不會因為輸入亂七八糟而崩潰。

明天 (Day19) 我們要往更高層級走:Workflows。


上一篇
【Day 17】有那麼多Tool,該怎麼用(二)
下一篇
【Day 19】Workflows是什麼
系列文
MCP的30天養成計畫20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言