maximo-jobplan
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@maximo-jobplanShow me details of HVAC-PM-001"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Maximo Job Plan Management via MCP
This project uses the Model Context Protocol (MCP) to interact with IBM Maximo for job plan management.
Overview
The Maximo Job Plan MCP Server provides a seamless interface for AI assistants to interact with IBM Maximo's job plan management system. It enables natural language interactions for creating, querying, updating, and deleting job plans.
Related MCP server: maximo-mcp-ai-integration
Features
Import Job Plans: Bulk import job plans from CSV files
List Job Plans: Query and filter job plans with OSLC queries
Get Job Plan Details: Retrieve detailed information about specific job plans
Delete Job Plans: Remove job plans from the system
Natural Language Interface: Use conversational commands through AI assistants
Available MCP Tools
The maximo-jobplan MCP server provides 4 tools for managing job plans:
1. import_jobplans
Import job plans from CSV data into Maximo.
Example usage:
"Import job plans from jobplanMaximo.csv"CSV Format:
JPNUM,DESCRIPTION,JPDURATION,STATUS,JOBTYPE,PLUSCJPREVNUM
HVAC-PM-001,Quarterly HVAC System Inspection,4.0,ACTIVE,PM,02. list_jobplans
List all job plans from Maximo with optional filtering.
Example usage:
"List all job plans"
"Show me HVAC job plans"3. get_jobplan
Get detailed information about a specific job plan.
Example usage:
"Get details of job plan HVAC-PM-001"
"Show me the BREAKINSP job plan"4. delete_jobplan
Delete a job plan by number.
Example usage:
"Delete job plan TEST-001"Installation
Prerequisites
Node.js 18 or higher
npm or yarn
Access to IBM Maximo instance
Maximo API key
Setup Steps
Clone the repository
git clone <repository-url> cd maximo-jobplan-mcpInstall dependencies
npm installBuild the project
npm run buildConfigure environment variables
Set the following environment variables:
MAXIMO_BASE_URL: Your Maximo instance URL (e.g.,https://your-maximo-instance.com)MAXIMO_API_KEY: Your Maximo API key
Configure MCP Client
For Bob/Claude Desktop, add to your MCP settings:
{ "mcpServers": { "maximo-jobplan": { "command": "node", "args": ["C:/path/to/maximo-jobplan-server/build/index.js"], "env": { "MAXIMO_BASE_URL": "https://your-maximo-instance.com", "MAXIMO_API_KEY": "your-api-key-here" } } } }
Project Structure
maximo-jobplan-mcp/
├── src/
│ └── index.ts # Main MCP server implementation
├── build/ # Compiled JavaScript output
├── docs/ # Documentation files
│ ├── MCP_SETUP_GUIDE.md
│ ├── QUICK_START.md
│ └── README_MAXIMO_CONNECTION.md
├── examples/
│ └── jobplanMaximo.csv # Sample job plans
├── package.json
├── tsconfig.json
├── .gitignore
└── README.mdUsage Examples
Using with AI Assistants
Simply use natural language commands:
"List all job plans in Maximo"
"Show me details of HVAC-PM-001"
"Import the job plans from the CSV file"
"Get all PUMP job plans"
"Delete job plan TEST-001"
Programmatic Usage
// The MCP server handles all interactions through the protocol
// No direct API calls needed when using with MCP clientsConfiguration
Maximo Connection
The server connects to Maximo using:
Base URL: Configured via
MAXIMO_BASE_URLenvironment variableAuthentication: API key via
MAXIMO_API_KEYenvironment variableAPI Endpoint:
/maximo/api/os/MXAPIJOBPLAN
CSV Import Format
Job plans CSV must include these columns:
JPNUM: Job plan number (max 12 characters)DESCRIPTION: Job plan descriptionJPDURATION: Duration in hoursSTATUS: Status (e.g., ACTIVE, INACTIVE)JOBTYPE: Job type (e.g., PM, CM)PLUSCJPREVNUM: Revision number
Development
Build Commands
# Build the project
npm run build
# Watch mode for development
npm run watch
# Prepare for distribution
npm run prepareTesting
Test the MCP server connection:
node build/index.jsTroubleshooting
Connection Issues
Verify environment variables are set correctly
Check Maximo URL is accessible
Validate API key has proper permissions
Review SSL certificates (development mode disables SSL verification)
Import Failures
Check CSV format matches required columns
Verify job plan numbers are 12 characters or less
Ensure required fields are populated
Check for duplicate job plan numbers
Security Considerations
⚠️ Important Security Notes:
SSL Verification: Currently disabled for development. Enable for production:
httpsAgent: new https.Agent({ rejectUnauthorized: true // Enable SSL verification })API Key Storage: Store API keys securely using:
Environment variables
Secret management systems
Encrypted configuration files
Access Control: Ensure only authorized users can access the MCP server
License
MIT License - See LICENSE file for details
Available Tools
4 toolsdelete_jobplanB
Delete a job plan by number
| Name | Required | Description | Default |
|---|---|---|---|
| jpnum | Yes | Job plan number to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of disclosure. It simply states 'Delete' without detailing the destructive nature, irreversibility, or any required permissions. It lacks necessary behavioral context for a deletion operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action. It is concise, but could include more detail without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with one parameter and no output schema, the description is minimally adequate. However, it lacks context about effects, prerequisites, or error cases, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so baseline is 3. The description adds no extra semantic value beyond the schema; it merely restates the parameter purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete', the resource 'job plan', and the method 'by number'. It effectively distinguishes from sibling tools like get_jobplan (retrieve), import_jobplans (add), and list_jobplans (list) through immediate contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description only states the action without context or conditions. While the sibling tool names imply the use case, the description does not provide explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobplanB
Get details of a specific job plan by number
| Name | Required | Description | Default |
|---|---|---|---|
| jpnum | Yes | Job plan number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden but only states 'Get details', which implies a read operation. It discloses no behavioral traits such as required permissions, side effects, or output format, leaving the agent with minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the tool's purpose. It earns its place without verbosity, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema), the description is adequate but not complete. It does not describe the return value or any prerequisites, which would be helpful for an agent to fully understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the parameter 'jpnum' as 'Job plan number' with 100% coverage. The description adds no extra meaning beyond confirming the parameter is used by number, so it meets the baseline of 3 without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves details of a specific job plan by number. The verb 'Get details' and resource 'job plan by number' are specific and distinguish it from sibling tools like list_jobplans (for listing) and delete_jobplan (for deletion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives like list_jobplans or delete_jobplan. The description lacks when-to-use or when-not-to-use context, relying solely on the tool name and parameter to imply use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_jobplansB
Import job plans from CSV data into Maximo. CSV must have columns: JPNUM,DESCRIPTION,JPDURATION,STATUS,JOBTYPE,PLUSCJPREVNUM
| Name | Required | Description | Default |
|---|---|---|---|
| csv_data | Yes | CSV data with job plans to import | |
| skip_existing | No | Skip job plans that already exist (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Fails to disclose behavior on duplicates, error handling, or side effects. Only mentions column requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loads action. Efficient but could benefit from a brief usage note without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and description lacks details on import behavior, validation, and error handling. Incomplete for a data import tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal value beyond schema: references CSV columns but not the 'skip_existing' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'import' and resource 'job plans from CSV data into Maximo'. Distinguishes from siblings which are delete, get, list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for bulk import with specific CSV columns, but no explicit when-to-use vs alternatives (e.g., individual creation) or when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobplansB
List job plans from Maximo with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of job plans to return (default: 50) | |
| filter | No | OSLC filter query (e.g., 'jpnum="HVAC*"') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic operation (list with filtering) but does not disclose pagination behavior, rate limits, ordering, or that the operation is read-only. The page_size parameter implies pagination but is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of a single sentence that clearly states the action and key feature (filtering). It is front-loaded and wastes no words. However, it may be too brief to fully inform the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 optional parameters, no output schema, no annotations), the description is minimally adequate. It covers the core functionality but lacks details on return format, error handling, or performance considerations that would be helpful for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters having descriptions. The description adds no additional semantics beyond 'optional filtering', making its value marginal. However, it does not detract from the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'job plans from Maximo', with optional filtering mentioned. It effectively distinguishes from sibling tools like delete_jobplan, get_jobplan (single), and import_jobplans, as listing is a distinct operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. It does not mention that get_jobplan is for retrieving a single job plan or that delete/import are for different purposes. The agent is left to infer usage without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.0- First observed
delete_jobplan - First observed
get_jobplan - First observed
import_jobplans - First observed
list_jobplans
TDQS
Each tool targets a distinct operation: delete, retrieve single, bulk import, and list. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern with underscores (delete_jobplan, get_jobplan, import_jobplans, list_jobplans).
With 4 tools covering basic CRUD and listing, the count is well-scoped for a job plan management server.
The set covers create (via import), read, list, and delete, but lacks a dedicated update tool. Import may handle updates, but this is not explicit.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage projects, tasks, time tracking, and team collaboration through natural language.
MCP server for generating rough-draft project plans from natural-language prompts.
An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables work item management in DevOps Plan systems, allowing users to create, retrieve, filter, and delete work items, as well as manage applications, projects, components, and work item types through natural language.1416MIT
- AlicenseNot gradedqualityDmaintenancehe Maximo MCP Server bridges AI agents (Claude, Cursor, Antigravity) with your IBM Maximo environment. It empowers your AI to autonomously discover Object Structures (APIs), inspect schemas, and query live data via OSLC. Instead of hallucinating field names, the AI validates queries instantly and ca508Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables budget management, scenario creation, and value updates through natural language, integrating with the Budget Planner MVP.-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with IBM Engineering Lifecycle Management (ELM), including DOORS Next Generation, EWM, and ETM, for managing requirements, work items, tests, and project builds through natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ibm-self-serve-assets/Bob-driven-Integration-for-Maximo-via-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server