FastAPI-MCP – 一鍵將 FastAPI 轉換為 MCP 服務器的開源工具
FastAPI-MCP 是一個開源工具,旨在將 FastAPI 應用中的端點自動轉換為符合模型上下文協議(MCP)。這一工具具備零配置的優勢,只需簡單地指向 FastAPI 應用,即可自動識別并轉換所有端點為 MCP 工具,無需額外的設置。通過保留 FastAPI 的請求和響應模型以及 Swagger 文檔,FastAPI-MCP 確保了接口的完整性和用戶友好性。
FastAPI-MCP是什么
FastAPI-MCP 是一個旨在將 FastAPI 應用的端點自動轉換為符合模型上下文協議(MCP)的開源工具。其最大特點是零配置:用戶僅需簡單指向 FastAPI 應用,工具便能自動發現并轉換所有端點為 MCP 工具,省去繁瑣的設置過程。FastAPI-MCP 保留了 FastAPI 的請求及響應模型模式,并維護 Swagger 文檔的完整性,確保了接口的可用性與易用性。該工具不僅可以靈活集成到 FastAPI 應用中,也支持單獨部署。用戶可通過 uv 或 pip 進行安裝,并可以通過簡單的代碼將其集成進 FastAPI 應用。
FastAPI-MCP的主要功能
- 自動檢測與轉換:FastAPI-MCP 能夠自動檢測 FastAPI 應用中的所有端點,并將其轉換為 MCP 工具,免去手動配置的煩惱,實現端點的自動識別與轉換。
- 保留模式與文檔:該工具能夠保留 FastAPI 的請求和響應模型的結構,以及所有端點的文檔,并確保文檔與 Swagger 中的內容保持一致,便于開發者及用戶理解和使用。
- 靈活部署選項:FastAPI-MCP 支持將 MCP 服務器直接整合進 FastAPI 應用中,也可部署,開發者可以根據具體需求選擇最合適的部署方式。
- 自定義工具名稱:FastAPI-MCP 使用 FastAPI 路由中的
operation_id
作為 MCP 工具的名稱,開發者可通過顯式定義operation_id
來生成更清晰且直觀的工具名稱,避免自動生成的名稱過于復雜。 - 控制暴露端點:開發者可利用 OpenAPI 操作 ID 或標簽來管理哪些 FastAPI 端點暴露為 MCP 工具,支持包含或排除特定端點或標簽,實現更精細的控制。
- 支持 SSE 和代理連接:FastAPI-MCP 能夠通過服務器發送(SSE)直接連接支持該協議的客戶端(如 Cursor)。對于不支持 SSE 的客戶端(如 Claude Desktop),可通過
mcp-proxy
代理實現連接。 - 動態更新能力:如果在創建 MCP 服務器后增加了新的 FastAPI 端點,用戶可以通過調用
setup_server()
方法來刷新 MCP 服務器,以包含新添加的端點。
FastAPI-MCP的技術原理
- 利用 FastAPI 的 OpenAPI 規范:FastAPI-MCP 通過解析 FastAPI 應用的 OpenAPI 文檔,自動提取接口的元數據,包括請求和響應模型、路由信息等。這些元數據用于生成相應的 MCP 工具,確保轉換的準確性和一致性。
- 反射式元數據捕獲與動態路由注冊:基于 FastAPI 的類型系統和反射機制,FastAPI-MCP 自動捕獲接口的參數、響應模型及權限聲明等元數據,并通過動態路由注冊實時解析
APIRouter
對象,生成服務目錄樹。 - AST 語法樹解析:FastAPI-MCP 運用抽象語法樹(AST)解析技術,進行靜態分析,提取接口的元信息,從而能自動發現 FastAPI 應用中的所有端點,并將其轉換為 MCP 工具。
- 異步任務編排:依賴 Starlette 的循環機制,FastAPI-MCP 實現接口調用鏈的實時監控和異步任務編排,確保 MCP 服務器能高效處理并發請求,與 FastAPI 的異步特性完美結合。
- 保留請求與響應模式:該工具保留了 FastAPI 端點的請求與響應模式及 Swagger 文檔,確保 AI 模型在調用 API 時能獲取到準確、一致的數據,提高交互的可靠性與穩定性。
FastAPI-MCP的項目地址
FastAPI-MCP的應用場景
- 企業內部自動化:FastAPI-MCP 能夠快速將企業內部的 FastAPI API 端點轉換為 MCP 工具,供 AI 模型或其他自動化工具調用。
- AI 驅動的應用開發:在 AI 開發中,FastAPI-MCP 允許 AI 模型直接調用后端服務的 API。
- 數據分析與處理:AI 代理能夠通過 FastAPI-MCP 轉換后的 MCP 工具,直接訪問數據處理端點,實現實時數據分析。
- 內容管理:AI 工具可以調用內容管理系統(CMS)的接口,高效完成內容的創建與更新。
- 電子商務:在電商場景中,AI 助手可通過 API 查詢庫存、下單或獲取產品信息,以提升用戶體驗。
常見問題
- FastAPI-MCP 是否易于安裝和配置? 是的,FastAPI-MCP 設計為零配置,用戶只需簡單指向 FastAPI 應用即可自動轉換端點。
- 能否自定義暴露的端點? 是的,開發者可以通過 OpenAPI 操作 ID 或標簽來控制暴露的端點,實現精細化管理。
- 如何更新 MCP 服務器以包含新端點? 用戶可以通過調用
setup_server()
方法來刷新 MCP 服務器,從而包括新添加的 FastAPI 端點。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
相關文章
暫無評論...