解決 MCP "Hello Page" 問題:彌合規範與使用者體驗之間的差距

Model Context Protocol (MCP) 旨在將 LLM agent 與外部工具和數據的互動方式標準化。然而,隨著該協定被企業工具採用,一個反覆出現的摩擦點也隨之浮現:技術規範與實際人類入職(onboarding)體驗之間的差距。

當使用者被告知要將一個 MCP server URL 添加到他們的 LLM client 時,他們通常會做最直覺的動作——點擊該連結以查看是否有效。在協定的嚴格實作中,這會導致 401 Unauthorized 或原始的 JSON blob,導致使用者認為服務已損壞,進而引發大量的支援請求。

"Click-to-Error" 的摩擦點

對於開發 MCP server 的開發者而言,目標是為非確定性的 agent 提供一個確定性的端點。但對於終端使用者來說,URL 是一個可點擊的物件。當使用者在瀏覽器中打開 mcp.acme.com/mcp 時,他們並非在發送 MCP client 所需的特定 header,而是在發送 text/html 的請求。

如果 server simply 返回 401 或原始的 JSON error,使用者的心理模型會是:「這個連結壞了。」這對客戶成功(CS)團隊造成了顯著的負擔,並減慢了入職流程。另一種做法——將 server 包裝成每個 LLM client 的專用 plugin——是一場「打地鼠」遊戲,對於開發者來說是不可持續的,特別是當組織開始建立自己的內部 client 時。

優雅的解決方案:內容協商 (Content Negotiation)

與其對抗使用者的直覺,不如利用標準 HTTP 內容協商的一個簡單「技巧」來解決問題。透過檢查傳入請求的 Accept header,server 可以判斷請求是來自瀏覽器還是 MCP client:

  • 如果 Accept header 包含 text/html(且特別是 包含 application/jsontext/event-stream),server 會返回一個友好的 HTML 頁面。
  • 如果請求符合 MCP 規範,則繼續進行標準的協定握手(handshake)。

這個 "Hello Page" 向使用者解釋他們正嘗試直接在瀏覽器中查看 MCP server,並提供清晰的指示,說明如何將該 URL 添加到他們選擇的 LLM client 中。

社群觀點:是技巧還是標準做法?

雖然原作者將這種方法描述為「技巧性(hacky)」,但技術社群很大程度上並不認同,並指出這正是 HTTP headers 設計的初衷。

作為功能的一種內容協商

幾位貢獻者指出,這對於許多知名 API 來說都是標準行為。例如,Kubernetes APIs 和像 ipinfo.io 這樣的服務都使用類似的邏輯,根據請求 header 來提供不同的格式。正如一位評論者所說:

"這感覺不像是技巧,而更像是發現了 HTTP headers 的用途... 提供一個 HTML 回應來告訴使用者『嘿,這在 HTML 中並非真正可呈現。請改用此方法。』是非常完美的。"

URL 的使用者體驗 (UX)

一些批評者認為問題始於 UI。如果一個 URL 不應該被點擊,它就不應該被呈現為可點擊的連結。相反,它應該放在一個等寬字體的 code block 中,並配備一個「複製到剪貼簿」按鈕,以向使用者傳達這是一個配置字串,而非網頁。

對 MCP 規範的更廣泛批判

除了 "Hello Page" 問題之外,討論還揭示了對目前 MCP 規範狀態的更深層挫折感。批評者認為,該規範目前是「行銷用語」與「嬰兒的第一個線路格式」的混合體,在關鍵領域留下了太多空白:

  • 身份驗證 (Authentication): 對於處理 auth 的「正確」方式存在重大爭議,有些開發者不得不訴諸於模仿 OAuth flows 以便讓基於 cookie 的身份驗證能夠運作。
  • 閘道器 (Gateways): MCP gateway 的角色定義模糊,導致對於應該由 gateway 還是 server 處理 token exchange 的問題存在歧義。
  • 企業級就緒性 (Enterprise Readiness): 最初的規範假設 server 正在本地運行或為個人使用者提供服務,將企業級身份提供者 (IdP) 的整合視為次要考量。

儘管有這些批評,大家普遍認為 MCP 是目前唯一能滿足跨 agent 工具調用標準化的可行標準,這也是為什麼儘管有缺陷,它仍被獲得快速採用。

結論

"Hello Page" 是一個微小的功能(affordance),卻能產生巨大的效果。透過在失敗發生的那一刻提供文件,開發者可以將令人困惑的錯誤轉銷為自助式的入職流程。隨著 MCP 規範的演進,這將整合這些以人為本的 UX patterns,對於將協定從「氛圍編碼(vibe-coding)」階段推向穩健的企業標準至關重要。

Sources