模型 / 資料集
haris-musa/excel-mcp-server avatar
haris-musa/excel-mcp-server

excel-mcp-server:讓 AI Agent 直接操作 Excel,但路徑與傳輸模式要先想清楚

A Model Context Protocol server for Excel file manipulation

4,186 個 Star465 個 ForkPythonMIT

秒懂

它是什麼?
excel-mcp-server 是一個以 Python 撰寫的 Model Context Protocol 伺服器,讓 AI Agent 不需安裝 Microsoft Excel 就能建立、讀取與修改活頁簿。本文檢視其三種傳輸模式、檔案路徑限制與實際使用時的取捨。
適合誰用?
excel-mcp-server 適合已經在 MCP 生態系中、希望讓 AI Agent 直接處理 Excel 檔案的使用者,尤其是那些不想依賴 Microsoft Excel 安裝的環境。若你的工作流程是單機、互動式,stdio 模式最直接,不需要設定環境變數。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 157 天前。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

這個 MCP 伺服器解決什麼問題

Excel 檔案操作通常是自動化流程中最容易卡住的一環。許多企業的報表、資料交換仍以 .xlsx 為主,但伺服器環境往往沒有安裝 Microsoft Excel,也無法用 GUI 點選。excel-mcp-server 的定位就是補上這個缺口:它是一個 Model Context Protocol 伺服器,讓 AI Agent 透過標準化工具呼叫來建立、讀取、修改 Excel 活頁簿。換句話說,你把 Excel 操作封裝成 MCP 工具,然後讓 Claude、Cursor 或其他支援 MCP 的用戶端去呼叫。它不依賴 Excel 本體,而是用 Python 實作來處理檔案,這對 Linux 伺服器或 CI/CD 環境特別有意義。根據 README,它能處理的範圍包括工作表管理、公式、格式化、圖表、樞紐分析表與 Excel 表格。這不是一個通用 Excel 函式庫,而是專門設計給 AI Agent 當作工具使用的介面。

三種傳輸模式,三種使用情境

這個專案支援三種 MCP 傳輸方式,但各自的適用場景差異很大。stdio 模式是給本機使用的,指令是 uvx excel-mcp-server stdio,用戶端設定檔中指定 command 與 args 即可。這種模式最單純,伺服器與用戶端在同一程序樹下,透過標準輸入輸出溝通。SSE 模式(Server-Sent Events)在 README 中明確標示為 deprecated,不建議新專案採用。第三種是 streamable-http,README 推薦用於遠端連線,啟動指令是 uvx excel-mcp-server streamable-http,預設監聽 8017 埠,可用 FASTMCP_PORT 環境變數更改。streamable-http 讓你可以把 Excel 操作服務部署在遠端,讓多個用戶端共用。但要注意,遠端模式有一個關鍵前提:你必須在伺服器端設定 EXCEL_FILES_PATH。這個變數指定伺服器可以讀寫的根目錄,如果沒設,預設是 ./excel_files。

檔案路徑的嚴格限制:相對路徑與目錄隔離

路徑處理是這個專案最容易踩雷的地方。在 SSE 或 streamable-http 模式下,工具呼叫中的 filepath 參數必須是相對於 EXCEL_FILES_PATH 的路徑,例如 reports/q1.xlsx。絕對路徑會被拒絕,目錄穿越(像是 ../secret.xlsx)也會被拒絕。這是一個安全設計,防止 AI Agent 意外讀寫伺服器上的任意檔案。但這也代表你必須預先規劃好目錄結構,讓所有需要操作的檔案都放在 EXCEL_FILES_PATH 之下。相對地,stdio 模式沒有這個限制,因為檔案路徑是每次工具呼叫時由用戶端直接提供,伺服器端不需要設定 EXCEL_FILES_PATH。這種差異值得注意:本機使用時,你可以指向任何路徑;一旦變成遠端服務,你就得把檔案集中管理。這對某些工作流程可能是困擾,例如你希望 Agent 直接讀取分散在不同目錄的既有 Excel 檔。

實際啟動方式與設定檔範例

啟動方式相當簡單,前提是你有 Python 環境與 uvx。本機 stdio 模式,在 Claude Desktop 或 Cursor 的 MCP 設定檔中寫入以下內容:{"mcpServers": {"excel": {"command": "uvx", "args": ["excel-mcp-server", "stdio"]}}}。Cursor 甚至提供一鍵安裝連結,直接產生對應設定。遠端模式則先設定環境變數,再啟動。Linux 或 macOS 的範例如下:EXCEL_FILES_PATH=/path/to/excel_files FASTMCP_PORT=8007 uvx excel-mcp-server streamable-http。Windows PowerShell 則用 $env:EXCEL_FILES_PATH="E:\MyExcelFiles" 的方式。啟動後,用戶端連線的 URL 是 http://localhost:8007/mcp,注意預設埠是 8017,不是常見的 8000。README 中 SSE 模式的連線 URL 範例是 http://localhost:8000/sse,但那只是範例,實際埠號由 FASTMCP_PORT 決定。這個細節容易忽略,部署時要特別核對。

工具覆蓋範圍與文件透明度

README 列出六大類功能:Excel 操作、資料處理、資料驗證、格式化、表格操作、圖表與樞紐分析表。具體工具名稱與參數則集中在 TOOLS.md,README 只有連結。對採用者來說,TOOLS.md 才是真正的關鍵文件,因為你必須確認它提供的工具是否涵蓋你的需求。例如,它是否支援讀取特定範圍的儲存格?是否能寫入公式?條件式格式化的參數怎麼下?這些都只能從 TOOLS.md 得知。從版本歷史來看,v0.1.8 在 2026 年 4 月釋出,距離 v0.1.7 將近八個月,開發節奏不算頻繁。專案首頁是 excelmcpserver.com,但 README 沒有說明該網站內容。整體來說,這個專案的文件偏向操作手冊,缺乏架構說明或設計決策的討論。這對只想快速上手的人有利,但對需要評估長期維護的人來說,資訊稍嫌不足。

真正的限制與不適合的場景

第一個限制是它不保證能處理 Excel 的所有功能。README 強調「不需要 Microsoft Excel 安裝」,但這代表它依賴 openpyxl 或其他 Python 函式庫來模擬 Excel 行為。複雜的樞紐分析表快取、進階圖表互動、或 VBA 巨集,這些通常超出這類函式庫的能力。如果你需要的是與 Excel 完全一致的行為,這個專案可能會讓你失望。第二個限制是遠端模式下的路徑隔離。假設你的工作流程是 Agent 需要讀取 /data/incoming/ 與 /data/archive/ 兩個目錄的檔案,你必須把這兩個目錄都符號連結到 EXCEL_FILES_PATH 之下,否則無法存取。第三個限制是 SSE 已棄用,如果你現有的 MCP 用戶端只支援 SSE,你可能需要升級用戶端或改用 streamable-http。最後,這個專案沒有提到任何並行存取或衝突處理的機制。如果多個 Agent 同時透過 streamable-http 寫入同一個檔案,會發生什麼事?README 沒有說明。

與其他方案的差異:不只是 MCP 伺服器

市場上處理 Excel 自動化的方式很多,最直接的是用 openpyxl 或 pandas 寫 Python 腳本。這種方式給你完全的控制權,沒有路徑限制,也不依賴 MCP 生態系。差別在於你必須自己設計工具介面,然後讓 AI Agent 去呼叫,這等於自己實作一層 MCP 包裝。excel-mcp-server 把這層包裝做好,提供現成的工具清單與傳輸層。另一種方案是微軟的 Office Scripts 或 Excel 內建的自動化功能,但它們綁定 Microsoft 365 環境,無法在純 Linux 伺服器上運作。還有一些商業 MCP 伺服器提供類似的 Excel 操作,但它們通常需要付費或雲端服務。excel-mcp-server 的優勢是 MIT 授權、可自行部署、且支援 streamable-http 讓你架成內部服務。但如果你只需要簡單的讀寫,直接寫 openpyxl 腳本可能更輕量,不需要引入 MCP 這個額外抽象層。

維護成本與授權考量

從授權來看,MIT 允許商業使用、修改與再散布,沒有 copyleft 義務,對內部採用或產品整合都友善。但 MIT 也代表沒有擔保,專案維護者的承諾僅止於原始碼現況。版本 v0.1.8 的釋出時間是 2026 年 4 月,v0.1.7 是 2025 年 8 月,中間隔了八個月,顯示維護頻率偏低。這對一個依賴 MCP 規格演進的專案來說是風險,因為 MCP 協定本身仍在變化,如果規格更新,這個伺服器可能跟不上。升級成本方面,由於是 Python 套件,用 uvx 執行時會自動取得最新版,但這也代表你無法輕易鎖定版本,除非你在設定檔中指定特定版本。若要固定版本,可以改用 pip install excel-mcp-server==0.1.8 然後直接執行,但這樣就失去 uvx 的便利性。另外,專案的 PyPI 下載數與 Smithery 徽章顯示有一定使用者基礎,但這些數字不應作為品質保證。

編輯結論

excel-mcp-server 適合已經在 MCP 生態系中、希望讓 AI Agent 直接處理 Excel 檔案的使用者,尤其是那些不想依賴 Microsoft Excel 安裝的環境。若你的工作流程是單機、互動式,stdio 模式最直接,不需要設定環境變數。若打算部署為遠端服務,則必須先規劃 EXCEL_FILES_PATH 指向的目錄結構,並接受所有檔案路徑都必須是相對路徑、且不能跳出該目錄的限制。不適合需要任意路徑存取、或需要高度客製化 Excel 功能(如複雜 VBA 巨集)的場景。採用前應先確認 v0.1.8 的 TOOLS.md 中列出的工具是否涵蓋你需要的操作,並測試 streamable-http 在防火牆與代理環境下的連線行為。

官方來源

  1. haris-musa/excel-mcp-server on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
社群筆記

社群筆記