Strapi 是累積七萬三千顆星標的開源無頭內容管理系統,於十一月四日發布 5.61.0 版。此版把內建的模型上下文協定伺服器併入核心套件,以固定端點與管理員權杖認證,讓 AI 代理直接讀寫內容,同時擴充審計日誌的記錄範圍。

Strapi 儲存庫 README 開頭,頂部為專案標誌與標語,說明此為開源無頭內容管理系統,下方列出專案文件、雲端服務、路線圖與社群連結,接著以段落說明內容模型可視化設計、自動生成 REST 與 GraphQL 介面、角色權限、媒體庫、多語系與草稿發佈功能,並附上後端請求流程圖

Strapi 5.61 是什麼?

Strapi 是一套以 TypeScript 撰寫的開源無頭內容管理系統,定義內容模型後自動生成 REST 與 GraphQL 介面,供網站、行動應用或物聯網裝置讀取。

項目於二零一五年九月建立,目前累積七萬三千四百餘顆星標、一萬零二十二支分支與三萬八千三百四十五次提交。主要語言為 TypeScript,採用 Node 執行環境,支援 SQLite、PostgreSQL、MySQL 與 MariaDB 四種資料庫。

專案的定位是自架優先。README 首段寫明「開源無頭內容管理系統,自架或雲端皆可掌控」,同時提供官方代管的 Strapi Cloud 作為部署選項。內容模型以視覺化介面定義,不需手寫結構描述。

授權條款屬客製化安排。儲存庫的授權欄位顯示為非標準識別碼,實際文本分為社群版與企業版兩層,部分功能如單一登入與審計日誌的進階項目歸於企業版。

MCP 伺服器如何運作?

伺服器預設關閉,啟用後在固定的 POST 路徑提供服務,每個請求建立新的實例並即時關閉,屬無狀態設計。認證採用管理員介面既有的權杖,與內容介面認證分離。

模型上下文協定伺服器在二零二六年五月正式引入,程式碼位於核心套件內,內容管理套件是主要內建消費者。它並非獨立服務,而是隨主程式啟動時掛載路由。

傳輸層採用官方 SDK 的串流 HTTP 傳輸實作,關閉工作階段識別碼。每次請求都會建立一個全新的伺服器實例、同步能力清單、處理訊息,然後在結束區塊中關閉,伺服器本身不保存跨請求狀態。

路由只有一個實際處理點。其餘的讀取、刪除、更新與部分更新方法一律回傳方法不允許的錯誤,令用戶端得到可解析的訊息,而不是預設的網頁錯誤頁。

工具註冊發生在啟動階段。外掛可在註冊階段呼叫定義工具、提示與資源的建構函式,把能力掛上去;一旦伺服器離開閒置狀態,註冊介面便會拋出錯誤。

5.61 版有哪些改動?

此版主要變動在審計日誌,新增版本還原、草稿丟棄、設定更新與媒體事件的記錄。另把後端單元測試由 Jest 遷移至 Vitest,並正式終止對 Node 20 的支援。

版本說明把審計日誌列為新功能,補上四類過去沒有留痕的操作。內容編輯台的歷史版本還原、被丟棄的草稿、系統設定的變更,以及媒體庫的新增、替換與刪除,現在都會寫入記錄。

效能調整集中在後台編輯畫面。內容管理介面改為漸進式掛載,只渲染視窗附近的資料列;驗證結構描述改為需要時才建立一次;關聯欄位也只抓取接近可視範圍的部分,減少大型內容類型的載入負擔。

媒體體驗同步更新。富文字編輯器換上新的素材選擇介面,支援直接把圖片拖入編輯區,內容管理介面亦加入素材詳細資料抽屜。

相容性方面有一項破壞性改動。此版正式移除 Node 20 支援,現時要求 Node 二十二至二十六版,套件管理員最低版本為第六版。

Strapi 儲存庫首頁頂部,左上顯示組織名稱與專案名稱,右上顯示分支數目、標籤數、星標七萬三千四百顆與分支一萬零二十二支,右側關於欄位說明此為領先的開源無頭內容管理系統,主分支為開發分支,下方為目錄檔案列表與最近提交記錄

授權如何分層?

授權分兩層執行。第一層在每次請求時同步工作階段能力,按開發模式旗標與政策清單決定工具是否出現在清單;第二層在處理函式內重跑欄位與實體權限檢查。

粗粒度的一層由伺服器在認證後執行。它走訪所有已註冊的能力定義,按開發模式限制與政策清單逐項開啟或關閉,決定用戶端在工具清單中看到什麼。

細粒度的一層留給處理函式。內容管理套件產生的工具會重跑與 REST 控制器相同的權限檢查服務,實體層判斷該使用者能否操作這份文件,欄位層過濾可見欄位,語系層再篩選允許的語言。

這種設計令結構描述本身成為權限邊界。只具備讀取權而無權檢視內文欄位的使用者,在工具的輸入與輸出結構中根本不會看見該欄位,而不是先取得資料再被過濾。

工具參數亦有上限。單次呼叫的陣列元素與物件鍵合計預設上限為一萬個,超過便在結構驗證前被拒絕,可於設定中調整或關閉。

與同類系統相比如何?

Strapi 的差異在自架彈性與外掛生態。相較於雲端優先的商用無頭內容系統,它不綁定特定資料庫與部署環境,開發者可自行掌握資料儲存位置與升級節奏。

市場上的無頭內容系統大致分為三類。第一類是雲端優先的商用服務,設定簡單但資料存放位置與計費方式受制於供應商。第二類是靜態優先的檔案式方案,適合內容變動少的網站。

Strapi 屬於第三類,即自架為主的完整應用。它在同一個程式內同時提供內容模型設計、權限管理、媒體庫、多語系與版本控制,開發者不需自行拼裝多個服務。

商業化路徑與開源核心並行。專案以社群版維持採用門檻,把單一登入、進階審計與部署支援導向企業版與雲端服務,這種模式在同類專案中相當常見。

MCP 的加入改變了整合面的形狀。過去外部系統要接內容,須自行呼叫 REST 或 GraphQL 並處理權杖;現在 AI 用戶端可直接以協定對話,由伺服器按權杖權限裁剪可見範圍。

Strapi 儲存庫統計頁,左側為專案結構與關於欄位,顯示星標七萬三千四百顆、分支一萬零二十二支、授權標示與主要語言 TypeScript,右側列出分支、標籤、貢獻者與語言組成比例,並顯示近期提交活動

部署時有哪些限制?

限制主要集中在四處。伺服器預設關閉且端點路徑不可更改;認證只接受管理員權杖,沒有獨立的協定權杖類型;官方程式庫不提供容器映像;執行環境須為 Node 二十二以上。

啟用方式是在伺服器設定中把旗標設為真。端點路徑固定為根路徑下的單一位置,文件明言不可配置,反向代理與防火牆規則須按此設計。

認證沒有專屬通道。使用者要在管理介面建立一般的介面權杖,再把它當作協定請求的憑證;權杖遺失或過期時,錯誤會以統一的認證需求訊息回傳。

容器化須自行處理。專案不發布官方映像,README 建議由使用者專案自行建置,社群另有一套命令列工具可生成容器設定檔與 compose 檔案。

版本升級前要留意執行環境。此版移除 Node 20 支援,仍在該版本的部署須先升級執行環境,否則建置與啟動都會失敗。

出處連結有哪些?

主要出處為 GitHub 儲存庫與官方文件站。版本細節見儲存庫的版本說明頁,協定伺服器的設計與授權章節見文件站的核心套件章節,兩者皆為公開內容。

儲存庫網址為 github.com/strapi/strapi,版本說明可在 releases 頁面按標籤查閱。協定伺服器的完整說明位於文件站的核心套件章節,涵蓋設定鍵、路由、認證與授權四部分。

延伸資料包括官方文件站、社群討論區與路線圖看板。專案另設獨立儲存庫放置設計系統與示範應用,示範應用結合 Next.js,附有線上體驗環境。

總結:Strapi 適合什麼團隊?

適合需要自行掌握資料位置、內容模型經常調整的中小型團隊。若團隊已有 AI 工作流程並希望由代理處理內容維運,此版的協定伺服器可省去自建中介層的工作。

此版的意義在於把 AI 整合從外掛層拉回核心。協定伺服器與權限系統共用同一套規則,令代理的行為邊界與人工操作保持一致,減少了過去自建中介層時容易出現的權限漏洞。

代價是維運責任仍在使用者身上。資料庫備份、憑證輪替、反向代理設定與版本升級都需要自行安排,對於沒有專職維運人力的團隊,託管服務仍是更現實的選擇。

對於內容量中等、需要多語系與草稿流程的網站,Strapi 提供了一個相對完整的起點。七萬三千顆星標與三萬八千次提交反映社群規模,而十一年的專案歷史也意味著升級路徑與破壞性改動需要事先評估。