Slack MCP 節點在最近的 n8n Cloud 更新後故障——HTTP Streamable 傳回 invalid_union JSON-RPC 錯誤

Slack MCP 節點在最近的 n8n Cloud 更新後損壞 — HTTP Streamable 返回 invalid_union JSON-RPC 錯誤

描述問題/錯誤/問題

我的 Slack MCP 節點在一夜之間停止工作,我這邊沒有做任何更改。它已經可靠運作超過一個月。

錯誤訊息是什麼(如果有的話)?

{ “code”: “invalid_union”, “errors”: […], “path”: , “message”: “Invalid input” }

錯誤包含 "Unrecognized keys: \"ok\", \"error\"" — 這表示 Slack MCP 伺服器返回的是 Slack API 格式的回應,而不是 JSON-RPC 2.0。

節點配置:

  • 端點:https://mcp.slack.com/mcp

  • 伺服器傳輸:HTTP Streamable

  • 驗證:Bearer Auth (xoxp 令牌)

我已排除的情況:

  • 令牌有效 — 直接 curl 測試返回乾淨的 JSON-RPC 2.0 tools/list 回應

  • 嘗試使用 SSE 作為解決方案,SSE 傳輸到 https://mcp.slack.com/sse 失敗,出現「無法連接到 MCP 伺服器」的訊息(Slack 只支援 HTTP Streamable)

我的理論: 最近的 n8n 核心更新為 Streamable HTTP 規格合規性添加了 GET 處理器 (#28787),似乎破壞了與 Slack 的 MCP 伺服器的相容性。n8n 現在發起的 GET 握手被 Slack 的伺服器拒絕,Slack 的伺服器以 Slack API 格式 (ok/error) 而非 JSON-RPC 2.0 進行回應。

環境:

  • n8n Cloud (pendoio.app.n8n.cloud)

  • Slack MCP 節點作為 AI Agent 節點內的工具

還有其他人遇到過這個問題嗎?在修補程式進行中時,有解決方案嗎?

@Camille_Eyman 歡迎來到社區!

關於這個問題,我只找到了 2025 年的這個案例 MCP client tool uses SSE while http streamable is selected · Issue #18938 · n8n-io/n8n · GitHub
從你的情況來看,Slack 似乎帶來了不同於 JSON 的內容,這會產生錯誤。
我會避免使用 Slack MCP 路徑,改用 Slack 節點或透過 HTTP 請求呼叫 Slack API

根本原因是 Slack 的 MCP 伺服器返回的內容與 n8n 的 MCP 用戶端預期的內容不匹配。Slack 的 mcp.slack.com/mcp 端點對某些調用使用自己的回應信封({"ok": true, ...}),而不是純 JSON-RPC 2.0 格式 — n8n 的 MCP 用戶端嚴格驗證 JSON-RPC 2.0 格式,並拒絕任何包含無法辨識的金鑰(如 okerror)的內容。

這是 Slack 端的實現怪癖,而不是純粹的 n8n 錯誤,但 n8n 在更新後更嚴格的驗證暴露了這個問題。

目前實用的解決方案有:

  • 在 n8n 中使用原生 Slack 節點(涵蓋大多數常見操作)
  • 針對 Slack 節點不支援的操作,使用 HTTP Request 節點直接調用 Slack Web API(https://slack.com/api/METHOD),並使用你的機器人令牌

如果你特別需要為 AI 代理使用 MCP,你可以在 n8n GitHub 上報告這個錯誤,以便他們能夠增加對 Slack MCP 實現中非標準 JSON-RPC 信封的容差。