🚀 最大imo MCP服務器
藉助人工智能驅動的模式發現、即時數據查詢和智能代碼生成,變革您的Maximo開發工作流程。
快速開始
前提條件
- Node.js v18 或更高版本
- 具有讀取權限的 Maximo API 密鑰
- 支持 MCP 的 AI 集成開發環境(Antigravity、Cursor、VS Code + Continue)
安裝
方法 1:使用 npx 直接運行(推薦)
npx maximo-mcp-server
方法 2:從源代碼克隆
git clone https://github.com/markusvankempen/maximo-mcp-ai-integration-options.git
cd maximo-mcp-ai-integration-options
npm install
cp .env.example .env
環境配置
使用您的 Maximo 憑證編輯 .env 文件:
MAXIMO_URL=https://your-maximo-host.com/maximo/api
MAXIMO_HOST=https://your-maximo-host.com
MAXIMO_API_KEY=your-api-key-here
MAXIMO_OPENAPI_PATH=./maximo_openapi.json
PORT=3002
下載 OpenAPI 模式(推薦)
OpenAPI 模式文件可實現離線模式查找,加快 AI 響應速度:
curl -X GET "https://your-maximo-host.com/maximo/oslc/oas/api" \
-H "apikey:your-api-key-here" \
-o maximo_openapi.json
或者,通過 Swagger UI 下載:https://your-host/maximo/oslc/oas/api.html(點擊“探索”或“下載”)
方法 3:直接在瀏覽器中下載(手動)
如果 curl 失敗(例如,由於 SSL/網絡錯誤),您可以手動下載文件:
- 在瀏覽器中打開此 URL:
https://[YOUR_MAXIMO_HOST]/maximo/oslc/oas/api
(將 [YOUR_MAXIMO_HOST] 替換為您的實際服務器地址)
- 系統可能會提示您登錄 Maximo。
- JSON 加載完成後,右鍵單擊頁面並選擇“另存為...”。
- 將文件保存為
maximo_openapi.json,保存到項目根文件夾中。
注意:此文件約為 12MB,包含您的 Maximo 實例的所有對象結構定義。
IDE 配置
Google Antigravity(需要手動設置)
⚠️ 注意:Antigravity MCP 商店是經過篩選的,不會自動從註冊表中發現服務器。您必須手動添加此服務器。
- 打開 Antigravity
- 點擊代理面板頂部的“...”下拉菜單
- 選擇“MCP 服務器” → “管理 MCP 服務器” → “查看原始配置”
- 添加到您的
mcp_config.json:
{
"mcpServers": {
"maximo-mcp-server": {
"command": "npx",
"args": ["-y", "maximo-mcp-server"],
"env": {
"MAXIMO_URL": "https://your-maximo-host/maximo/api",
"MAXIMO_API_KEY": "your-api-key-here",
"MAXIMO_HOST": "https://your-maximo-host"
}
}
}
}
- 保存並點擊“刷新”
Cursor / Claude Desktop
cp config/mcp_config.json.example ~/.cursor/mcp.json
cp config/mcp_config.json.example ~/Library/Application\ Support/Claude/claude_desktop_config.json
使用您的 Maximo 憑證進行編輯:
{
"mcpServers": {
"maximo-mcp-server": {
"command": "npx",
"args": ["-y", "maximo-mcp-server"],
"env": {
"MAXIMO_URL": "https://your-maximo-host/maximo/api",
"MAXIMO_API_KEY": "your-api-key-here"
}
}
}
}
驗證連接
在您的 AI 集成開發環境中,詢問:
"Maximo MCP 服務器是否已連接?"
AI 將調用 get_instance_details 並確認連接情況。
✨ 主要特性
| 功能 |
描述 |
| 🔍 發現 API |
查找可用的對象結構(MXWO、MXASSET 等) |
| 📋 檢查模式 |
獲取確切的字段名稱、類型和描述 |
| 📊 查詢即時數據 |
執行 OSLC REST 查詢並查看實際結果 |
| 🎨 生成用戶界面 |
創建 Carbon Design System 表格和儀表板 |
| ✅ 立即驗證 |
在生成最終代碼之前測試查詢 |
📦 安裝指南
見“快速開始”部分的安裝步驟。
💻 使用示例
基礎用法
GET /maximo/api/os/mxwo
?oslc.where=status="APPR" and siteid="BEDFORD"
&oslc.select=wonum,description,status,reportdate
&oslc.orderBy=-reportdate
&oslc.pageSize=10
&lean=1
高級用法
import requests
import csv
response = requests.get(
"https://your-host/maximo/api/os/mxwo",
params={"oslc.where": "wopriority=1", "lean": 1},
headers={"apikey": "YOUR_KEY"}
)
with open("priority1_workorders.csv", "w") as f:
writer = csv.DictWriter(f, fieldnames=["wonum", "description"])
writer.writeheader()
writer.writerows(response.json()["member"])
SELECT wonum, description, status, targcompdate
FROM workorder
WHERE status NOT IN ('COMP', 'CLOSE', 'CAN')
AND targcompdate < CURRENT_DATE;
📚 詳細文檔
核心指南
| 文檔 |
描述 |
| 📖 |
完整的設置、配置和工具參考 |
| 🔌 |
OSLC 查詢語法、代碼生成模式、故障排除 |
| 🎬 |
構建完整應用程序的分步指南 |
法語翻譯
| 文檔 |
描述 |
| 📖 Guide du Serveur MCP Maximo |
完整指南的法語版本 |
| 🔌 Guide d'Interaction API Maximo |
API 指南的法語版本 |
Word 文檔
所有指南也以 .docx 格式提供,位於 docs/ 文件夾中,可離線閱讀和共享。
🔧 技術細節
服務器向 AI 公開了 6 個工具:
| 工具名稱 |
描述 |
list_object_structures |
列出可用的 Maximo 對象結構(API) |
get_schema_details |
獲取對象結構的字段定義 |
query_maximo |
執行 OSLC REST 查詢 |
render_carbon_table |
生成 Carbon Design HTML 表格 |
render_carbon_details |
生成記錄的詳細視圖 |
get_instance_details |
檢查服務器連接情況 |
🎬 即時演示
資產管理器應用程序
我們僅使用自然語言提示和 MCP 服務器構建了一個完整的 Maximo 資產管理器 Web 應用程序。
加載了 50 個資產,支持即時過濾和搜索
演示功能
| 功能 |
截圖 |
| 完整儀表板 |
50 個資產、4 個統計卡片、3 個站點 |
| 搜索過濾器 |
|
| 站點過濾器 |
|
🎥 屏幕錄製
完整的視頻演示可在以下鏈接查看:
親自嘗試
node server.js
open http://localhost:3002/demos/assets.html
💡 使用案例
1. 生成 API 調用
"獲取 BEDFORD 站點的最後 10 個已批准工作訂單"
AI 調用 get_schema_details(MXWO),理解字段信息,並生成:
GET /maximo/api/os/mxwo
?oslc.where=status="APPR" and siteid="BEDFORD"
&oslc.select=wonum,description,status,reportdate
&oslc.orderBy=-reportdate
&oslc.pageSize=10
&lean=1
2. 生成 Python 腳本
"編寫一個 Python 腳本,將所有優先級為 1 的工作訂單導出為 CSV 文件"
import requests
import csv
response = requests.get(
"https://your-host/maximo/api/os/mxwo",
params={"oslc.where": "wopriority=1", "lean": 1},
headers={"apikey": "YOUR_KEY"}
)
with open("priority1_workorders.csv", "w") as f:
writer = csv.DictWriter(f, fieldnames=["wonum", "description"])
writer.writeheader()
writer.writerows(response.json()["member"])
3. 生成 SQL 查詢
"編寫 SQL 查詢,查找逾期工作訂單"
SELECT wonum, description, status, targcompdate
FROM workorder
WHERE status NOT IN ('COMP', 'CLOSE', 'CAN')
AND targcompdate < CURRENT_DATE;
4. 構建完整應用程序
"創建一個 HTML 儀表板,用於顯示資產"
結果:一個完整的 Web 應用程序,具有以下特點:
- 帶有玻璃質感的暗模式
- 搜索和過濾功能
- 交互式詳細面板
- 從 Maximo 預加載數據
請參閱 資產管理器案例研究 以獲取完整的操作指南。
📁 項目結構
Maximo-MCP/
├── maximo-mcp-server.js # 🔌 MCP 服務器實現
├── server.js # 🌐 用於 CORS 的本地代理服務器
├── package.json # 📦 依賴項
├── README.md # 本文件
├── .env.example # 環境模板
├── .gitignore # Git 忽略規則
│
├── docs/ # 📚 文檔
│ ├── Maximo_MCP_Server_Guide.md # 完整的 MCP 指南
│ ├── Maximo_API_Interaction_Guide.md # API 交互模式
│ ├── Asset_Manager_App_Case_Study.md # 構建指南
│ ├── Maximo_MCP_Server_Guide_FR.md # 法語翻譯
│ └── Maximo_API_Interaction_Guide_FR.md # 法語翻譯
│
├── demos/ # 🎨 演示應用程序
│ ├── assets.html # 資產管理器應用程序
│ ├── carbon_workorders.html # Carbon 表格演示
│ └── index.html # API 可視化演示
│
├── images/ # 📸 截圖和錄製
│ ├── assets_demo_recording.webp # 完整演示錄製
│ ├── assets_loaded.png # 儀表板截圖
│ ├── pump_search_results.png # 搜索演示
│ └── laredo_filtered.png # 過濾演示
│
└── config/ # ⚙️ 配置模板
└── mcp_config.json.example # MCP 配置模板
🔒 安全最佳實踐
| 實踐 |
描述 |
| 🔐 本地執行 |
MCP 服務器在您的機器上運行;API 密鑰不會離開您的環境 |
| 📖 只讀密鑰 |
使用權限有限的 API 密鑰進行開發 |
| 🔒 環境變量 |
切勿在配置文件中硬編碼憑證 |
| 🌐 僅使用 HTTPS |
始終使用加密連接連接到 Maximo |
🤝 貢獻
歡迎貢獻代碼!請在提交拉取請求之前閱讀我們的貢獻指南。
- 分叉倉庫
- 創建功能分支 (
git checkout -b feature/amazing-feature)
- 提交更改 (
git commit -m 'Add amazing feature')
- 推送到分支 (
git push origin feature/amazing-feature)
- 打開拉取請求
📄 許可證
本項目採用 MIT 許可證 - 有關詳細信息,請參閱 LICENSE 文件。
🙏 致謝