了解項目結構和開發流程
專案採用 Tool-Handler 分離架構,Tool 負責 MCP 介面,Handler 負責業務邏輯:
所有 Handler 回傳強型別結果物件,SDK 自動生成 outputSchema:
[ResultType(typeof(TResult))] - Handler 聲明結果類型[ToolHandlerMapping("namespace")] - Tool 聲明對應的 Handler namespaceOutputSchemaGenerator - 從 Handler namespace 收集結果類型,生成 oneOf JSON Schema所有工具使用 MCP SDK 0.6.0 的 Tool Annotations 描述行為特性:
Title - 人類可讀的工具標題ReadOnly - 是否只讀取不修改Destructive - 是否可能造成破壞性變更Idempotent - 重複調用是否產生相同結果OpenWorld = false - 所有工具都是本地檔案操作結果類型按文檔類型和操作類別組織在 Results/:
Common/ - 通用結果類型(SuccessResult 等)Word/Content/ - Word 內容操作結果Excel/Cell/ - Excel 儲存格操作結果PowerPoint/Slide/ - PowerPoint 投影片操作結果Pdf/Page/ - PDF 頁面操作結果發布 Windows 版本:
發布所有平台:
GitHub Actions 會在推送到 main/master 分支時自動構建所有平台版本。
win-x64linux-x64osx-x64osx-arm64發布 Windows 版本:
發布 Linux 版本:
發布 macOS 版本(Intel + ARM):
發布所有平台:
清理後構建:
publish/windows-x64/AsposeMcpServer.exepublish/linux-x64/AsposeMcpServerpublish/macos-x64/AsposeMcpServerpublish/macos-arm64/AsposeMcpServer注意: 構建產物為自包含單一可執行檔案,無需安裝 .NET Runtime 即可運行。
本專案包含完整的單元測試套件,使用 xUnit 測試框架。推薦使用 test.ps1 腳本運行測試,它提供了 UTF-8 編碼支援和便捷的參數選項。
運行所有測試:
運行測試(詳細輸出):
運行測試並收集覆蓋率:
運行特定類別的測試:
-Verbose - 顯示詳細測試輸出-NoBuild - 跳過構建步驟(使用已構建的版本)-Coverage - 收集測試覆蓋率數據-Filter <filter> - 過濾特定測試(支援 dotnet test 的過濾語法)-SkipLicense - 跳過授權載入,強制使用評估模式Tests/Core/ - 核心功能測試(Handlers、Helpers、Security、Session、Tracking、Extension)Tests/Handlers/ - Handler 測試(531 個測試類)
Word/ - Word Handler 測試Excel/ - Excel Handler 測試PowerPoint/ - PowerPoint Handler 測試Pdf/ - PDF Handler 測試Ocr/ - OCR Handler 測試Email/ - Email Handler 測試BarCode/ - BarCode Handler 測試Tests/Tools/Word/ - Word 工具測試(27 個測試類)Tests/Tools/Excel/ - Excel 工具測試(31 個測試類)Tests/Tools/PowerPoint/ - PowerPoint 工具測試(25 個測試類)Tests/Tools/Pdf/ - PDF 工具測試(19 個測試類)Tests/Tools/Ocr/ - OCR 工具測試(2 個測試類)Tests/Tools/Email/ - Email 工具測試(6 個測試類)Tests/Tools/BarCode/ - BarCode 工具測試(2 個測試類)Tests/Tools/Conversion/ - 轉換工具測試(2 個測試類)Tests/Helpers/ - Helper 單元測試(Excel、Word、PowerPoint、PDF Helper 測試)Tests/Infrastructure/ - 測試基礎設施(TestBase、WordTestBase、ExcelTestBase、PdfTestBase、HandlerTestBase)本專案使用 JetBrains 工具進行代碼品質檢查和格式化。推薦使用 code-quality.ps1 腳本運行代碼檢查。
執行 CleanupCode 和 InspectCode(預設):
只執行 CleanupCode(代碼格式化):
只執行 InspectCode(代碼檢查):
-CleanupCode - 執行 JetBrains CleanupCode(代碼格式化)-InspectCode - 執行 JetBrains InspectCode(代碼檢查,輸出到 report.xml)-Profile <profile> - 指定 CleanupCode 配置檔(預設:Built-in: Full Cleanup)-Exclude <patterns> - 排除的文件模式(預設:*.txt)code-quality.ps1 腳本會自動設置 UTF-8 編碼,確保中文輸出正常顯示report.xml 報告文件,可用於分析代碼問題Handler 基礎架構:IOperationHandler(介面)、OperationHandlerBase(基類)、OperationContext(上下文)、OperationParameters(參數)、HandlerRegistry(註冊器)。實現 Tool 與業務邏輯的分離。
操作處理器:531 個 Handler 實作業務邏輯。每個 Handler 對應一個操作(如 AddWordBookmarkHandler),並透過 HandlerRegistry 註冊。100% 單元測試覆蓋(531 個測試類)。
通用輔助工具:SecurityHelper(安全驗證)、ColorHelper(顏色處理)、FontHelper(字型設定)、ValueHelper(值轉換)等。包含各文檔類型的專用 Helper(Excel/、Word/、PowerPoint/、Pdf/)。
結果類型定義:所有操作的結構化輸出類型,按文檔類型和操作類別組織(Common/、Word/、Excel/、PowerPoint/、Pdf/)。
認證模組:API Key 認證、JWT 認證中間件,支援多種驗證模式。
追蹤模組:結構化日誌、Webhook 通知、Prometheus Metrics 中間件。
Session 管理模組:DocumentSession(會話生命週期)、DocumentSessionManager(並發管理)、SessionConfig(配置)等。
擴展系統模組:ExtensionManager(擴展實例管理)、ExtensionSessionBridge(Session 橋接)、SnapshotManager(快照管理),支援 mmap、stdin、file 三種傳輸方式。
文件轉換模組:DocumentConversionService(統一轉換服務),支援 Word、Excel、PowerPoint、PDF 之間的文件格式轉換。
伺服器配置管理,處理命令行參數和環境變數,支援三種傳輸模式。
授權管理:自動搜尋授權檔案、環境變數配置、組件授權載入。