Preset 為 Superset MCP 加上企業控管
Preset 把 Apache Superset 的 MCP 服務包成可上線的企業版,補上 OAuth 2.0、workspace 隔離、內建 Chatbot 與 Kubernetes 部署,讓 AI 工具能在多租戶環境安全運作。

Preset 最近把 Apache Superset 的 MCP 服務,從單租戶 demo 拉到企業可用的等級。它沒有把開源專案重寫掉。它是在外面包了一層控制面。這個做法很務實,也很像真正要上線的產品。
這件事的重點不只在 MCP。Preset 說它加了 OAuth 2.0、workspace 隔離、內建 Chatbot,還能跑在 Kubernetes 上。講白了,就是讓 AI 能碰真資料,但不會亂踩別人的資料庫。
如果你有看過很多 AI demo,應該懂那種落差。能跑,不代表能上線。能回答,不代表能管權限。Preset 這次做的,就是把那個落差補起來。
Preset 到底改了什麼
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
Model Context Protocol,簡稱 MCP,最近很紅。它讓 LLM 能直接接工具。像是列出圖表、查資料集、建立 dashboard。這比單純丟一段 CSV 給模型實用多了。

問題也很明顯。很多 MCP 範例只考慮單一資料庫。只考慮單一使用者群。只考慮「先跑起來再說」。這在 demo 場景可以。進到企業環境就很容易出事。
Preset 面對的是多租戶分析平台。可能同時有幾十個 workspace。每個 workspace 都有自己的資料庫連線、使用者權限、RBAC 規則。每次 tool call 都要先對到正確的 workspace,再讓 MCP 去執行。
- 開源版:單一 tenant,單一資料庫,獨立程序
- Preset 版:每個 request 綁定 workspace
- 驗證:OSS 用 JWT,Preset 加上 OAuth 2.0
- 部署:OSS 可直接跑,Preset 用 Kubernetes pod
- 監控:Preset 多了 Datadog metrics 與事件紀錄
這種改法有一個好處。它不會把上游專案切開。Preset 還是能吃到 Apache Superset 的更新。這對團隊很重要。沒人想養一個私有 fork,然後每次升版都在那邊對 patch。
我覺得這才是重點。很多公司喜歡講「我們自己魔改」。但真的進到 production,最怕的就是 drift。Preset 這次選擇 wrap,不是 fork。這很像成熟團隊會做的事。
安全模型才是主菜
AI 工具最麻煩的地方,不是聊天介面。是狀態。因為一旦 tool call 會跨資料庫、跨身份、跨步驟,整個權限模型就變得很脆弱。
Preset 的做法是分層處理。先去掉 /mcp prefix。再改寫 OAuth metadata。接著驗證 JWT。然後透過 Preset Manager API 檢查 workspace 存取權。最後才綁定 workspace database,讓原本的 open-source MCP code 執行。
這種流程看起來很長。其實是必要的。因為多租戶系統最怕的不是模型亂答。最怕的是模型幫你查到別人的資料。那種 bug 一旦發生,通常不是修 patch 就能解決。
“The answer: wrap, don’t fork.” — Amin Ghadersohi, Preset
Preset 也把驗證模式拆成兩種。JWT 模式比較像 server-to-server。OAuth 2.0 模式比較像互動式工具。前者適合 API 整合。後者適合 Claude Desktop 這種桌面端,或 Claude Code 這種開發者工具。
它還用了 Auth0、PKCE、Redis session state。Preset 提到幾個 TTL 數字。OAuth state cache 10 分鐘。DCR cache 30 天。session validation 5 分鐘。這些數字很技術,但也很現實。因為沒有這些細節,OAuth flow 在多 pod 環境下很容易炸掉。
- JWT:適合 API 與服務對服務
- OAuth 2.0:適合互動式登入與授權
- PKCE:降低授權流程被攔截的風險
- Redis:保存跨 pod 的 session 狀態
- Workspace check:在 tool 執行前先驗證
內建 Chatbot 讓 MCP 變成產品功能
外部 client 很強,但門檻也高。你要先裝 client。再設 server URL。還要懂一點 MCP。對一般分析師來說,這不算友善。

Preset 的做法很直接。它把 Chatbot 直接塞進 Superset 介面。使用者打開 UI,就能直接問問題。像是查營收趨勢、拉季度報表、找某個 dashboard。底層還是同一套 MCP tools 在跑。
這個設計很像把工程能力包成一般功能。使用者不需要知道 MCP 是什麼。對他來說,就是多了一個聊天泡泡。對平台來說,則是把 AI 工具放進既有 BI 流程。
Preset 說這個 Chatbot 用了 LangGraph,搭配 langchain-mcp-adapters 做 tool discovery。對話 checkpoint 則用 AsyncPostgresSaver。回應透過 SSE 串流,所以 token、tool call、狀態更新都能即時顯示。
這裡有個很實際的好處。分析師不用跳出 Superset。開發者如果想直接玩,也能用 Claude Desktop 或 Claude Code。兩邊走的是同一套工具、同一套 RBAC、同一份資料。
- 內建 Chatbot:不用另外裝 client
- 外部 client:保留給進階使用者
- 同一套工具:Preset 說有 20 個 tools
- 同一套權限:RBAC 與 row-level control 都在
跟開源版比,差在哪裡
如果只看功能表,差異沒有想像中大。真正差的是營運能力。開源版可以跑。企業版要能管、能查、能擴、能回滾。
Preset 在這裡補了很多瑣碎但重要的東西。像是獨立的 MCP pod、horizontal pod autoscaling、session affinity、health probe、Datadog tracing。這些字眼不性感,但少一個都可能出問題。
它也加了 workspace-level feature flag。這點我覺得很有意思。因為你可以先讓內部團隊用,再開給 beta 客戶,最後才放大。這比一次全開安全很多。
- 認證:OSS 主要是 JWT,Preset 加 OAuth 2.0 + PKCE
- 多租戶:OSS 沒有,Preset 有 workspace binding
- 介面:OSS 偏外部 client,Preset 有內建 Chatbot
- 部署:OSS 可 standalone,Preset 跑 Kubernetes service
- 觀測:Preset 加 Datadog metrics 與 Superset event logs
- 功能開關:Preset 用 workspace 級別控制
再看競品,路線也很清楚。像 Metabase 偏向快速查詢與簡化 BI。Looker 強在治理與語意層。Superset 本來就比較開放,Preset 這次是在補企業化缺口。
換句話說,它不是在比誰比較會聊天。它是在比誰能把 AI 接到真實資料平台,還不把權限搞爛。這才是企業最在乎的點。
這反映了企業 AI 工具的方向
我覺得這篇故事的核心很簡單。企業要的不是一個會講話的模型。企業要的是一個能接流程、能守權限、能記錄操作的工具層。
MCP 很像底層通訊協定。它解決的是工具發現與呼叫方式。但真正讓它能上線的,是 identity、workspace isolation、observability、rollout control。這些東西都不酷,可是都很重要。
這也解釋了為什麼很多 AI demo 看起來很猛,最後卻卡在 production。不是模型不夠強。是整個系統沒有把資料邊界畫好。沒有 audit trail。沒有 deployment control。沒有多租戶思維。
Preset 這次的做法,算是給了一個很實際的答案。保留開源核心。外面加企業控制。這樣既能跟上游同步,也能服務真實客戶。對台灣很多做 SaaS、BI、內部平台的團隊來說,這套路其實很值得抄。
下一步會看什麼
接下來我會盯兩件事。第一,這套 MCP 企業化包裝能不能維持跟 Apache Superset 上游同步。第二,實際客戶用起來,會不會真的把 Chatbot 當成日常入口。
如果你也在做資料產品,我的建議很直接。不要先問模型多聰明。先問權限怎麼切。再問 session 怎麼管。最後才是 prompt 怎麼寫。這順序錯了,後面都很難救。
說真的,Preset 這次不是在秀 AI 有多會聊。它是在告訴你,AI 要進企業,先把控制面做好。你如果也在做類似系統,這大概就是最值得抄的地方。