📁 倉庫結構
aspose-mcp-server/
├── Tools/ 📁 工具原始碼
│ ├── Word/ 24 個工具
│ ├── Excel/ 25 個工具
│ ├── PowerPoint/ 21 個工具
│ ├── PDF/ 15 個工具
│ ├── Conversion/ 2 個工具
│ └── Session/ 1 個工具
├── Core/ 🔧 MCP 伺服器核心
│ ├── Helpers/ 通用輔助工具
│ ├── Security/ 認證模組
│ ├── Session/ Session 管理模組
│ ├── Tracking/ 追蹤模組
│ ├── Transport/ 傳輸層模組
│ ├── ServerConfig.cs - 伺服器配置
│ └── LicenseManager.cs - 授權管理
├── Tests/ 🧪 單元測試
│ ├── Core/ 核心功能測試
│ ├── Tools/ 工具測試
│ │ ├── Word/ 24 個測試類
│ │ ├── Excel/ 25 個測試類
│ │ ├── PowerPoint/ 21 個測試類
│ │ ├── Pdf/ 15 個測試類
│ │ └── Conversion/ 2 個測試類
│ └── Helpers/ 測試基礎設施
├── deploy/ 🚢 部署配置
├── docs/ 📚 GitHub Pages 文檔
├── .github/workflows/ 🔄 GitHub Actions
└── bin/ ❌ 本地編譯輸出(不在版本控制)
💻 本地開發
1. 複製倉庫
git clone https://github.com/xjustloveux/aspose-mcp-server.git
cd aspose-mcp-server
2. 編譯 Release 版本
pwsh deploy/build.ps1 --configuration Release
3. 發布版本
發布 Windows 版本:
pwsh deploy/publish.ps1 -Windows
發布所有平台:
pwsh deploy/publish.ps1 -All
🌍 多平台構建
GitHub Actions 會在推送到 main/master 分支時自動構建所有平台版本。
支援的平台
- ✅ Windows (x64) -
win-x64
- ✅ Linux (x64) -
linux-x64
- ✅ macOS Intel (x64) -
osx-x64
- ✅ macOS ARM (arm64 - M1/M2/M3) -
osx-arm64
本地構建
發布 Windows 版本:
pwsh deploy/publish.ps1 -Windows
發布 Linux 版本:
pwsh deploy/publish.ps1 -Linux
發布 macOS 版本(Intel + ARM):
pwsh deploy/publish.ps1 -MacOS
發布所有平台:
pwsh deploy/publish.ps1 -All
清理後構建:
pwsh deploy/publish.ps1 -All -Clean
構建產物位置
- Windows:
publish/windows-x64/AsposeMcpServer.exe
- Linux:
publish/linux-x64/AsposeMcpServer
- macOS Intel:
publish/macos-x64/AsposeMcpServer
- macOS ARM:
publish/macos-arm64/AsposeMcpServer
注意: 構建產物為自包含單一可執行檔案,無需安裝 .NET Runtime 即可運行。
🧪 運行測試
本專案包含完整的單元測試套件,使用 xUnit 測試框架。推薦使用 test.ps1 腳本運行測試,它提供了 UTF-8 編碼支援和便捷的參數選項。
測試統計
- 測試類: 100+ 個測試類(含 Core、Security、Session 測試)
- 測試用例: 4,200+ 個測試用例
- 測試框架: xUnit 2.9.2
運行測試
運行所有測試:
運行測試(詳細輸出):
pwsh test.ps1 -Verbose
運行測試並收集覆蓋率:
pwsh test.ps1 -Coverage
運行特定類別的測試:
pwsh test.ps1 -Filter "FullyQualifiedName~Word"
test.ps1 參數說明
-Verbose - 顯示詳細測試輸出
-NoBuild - 跳過構建步驟(使用已構建的版本)
-Coverage - 收集測試覆蓋率數據
-Filter <filter> - 過濾特定測試(支援 dotnet test 的過濾語法)
-SkipLicense - 跳過授權載入,強制使用評估模式
測試結構
Tests/Core/ - 核心功能測試(Helpers、Security、Session、Tracking)
Tests/Tools/Word/ - Word 工具測試(24 個測試類)
Tests/Tools/Excel/ - Excel 工具測試(25 個測試類)
Tests/Tools/PowerPoint/ - PowerPoint 工具測試(21 個測試類)
Tests/Tools/Pdf/ - PDF 工具測試(15 個測試類)
Tests/Tools/Conversion/ - 轉換工具測試(2 個測試類)
Tests/Helpers/ - 測試基礎設施(TestBase、WordTestBase、ExcelTestBase、PdfTestBase)
CI/CD 集成
- 測試已集成到 GitHub Actions 工作流中
- 每次推送或創建 Pull Request 時會自動運行測試
- 測試在評估模式下運行(無需授權檔案)
🔍 代碼品質檢查
本專案使用 JetBrains 工具進行代碼品質檢查和格式化。推薦使用 code-quality.ps1 腳本運行代碼檢查。
運行代碼品質檢查
執行 CleanupCode 和 InspectCode(預設):
pwsh code-quality.ps1
只執行 CleanupCode(代碼格式化):
pwsh code-quality.ps1 -CleanupCode
只執行 InspectCode(代碼檢查):
pwsh code-quality.ps1 -InspectCode
code-quality.ps1 參數說明
-CleanupCode - 執行 JetBrains CleanupCode(代碼格式化)
-InspectCode - 執行 JetBrains InspectCode(代碼檢查,輸出到 report.xml)
-Profile <profile> - 指定 CleanupCode 配置檔(預設:Built-in: Full Cleanup)
-Exclude <patterns> - 排除的文件模式(預設:*.txt)
注意事項
code-quality.ps1 腳本會自動設置 UTF-8 編碼,確保中文輸出正常顯示
- CleanupCode 會格式化代碼,HTML 文件也會被格式化(但 CSS 確保程式碼區塊不會跑版)
- InspectCode 會生成
report.xml 報告文件,可用於分析代碼問題
🔧 核心組件
Core/Helpers/
通用輔助工具:SecurityHelper(安全驗證)、ColorHelper(顏色處理)、FontHelper(字型設定)、ValueHelper(值轉換)等。
Core/Security/
認證模組:API Key 認證、JWT 認證中間件,支援多種驗證模式。
Core/Tracking/
追蹤模組:結構化日誌、Webhook 通知、Prometheus Metrics 中間件。
Core/Session/
Session 管理模組:DocumentSession(會話生命週期)、DocumentSessionManager(並發管理)、SessionConfig(配置)等。
ServerConfig.cs
伺服器配置管理,處理命令行參數和環境變數,支援三種傳輸模式。
LicenseManager.cs
授權管理:自動搜尋授權檔案、環境變數配置、組件授權載入。