30行Python代碼實現(xiàn)MCP萬能工具插件,一次開發(fā)適配所有AI Agent

用30行Python代碼,給你的AI Agent裝上MCP“萬能工具插件”
給AI Agent接入天氣查詢、數(shù)據(jù)庫操作或內(nèi)部API時,你是否遇到過這樣的困境:OpenAI一套格式、Claude一套格式、國產(chǎn)大模型又是另一套?光是適配不同平臺的tool calling接口,就耗掉了大把時間。
別折騰了。今天教你用30行Python代碼,基于MCP(Model Context Protocol)協(xié)議,打造一個“萬能工具插件”。一次開發(fā),就能讓你的工具被任何支持MCP的AI Agent——無論是Claude、LobsterAI還是其他平臺——直接調(diào)用。
為什么你的Agent工具開發(fā)這么痛苦?
當前AI Agent開發(fā)的一大痛點,就是工具調(diào)用(Tool Calling)的碎片化。
- 格式不統(tǒng)一:OpenAI的Function Calling用JSON Schema描述工具;Claude的Tool Use格式類似但細節(jié)不同;國內(nèi)大模型廠商又各有各的實現(xiàn)。
- 重復開發(fā):同一個“獲取天氣”功能,你可能需要為3個平臺寫3套不同的接口適配層。
- 維護成本高:任何工具邏輯變更,都意味著所有平臺的適配代碼需要同步更新。
這就像你為三種不同品牌的手機,分別開發(fā)充電器——效率低下,資源浪費。
MCP協(xié)議:一統(tǒng)江湖的“工具USB-C”
MCP(Model Context Protocol) 的出現(xiàn),就是為了解決這個問題。你可以把它理解為 AI Agent領域的“USB-C”標準。
它的核心思想很簡單:
- 工具提供方(你)只需按照MCP標準,將工具封裝成一個MCP Server。
- AI Agent平臺(消費者)只需支持MCP Client協(xié)議。
- 雙方通過標準協(xié)議通信,工具即插即用,無需關心底層實現(xiàn)差異。
技術價值一覽:
- 降低開發(fā)門檻:你只需學習一套協(xié)議,而非N個平臺的私有協(xié)議。
- 提升工具復用性:一個MCP Server可以被無數(shù)個Agent平臺調(diào)用。
- 實現(xiàn)跨平臺兼容:真正實現(xiàn)“一次開發(fā),到處運行”。
實戰(zhàn):30行代碼打造一個“實時匯率查詢”MCP Server
直接上手。這個例子將創(chuàng)建一個簡單的MCP Server,提供get_exchange_rate工具,查詢美元兌人民幣的實時匯率(模擬數(shù)據(jù))。
第一步:環(huán)境準備
pip install mcp # 安裝MCP官方Python SDK第二步:編寫MCP Server代碼 (exchange_rate_server.py)
from mcp.server import Server
from mcp.types import Tool, TextContent
import asyncio
# 1. 初始化MCP Server
server = Server("exchange-rate-server")
# 2. 定義工具:描述工具名稱、功能、輸入?yún)?shù)
@server.list_tools()
async def list_tools():
return [
Tool(
name="get_exchange_rate",
description="獲取美元兌人民幣的實時匯率(模擬數(shù)據(jù))",
inputSchema={ # 使用JSON Schema定義輸入?yún)?shù)
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "查詢?nèi)掌?,格式YYYY-MM-DD,默認為今天"
}
},
"required": [] # 沒有強制參數(shù)
}
)
]
# 3. 實現(xiàn)工具調(diào)用邏輯
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "get_exchange_rate":
# 模擬數(shù)據(jù):實際項目中這里會調(diào)用真實API
rate = 7.2485 # 假設今日匯率
date = arguments.get("date", "2026-03-23")
result = f"日期:{date}\n美元兌人民幣匯率:{rate}"
return [TextContent(type="text", text=result)]
else:
raise ValueError(f"未知工具: {name}")
# 4. 啟動Server(使用標準輸入輸出作為傳輸層)
if __name__ == "__main__":
asyncio.run(server.run())第三步:讓AI Agent連接并調(diào)用你的工具
現(xiàn)在,任何支持MCP Client的Agent都可以發(fā)現(xiàn)并使用你的工具了。以Claude Desktop為例(需已安裝MCP支持):
- 在Claude Desktop的配置文件中,添加你的Server。
- 重啟Claude,它會自動發(fā)現(xiàn)
get_exchange_rate工具。 - 在對話中直接說:“查一下今天的美元匯率”,Claude就會自動調(diào)用你的MCP Server并返回結果。
整個過程,Agent端不需要寫任何額外代碼。 工具的發(fā)現(xiàn)、參數(shù)解析、調(diào)用、結果返回,全部由MCP協(xié)議自動處理。
這不僅僅是技術Demo:可復制的商業(yè)化路徑
這個“匯率查詢”示例雖然簡單,但其模式可以輕松復制到更有價值的場景:
- 內(nèi)部系統(tǒng)連接器:將公司CRM、ERP、數(shù)據(jù)庫封裝成MCP Server,讓銷售、客服Agent能安全查詢業(yè)務數(shù)據(jù)。
- 專業(yè)領域工具:封裝法律條文查詢、醫(yī)療知識庫、財務計算模型,通過MCP提供給特定行業(yè)的Agent使用。
- SaaS服務AI化:如果你有一個API服務(如圖像處理、文本分析),提供MCP接口,就能直接接入AI Agent生態(tài),獲得新的分發(fā)渠道。
商業(yè)化關鍵:將你的MCP Server部署為穩(wěn)定服務(如使用Docker容器化),并提供清晰的工具描述和文檔,就能在AI Agent生態(tài)平臺(如m.gsdl.org.cn)上架,按調(diào)用次數(shù)或訂閱制收費。
下一步行動:立即動手,搶占生態(tài)位
- 復制上面的代碼,在你的本地環(huán)境運行起來。用
python exchange_rate_server.py啟動Server。 - 連接一個Agent:如果你有Claude Desktop或支持MCP的Agent客戶端,嘗試配置并調(diào)用它。
- 改造你的第一個工具:想一想你手頭有什么現(xiàn)成的Python函數(shù)或API,用同樣的模式封裝成MCP Server。
- 發(fā)布與分享:將你的MCP Server部署到服務器,并在龍蝦官網(wǎng)(m.gsdl.org.cn)等Agent生態(tài)平臺分享,讓更多開發(fā)者和Agent發(fā)現(xiàn)你的工具。
工具調(diào)用的碎片化時代即將過去。掌握MCP,就是掌握了未來AI Agent生態(tài)的“工具接口標準”。用30行代碼,給你的Agent裝上第一個標準化“外掛”吧。