Skip to main content
Glama
ibm-self-serve-assets

maximo-jobplan

Official

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,0

2. 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

  1. Clone the repository

    git clone <repository-url>
    cd maximo-jobplan-mcp
  2. Install dependencies

    npm install
  3. Build the project

    npm run build
  4. Configure 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

  5. 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.md

Usage 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 clients

Configuration

Maximo Connection

The server connects to Maximo using:

  • Base URL: Configured via MAXIMO_BASE_URL environment variable

  • Authentication: API key via MAXIMO_API_KEY environment variable

  • API 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 description

  • JPDURATION: Duration in hours

  • STATUS: 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 prepare

Testing

Test the MCP server connection:

node build/index.js

Troubleshooting

Connection Issues

  1. Verify environment variables are set correctly

  2. Check Maximo URL is accessible

  3. Validate API key has proper permissions

  4. Review SSL certificates (development mode disables SSL verification)

Import Failures

  1. Check CSV format matches required columns

  2. Verify job plan numbers are 12 characters or less

  3. Ensure required fields are populated

  4. Check for duplicate job plan numbers

Security Considerations

⚠️ Important Security Notes:

  1. SSL Verification: Currently disabled for development. Enable for production:

    httpsAgent: new https.Agent({
      rejectUnauthorized: true  // Enable SSL verification
    })
  2. API Key Storage: Store API keys securely using:

    • Environment variables

    • Secret management systems

    • Encrypted configuration files

  3. Access Control: Ensure only authorized users can access the MCP server

License

MIT License - See LICENSE file for details

Available Tools

4 tools
delete_jobplanB

Delete a job plan by number

ParametersJSON Schema
NameRequiredDescriptionDefault
jpnumYesJob plan number to delete

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
jpnumYesJob plan number

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
csv_dataYesCSV data with job plans to import
skip_existingNoSkip job plans that already exist (default: true)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of job plans to return (default: 50)
filterNoOSLC filter query (e.g., 'jpnum="HVAC*"')

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updatesv0.1.0
    • First observeddelete_jobplan
    • First observedget_jobplan
    • First observedimport_jobplans
    • First observedlist_jobplans

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct operation: delete, retrieve single, bulk import, and list. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores (delete_jobplan, get_jobplan, import_jobplans, list_jobplans).

Tool Count5/5

With 4 tools covering basic CRUD and listing, the count is well-scoped for a job plan management server.

Completeness3/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    14
    16
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    he 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 ca
    50
    8
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables budget management, scenario creation, and value updates through natural language, integrating with the Budget Planner MVP.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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

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