🚀 最大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 文件。
🙏 致谢