Python-Agent調用多個Server-FastAPI版本
Agent調用多個McpServer進行工具調用
1-核心知識點
- fastAPI的快速使用
- agent調用多個server
2-思路整理
- 1)先把每個子服務搭建起來
- 2)再暴露一個Agent
3-參考網址
- VSCode配置Python開發環境:https://blog.csdn.net/cloud323/article/details/144103355
- 本項目倉庫地址:https://gitee.com/enzoism/python_mcp_server_agent_fastapi
4-動手操作
1-項目提示詞
幫我使用Python開發4個MCPServer和MCPClient代碼,要求Agent中直接使用3個MCPServer,并編寫Prompt,要求根據用戶的輸入可以自動的調用對應的McpServer來進行接口調用要求4個MCPServer中,要求【城市天氣服務、城市酒店服務、城市旅游服務】使用模擬數據進行接口模擬;【每日經典語錄推薦】使用真實的外部API接口第1個服務:城市天氣服務
- 接口1:查詢支持的城市列表
- 接口2:查詢指定城市的當天天氣情況
- 接口3:查詢指定城市的未來一周天氣情況第2個服務:城市酒店服務
- 接口1:查詢支持的城市列表
- 接口2:查詢指定城市的酒店房間列表
- 接口3:預定指定城市的酒店房間第3個服務:城市旅游服務
- 接口1:查詢支持的城市列表
- 接口2:查詢指定城市的旅游地址推薦第4個服務:每日經典語錄推薦
- 接口:GET請求https://v1.hitokoto.cn/?encode=json 獲取返回的hitokoto字段
3-項目介紹
-
mcpserver_weather.py(城市天氣服務,端口8001)
-
mcpserver_hotel.py(城市酒店服務,端口8002)
-
mcpserver_tour.py(城市旅游服務,端口8003)
-
mcpserver_quote.py(每日經典語錄服務,端口8004,轉發外部API)
-
mcp_agent.py(MCPClient/Agent,端口9000,智能分發請求)
-
requirements.txt:包含 fastapi、uvicorn、httpx 依賴。
-
mcpserver_weather.py:實現城市天氣服務,支持查詢城市列表、今日天氣、一周天氣(模擬數據)。
-
mcpserver_hotel.py:實現城市酒店服務,支持查詢城市列表、酒店房間列表、預定酒店(模擬數據)。
-
mcpserver_tour.py:實現城市旅游服務,支持查詢城市列表、旅游推薦(模擬數據)。
-
mcpserver_quote.py:實現每日經典語錄服務,轉發真實API返回語錄。
-
mcp_agent.py:實現MCP智能Agent,支持自然語言輸入,自動調用對應服務接口并返回結果。
2-項目運行
pip install -r requirements.txtsource .venv/Scripts/activate
uvicorn mcpserver_weather:app --host 0.0.0.0 --port 8001source .venv/Scripts/activate
uvicorn mcpserver_hotel:app --host 0.0.0.0 --port 8002source .venv/Scripts/activate
uvicorn mcpserver_tour:app --host 0.0.0.0 --port 8003source .venv/Scripts/activate
uvicorn mcpserver_quote:app --host 0.0.0.0 --port 8004source .venv/Scripts/activate
uvicorn mcp_agent:app --host 0.0.0.0 --port 9000
4-測試用例
- 查詢支持的城市有哪些?
- 查詢北京的天氣
- 預定上海的酒店房間
- 推薦廣州的旅游景點
- 給我一句每日經典語錄
- 127.0.0.1:9090/agent POST請求
{"user_input":"查詢支持的城市有哪些?"}
5-心得總結
1-VSCode配置Python開發環境
參考網址:VSCode配置Python開發環境:https://blog.csdn.net/cloud323/article/details/144103355
- 1)安裝python相關的拆件
- 2)使用 python: 激活插件選擇器