mcp-openapi-server 是一個極具開創性的模型內容協定 (Model Context Protocol, MCP) 伺服器。它的核心目標是充當一個通用轉接器 (Universal Adapter),能夠自動將任何遵循 OpenAPI 規範(前身為 Swagger)的 REST API,轉換成 AI 助理(如 Claude)可以理解和呼叫的工具集。
核心價值:為 AI 助理打開通往整個 API 世界的大門
在網路上,有成千上萬個公開或私有的 API 服務(例如天氣查詢、股票資訊、專案管理、音樂平台等),它們絕大多數都使用 OpenAPI 規範來描述自己的功能。
在沒有 mcp-openapi-server 之前,如果想讓 AI 助理使用某個 API,開發者需要為這個 API 手動編寫一個專屬的 MCP 伺服器。而 mcp-openapi-server 的出現徹底改變了這一點:你不再需要為每個 API 編寫客製化程式碼。只需將這個伺服器指向目標 API 的 OpenAPI 規範檔案(一個 JSON 或 YAML 檔案),它就能自動解析該 API 的所有端點 (endpoints),並將它們動態生成為 AI 助理可以使用的 MCP 工具。
這是一個巨大的「力量倍增器」,它讓 AI 助理能夠輕易地與現存的、龐大的 Web 服務生態系進行互動。
主要功能與特色
這個專案的功能設計非常全面且強大,考慮了各種現實世界中的複雜情況:
自動化工具生成: 這是最核心的功能。它讀取 OpenAPI 規範,並為其中的每一個 API 端點(如 GET /users, POST /products)創建一個對應的 MCP 工具。
靈活的規範載入方式:
為了適應不同場景,它支援從多種來源載入 OpenAPI 規範檔案:
強大的工具篩選與載入模式:
對於擁有數百個端點的大型 API,一次性載入所有工具會讓 AI 混淆。因此,專案提供了精細的控制選項:
toolsMode):
all (預設): 載入所有(經過篩選的)工具。explicit: 只載入透過 --tool 參數明確指定的工具。dynamic: 不載入任何具體工具,而是提供三個「元工具」(meta-tools),讓 AI 可以在執行時動態地查詢 API 有哪些端點、獲取某個端點的結構,然後再呼叫它。這對於非常龐大或經常變動的 API 特別有用。先進的動態驗證 (AuthProvider):
這是此專案最關鍵的進階功能之一。許多 API 的驗證機制(如 OAuth 2.0)比靜態的 API 金鑰要複雜,通常包含會過期的存取權杖 (access token) 和用於更新的刷新權杖 (refresh token)。AuthProvider 是一個介面,允許開發者實現自訂的驗證邏輯,例如:
401 Unauthorized 錯誤時,自動嘗試刷新權杖並重試請求。雙傳輸協定支援:
stdio (預設): 用於與本地桌面應用(如 Claude Desktop)直接整合。http: 讓伺服器可以透過 HTTP 被存取,方便網頁應用或其他雲端服務整合。使用方式
npx 執行,並透過環境變數或命令列參數傳入 API 的 URL、規範路徑和驗證標頭。mcp-openapi-server 作為一個函式庫匯入到自己的 Node.js 專案中,為某個特定的 API(例如 Spotify API)建立一個專屬的、打包好的 MCP 伺服器。在這個過程中,可以實作複雜的 AuthProvider 驗證邏輯,然後將其發佈為一個獨立的 npm 套件,方便社群其他人安裝使用。總結來說,mcp-openapi-server 是一個基礎設施級別的 MCP 工具。它不是一個提供單一功能的應用,而是一個建立橋樑的工廠,能夠大規模地將現有的 API 世界與新興的 AI 助理生態連接起來,是 MCP 生態中不可或缺的關鍵元件。