Uses Redis for caching Maximo API responses to reduce load and improve performance, with configurable TTL for assets, work orders, and inventory data.
MCP Maximo Server
遠端 MCP (Model Context Protocol) 伺服器,將 IBM Maximo API 服務包裝為 MCP Tools,供 Dify Agent 等 AI 應用程式使用。
功能特點
支援的 Maximo 功能
資產管理 (Asset Management)
get_asset- 查詢資產詳細資訊search_assets- 搜尋資產(支援多種篩選條件)create_asset- 建立新資產update_asset_status- 更新資產狀態
工單管理 (Work Order Management)
get_work_order- 查詢工單詳細資訊search_work_orders- 搜尋工單create_work_order- 建立新工單update_work_order_status- 更新工單狀態
庫存管理 (Inventory Management)
get_inventory- 查詢庫存項目search_inventory- 搜尋庫存(支援低庫存篩選)issue_inventory- 發料作業
架構特性
✅ FastMCP 框架 - 使用官方 MCP SDK
✅ HTTP + SSE 傳輸 - 符合 MCP 2025 標準
✅ API Key 雙層認證 - Dify→MCP 及 MCP→Maximo
✅ Redis 快取 - 降低 Maximo 負載,提升效能
✅ 速率限制 - Token Bucket 演算法保護系統
✅ 結構化日誌 - JSON 格式,含 Correlation ID
✅ 連接池 - HTTP 連接重用,優化效能
✅ 重試機制 - 自動重試暫時性錯誤
✅ 健康檢查 - 監控 Maximo 和 Redis 連接狀態
✅ Docker 容器化 - 易於部署和擴展
快速開始
前置需求
Docker & Docker Compose
Maximo API Key(在 Maximo 中生成)
安全的 MCP API Key(用於 Dify 連接)
1. 複製專案
2. 配置環境變數
編輯 .env 檔案,設定以下必要參數:
3. 啟動服務
4. 驗證服務
檢查健康狀態:
預期回應:
5. 使用測試頁面
🎉 新功能! 我們提供了一個互動式測試頁面來驗證 Maximo 連接和測試所有工具。
開啟瀏覽器訪問:
或
測試頁面功能:
✅ 系統健康檢查 - 即時檢查 MCP Server、Redis、Maximo 連接狀態
✅ Maximo 連接測試 - 驗證 Maximo API 連接是否正常
✅ 工具功能測試 - 測試資產、工單、庫存管理的各項工具
查詢資產/工單/庫存
搜尋功能
提供測試參數輸入介面
✅ 即時結果顯示 - 美觀的 UI 即時顯示測試結果
✅ 錯誤診斷 - 清楚的錯誤訊息和除錯建議
測試頁面使用方式:
頁面載入時會自動執行健康檢查
點擊「測試 Maximo 連接」驗證 Maximo API 是否正常
在相應欄位輸入測試資料(Asset Number、Site ID 等)
點擊各個測試按鈕驗證工具功能
查看結果區域的詳細回應
提示: 如果您的 MCP Server 不在 localhost:8000,可以在頁面 URL 加上參數:
http://localhost:8000/test?server=http://your-server:port
Dify 整合
在 Dify 中配置 MCP Server
開啟 Dify 設定
新增 MCP Server 連接
使用以下配置:
MCP 配置範例:
重要說明:
MCP 端點:服務器根路徑
/(使用 SSE 傳輸)傳輸模式:SSE (Server-Sent Events)
確保
YOUR_MCP_API_KEY與.env文件中的MCP_API_KEY一致替換
your-server-host:8000為您的實際服務器地址和端口
實際使用範例:
在 Dify Agent 中使用
MCP Tools 會自動出現在 Dify Agent 的工具列表中:
資產管理工具(4 個)
工單管理工具(4 個)
庫存管理工具(3 個)
API 文件
可用的 MCP Tools
資產管理
get_asset
search_assets
create_asset
update_asset_status
工單管理
get_work_order
search_work_orders
create_work_order
update_work_order_status
庫存管理
get_inventory
search_inventory
issue_inventory
效能調校
快取設定
在 .env 中調整快取 TTL:
速率限制
調整速率限制以符合您的需求:
監控與日誌
查看日誌
結構化日誌格式
日誌以 JSON 格式輸出,包含以下欄位:
timestamp- ISO 8601 時間戳correlation_id- 請求追蹤 IDlevel- 日誌等級message- 日誌訊息app- 應用程式名稱version- 版本號
範例:
部署選項
Docker Compose(本地/開發)
Google Cloud Run
Azure App Service
故障排除
連接 Maximo 失敗
檢查:
MAXIMO_API_URL是否正確MAXIMO_API_KEY是否有效防火牆規則是否允許連接
Maximo API 是否啟用
Redis 連接失敗
檢查:
Redis 容器是否運行:
docker-compose psRedis 健康檢查:
docker-compose exec redis redis-cli ping網路連接:確保容器在同一網路中
Dify 無法連接
檢查:
MCP Server URL 是否正確
MCP_API_KEY在.env和 Dify 配置中是否一致使用
/health端點驗證服務可用性
安全建議
使用強 API Key - 使用
openssl rand -hex 32生成啟用 HTTPS - 在生產環境使用 TLS
定期輪換密鑰 - 每 60-90 天輪換 API Keys
限制 CORS - 設定特定的允許來源
使用 Secrets Manager - 不要在環境變數中存放敏感資訊(生產環境)
專案結構
授權
[指定您的授權]
支援
如有問題或需要協助,請:
查看本文件的故障排除部分
檢查健康檢查端點:
/health查看應用程式日誌
聯繫技術支援團隊
This server cannot be installed