讓別的 AI 當你的工具用
前面我們讓 Dify 的 agent 去『呼叫』別人的工具。這一集反過來:把你自己做的 app,開成一台 MCP server,讓『別的 AI』——像 Claude、Cursor,甚至另一台機器上的 agent——把它當成工具來呼叫。我用一個假的訂單查詢 app 全程走一遍,而且真的從另一台機器連進來驗證。
先定位。MCP 有兩端。一端是使用方:你的 agent 去接別人的 MCP,借他的工具來用。另一端是提供方:你把自己的能力開放出去,讓別的 AI 連進來當工具。前面幾集都在講使用方;這一集專講提供方——你當 MCP server。做到這件事,你的 app 就不再只是自己用,而是變成整個 AI 生態裡『別人也能呼叫的一塊積木』。
把這件事畫成一張圖。左邊是別的 AI,它當 client;中間是你的 Dify 開出來的 MCP 端點;連進去之後,它其實是在跑你的 Dify app;而你的 app 背後,接的是你的系統——RAG、API、資料庫都行。所以別的 AI 問一句,經過這條鏈,最後拿到的是你系統裡的真資料。對它來說,你的整個 Dify app,就濃縮成一個『問就有答』的工具。
先說一個實測踩到的事實,免得你像我一樣找半天。這一版 Dify,不管哪一種 app,發佈的下拉選單、還有應用的概覽頁,都找不到『把 app 開成 MCP』的開關。官方文件說有原生功能,但這個版本沒把它放進看得到的地方。正規的 UI 做法是:裝一個外掛。到外掛的 Marketplace,搜 mcp-server,找到說明寫著『make dify workflow as a MCP server』那顆,安裝。全程點介面,不用碰後端。
裝好後,回到外掛,點它,新增一個端點,填四個欄位。第一,App,選你要開放的那個應用。第二,App Type,這裡只有兩種:Chat 和 Workflow——這點等下很關鍵。第三,App Input Schema,這格最容易填錯,要填一整個工具定義,不是只填參數。第四,驗證用的 Bearer Token,設一個,它等於這個端點的密碼。存檔,就生出一段 MCP 網址。
重點講一下第三格。很多人會只填一個參數就送出,結果外部連進來看到的工具是壞的。正確要填一整包 JSON:有 name,那是別的 AI 看到的工具名字;有 description,把這個工具『幹嘛用』寫清楚,別的 AI 才知道什麼時候該呼叫它;還有 inputSchema,定義它要帶什麼參數,比如一個 query 字串。這三樣齊了,對面才會看到一個乾淨、可呼叫的工具。
回到剛剛說很關鍵的那點。App Type 只有 Chat 和 Workflow,沒有 Agent。你如果硬把一個 Agent 型的 app 拿來開,呼叫會直接失敗,回一句『Agent 不支援 blocking 模式』。原因是:Agent 是多步推理、只能一段一段串流地吐;而這個外掛是用『等一個完整答案』的方式呼叫,兩者對不上。所以結論很清楚:想把東西對外開成 MCP,就把它做成 Chatflow。Chatflow 一樣能掛工具、能接知識庫、能忠實呈現,而且它支援完整回應,開得成 MCP。
存檔後,你會拿到一段端點網址,結尾是斜線 e、一串代碼、再加 mcp,另外還有一個 sse 版本。你可能會看到它顯示成 localhost,別緊張——那只是 Dify 的對外網址沒設好而已,不是真的只能本機。真正有意義的是後面那段路徑;你把主機換成自己的公開網域,對外就通。我實測過:把 localhost 換成公開網域,從外面打,回的是『需要 token』,代表端點活著、也在外網連得到。
最後真的驗一遍。我從『另一台機器』上的 AI,用 MCP client 連這個端點。流程是標準的三步:先 initialize 握手,再 tools list 把工具列出來,看到我們定義的那個工具了,最後 tools call,帶一個問題進去。這一呼叫,就穿過 MCP 端點、跑起我的 Dify chatflow、去查我的系統,再把結果原路傳回那台機器。另一台機器、另一個 AI,真的把我的 Dify app 當工具用到了——這條閉環才算數。
順帶提醒一個容易忽略的點:MCP 協定的版本。MCP 不是用第一版第二版,而是用日期當版本號。我實測這台 Dify 談成的是 2024 年 11 月 5 號那版——也就是 MCP 剛推出的、最古早的一版。而目前正式最新已經到 2025 年 11 月,還有 2026 年的候選版,把核心改成無狀態、更好擴展。好消息是,列工具、呼叫工具這些基本動作向後相容,照跑沒問題;但新版功能,像結構化輸出、比較完整的授權流程,這台就還沒有。要新特性,得等升級,或改用跟得比較前面的 MCP server。
開得成之後,務必記住這條資安鐵律:MCP 端點網址內含認證資訊,它等於一把 API key。所以這段網址,絕對不要貼進部落格、影片、或 GitHub 這種公開的地方。如果後面接的是真實、甚至敏感的資料,token 就別用簡單的,要用一長串亂碼;而且用完可以把那個端點的啟用開關關掉,要用再開。開放能力給別人用是好事,但『開放』跟『沒鎖』是兩回事,這條線要守住。
留給你一句話:真正的互通,是把你的系統變成『別的 AI 也能呼叫的一塊積木』。在 Dify 裡,用外掛就能把一個 Chatflow 開成 MCP server;做成 Chatflow、不要做成 Agent;拿到網址換成公開網域、設好 token、用完關掉。當另一台機器的 AI 都能問你的 app 拿到真答案,你的東西才真的長進了整個生態裡。