MCP協(xié)議實戰(zhàn):Python為AI Agent集成工具,統(tǒng)一調(diào)用標準

MCP協(xié)議實戰(zhàn):用Python給Agent裝“外掛”,告別工具調(diào)用混亂
工具調(diào)用協(xié)議混亂,正在吃掉你的開發(fā)時間。
你剛寫完一個Agent,想給它接上天氣查詢、數(shù)據(jù)庫操作、第三方API。結(jié)果發(fā)現(xiàn):OpenAI的Function Calling一套格式,Claude的Tool Use另一套,國內(nèi)大模型又有自己的“函數(shù)調(diào)用”規(guī)范。每個工具都得寫適配層,代碼重復(fù)率高,維護起來簡直是噩夢。
這不是你一個人的痛點。協(xié)議碎片化,是當前AI Agent開發(fā)最大的效率殺手。
MCP(Model Context Protocol)就是為解決這個問題而生的。它提供了一個標準化的“外掛”接口,讓你的Agent能以統(tǒng)一方式調(diào)用任何工具。本文將用Python實戰(zhàn),帶你從零搭建一個基于MCP的Agent工具集成方案,并附上一個可復(fù)制的自動化賺錢案例。
一、MCP核心概念:三句話講明白
MCP本質(zhì)上是一個客戶端-服務(wù)器協(xié)議,定義了AI模型(客戶端)如何發(fā)現(xiàn)和調(diào)用外部工具(服務(wù)器)。
關(guān)鍵就三點:
- 統(tǒng)一描述:每個工具(無論天氣查詢還是數(shù)據(jù)庫操作)都用同一個JSON Schema描述自己的功能和參數(shù)。
- 統(tǒng)一調(diào)用:Agent通過一個標準的
call_tool接口調(diào)用任何工具,無需關(guān)心工具內(nèi)部實現(xiàn)。 - 即插即用:工具以“服務(wù)器”形式獨立運行,Agent可以動態(tài)發(fā)現(xiàn)和連接新工具。
類比一下:MCP就像是USB-C接口。你的手機(Agent)只需要一個USB-C口,就能連接顯示器(工具A)、硬盤(工具B)、充電器(工具C),而不用為每個設(shè)備準備不同的線纜。
二、Python實戰(zhàn):5步搭建MCP工具服務(wù)器
我們以一個“自動監(jiān)控競品價格并發(fā)送告警”的工具為例,這是電商和跨境從業(yè)者高頻需求。
步驟1:安裝MCP Python SDK
pip install mcp步驟2:定義工具描述(核心)
創(chuàng)建一個price_monitor.py文件:
from mcp.server import Server
from mcp.types import Tool, TextContent
import json
# 初始化MCP服務(wù)器
server = Server("price-monitor")
# 定義工具:這是你的“外掛”說明書
@server.list_tools()
async def list_tools():
return [
Tool(
name="monitor_price",
description="監(jiān)控指定商品價格,當價格低于閾值時發(fā)送告警",
inputSchema={
"type": "object",
"properties": {
"product_url": {
"type": "string",
"description": "商品鏈接(支持Amazon、淘寶等)"
},
"threshold_price": {
"type": "number",
"description": "價格閾值,低于此價格觸發(fā)告警"
},
"alert_channel": {
"type": "string",
"enum": ["email", "webhook", "dingtalk"],
"description": "告警渠道"
}
},
"required": ["product_url", "threshold_price"]
}
)
]步驟3:實現(xiàn)工具邏輯
# 實現(xiàn)工具調(diào)用(這里放你的核心業(yè)務(wù)代碼)
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "monitor_price":
url = arguments["product_url"]
threshold = arguments["threshold_price"]
channel = arguments.get("alert_channel", "webhook")
# 模擬價格抓取(實際項目中用requests/BeautifulSoup)
current_price = 89.99 # 假設(shè)抓取到的價格
if current_price <= threshold:
# 發(fā)送告警(這里簡化為返回消息)
alert_msg = f"?? 低價告警!商品 {url} 當前價格 ${current_price},低于閾值 ${threshold}"
# 實際項目中:send_alert(alert_msg, channel)
return [TextContent(type="text", text=alert_msg)]
else:
return [TextContent(type="text", text=f"價格正常:${current_price} > ${threshold}")]

raise ValueError(f"未知工具: {name}")步驟4:啟動服務(wù)器
import asyncio
from mcp.server.stdio import stdio_server
async def main():
async with stdio_server() as (read_stream, write_stream):
await server.run(read_stream, write_stream, server.create_initialization_options())
if __name__ == "__main__":
asyncio.run(main())步驟5:Agent端調(diào)用示例
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def agent_call_example():
# 連接到你的工具服務(wù)器
server_params = StdioServerParameters(
command="python",
args=["price_monitor.py"]
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# 1. 發(fā)現(xiàn)工具:Agent自動知道有哪些“外掛”可用
tools = await session.list_tools()
print(f"可用工具: {[t.name for t in tools.tools]}")
# 2. 調(diào)用工具:統(tǒng)一格式,無需適配
result = await session.call_tool(
"monitor_price",
arguments={
"product_url": "https://amazon.com/dp/B08N5WRWNW",
"threshold_price": 100.0,
"alert_channel": "webhook"
}
)
print(result.content[0].text)部署步驟:
- 將
price_monitor.py部署為常駐服務(wù)(可用Docker)。 - 在你的Agent配置中,添加該MCP服務(wù)器的連接信息。
- Agent啟動時自動發(fā)現(xiàn)并加載
monitor_price工具。
三、賺錢案例:自動化競品監(jiān)控服務(wù),月入$2000+
場景:為亞馬遜賣家提供競品價格監(jiān)控SaaS。
具體方法:
- 工具開發(fā):用上述MCP方案,開發(fā)一個支持多平臺(Amazon、Shopify、獨立站)的價格抓取工具服務(wù)器。
- Agent封裝:創(chuàng)建一個“監(jiān)控Agent”,用戶只需說“監(jiān)控這個鏈接,低于$50告訴我”,Agent自動調(diào)用MCP工具。
商業(yè)化:
- 基礎(chǔ)版:$29/月,監(jiān)控10個商品,郵件告警。
- 專業(yè)版:$99/月,監(jiān)控100個商品,支持Webhook/釘釘/Slack告警,生成價格趨勢報告。
- 企業(yè)版:$299/月,無限監(jiān)控,API接入,專屬客服。
可復(fù)制路徑:
- 第一周:用本文代碼搭建價格監(jiān)控MCP服務(wù)器,測試穩(wěn)定。
- 第二周:開發(fā)一個簡單的Web界面(Flask/Vue),讓用戶提交監(jiān)控任務(wù)。
- 第三周:接入支付(Stripe/Paddle),在跨境賣家論壇(如創(chuàng)藍論壇)推廣。
- 第四周:根據(jù)用戶反饋增加工具(如庫存監(jiān)控、Review評分監(jiān)控),形成工具矩陣。
關(guān)鍵數(shù)字:
- 開發(fā)成本:主要時間成本,服務(wù)器月費$20(低配云主機)。
- 客戶獲取:通過內(nèi)容營銷(寫“如何用AI監(jiān)控競品”干貨),單個客戶獲取成本可控制在$50以內(nèi)。
- 利潤空間:若發(fā)展100個專業(yè)版客戶,月收入$9900,毛利率超80%。
核心優(yōu)勢:MCP讓你的工具成為“樂高積木”。今天做價格監(jiān)控,明天可以快速拼接“庫存監(jiān)控”、“輿情監(jiān)控”工具,形成競爭壁壘。
四、下一步行動:今天就能做的3件事
- 跑通Demo:復(fù)制上面的代碼,本地運行一個“天氣查詢”或“匯率計算”的MCP工具服務(wù)器(10分鐘搞定)。
- 找到痛點:列出你或你所在行業(yè)最重復(fù)、最耗時的3個信息收集/處理任務(wù)(如報表生成、數(shù)據(jù)核對、內(nèi)容抓取)。
- 設(shè)計工具:為其中一個任務(wù)設(shè)計MCP工具Schema(參考步驟2的JSON結(jié)構(gòu)),思考其商業(yè)價值(能為誰節(jié)省多少時間/多少錢?)。
協(xié)議統(tǒng)一的時代已經(jīng)到來。 別再為每個大模型寫一遍適配代碼了。用MCP把你的工具做成標準件,一次開發(fā),處處運行。這才是AI Agent該有的開發(fā)效率。
你的第一個MCP工具,準備做什么? 歡迎在www.nhjb.com.cn(www.nhjb.com.cn)社區(qū)分享你的設(shè)計。