Skip to main content
Glama
prajithram

IBM MAS Work Order MCP Server

by prajithram

IBM MAS Work Order MCP Server

Connects Claude directly to your IBM Maximo Application Suite (MAS) so you can chat about live work order data, run analysis, and query maintenance history conversationally.


What Claude can do once connected

Ask Claude...

What happens

"Show me all open work orders for PUMP-003"

Live API call to MAS, returns real data

"What's my PM compliance for Q3?"

Fetches PM WOs, calculates on-time %

"Which assets had the most breakdowns this year?"

Failure analysis across CM/EM WOs

"What's the cost overrun on WO-10031?"

Pulls actual vs estimated costs

"Show me the backlog for MechTeamA"

Filtered open WOs by crew

"Are there any overdue work orders?"

Finds WOs past schedfinish still open

"Approve work order WO-10045"

Updates status in MAS (with your confirmation)


Related MCP server: i3X-MCP-Server

Setup

1. Install dependencies

npm install

2. Configure environment variables

Create a .env file or export these before running:

# Your MAS server URL (no trailing slash)
MAS_HOST=https://your-mas-instance.example.com

# Authentication — use API key (preferred) OR username/password
MAS_APIKEY=your-api-key-here

# OR basic auth:
MAS_USERNAME=maximo-user
MAS_PASSWORD=maximo-password

# Optional: use lean JSON (smaller responses, recommended)
MAS_LEAN=1

Getting a MAS API key: Go to MAS → Security → API Keys → Generate Key

3. Add to Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "ibm-mas": {
      "command": "node",
      "args": ["/full/path/to/mas-mcp-server/src/index.js"],
      "env": {
        "MAS_HOST": "https://your-mas-instance.example.com",
        "MAS_APIKEY": "your-api-key-here",
        "MAS_LEAN": "1"
      }
    }
  }
}

Then restart Claude Desktop. You'll see a 🔌 icon confirming the MCP server is connected.

4. Add to Claude Code (alternative)

claude mcp add ibm-mas -- node /full/path/to/mas-mcp-server/src/index.js

Set env vars in your shell before running Claude Code.


Available Tools

Tool

Description

get_work_orders

Query WOs with filters: status, type, asset, crew, dates, priority

get_work_order_detail

Full detail on a single WO including labor/materials

get_asset_work_history

All WOs for an asset + MTTR calculation

get_open_backlog

Current open WO backlog with total estimated hours

get_overdue_work_orders

WOs past their scheduled finish date, still open

get_pm_compliance

PM WOs in a period with on-time completion %

get_failure_analysis

CM/EM breakdown by failure code and asset

get_cost_analysis

Actual vs estimated costs with variance %

get_assets

Search assets by number, description, or location

get_crew_workload

Open WO count and hours by crew

update_work_order_status

Change WO status in MAS (approve, start, complete)


Requirements

  • Node.js 18+

  • IBM MAS 8.x or 9.x (Maximo 7.6.1+ also works)

  • OSLC API enabled on your MAS instance

  • Network access from the machine running this server to your MAS host


Firewall / VPN note

This server runs locally on your machine and makes outbound HTTPS calls to your MAS host. If MAS is on a private network, run this server from a machine inside that network or connected via VPN.

Available Tools

11 tools
get_assetsA

Search for assets in MAS — get asset details, location, status, and description. Useful for looking up asset numbers before querying work orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNoSearch by asset number or description
statusNoAsset status e.g. OPERATING, DECOMMISSIONED
locationNoFilter by location

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It communicates a read-only search operation and the data it returns. It does not disclose pagination or rate limits, but for a simple search tool it covers the essential behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the core operation front-loaded and the usage context in the second sentence. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-required-parameter search tool, the description adequately states what is returned and why to use it. It lacks an explicit return format, but no output schema exists and the listed fields plus schema defaults are sufficient for safe invocation.

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 description coverage is 75%, so the description is not required to fully compensate. It adds slight value by framing the search by asset number/description for lookup before work orders, but it does not explain the limit parameter or value formats beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search') and resource ('assets in MAS') and characterizes the returned information (details, location, status, description). It implies differentiation from work-order tools by noting its usefulness before querying work orders, but it does not explicitly name or rule out siblings like get_asset_work_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear use case: look up asset numbers before querying work orders. This tells the agent when to reach for the tool, but it does not give explicit when-not-to-use guidance or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_asset_work_historyA

Get the complete maintenance history for a specific asset — all work orders ever raised against it, sorted by date. Great for trend analysis, MTTR, and failure pattern identification.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax records (default 100)
assetnumYesAsset number

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that results are 'complete' and 'sorted by date', which adds behavioral context. However, it does not mention pagination behavior, the impact of the limit parameter, or any side effects (though it is clearly a read operation). The absence of annotation support makes the description only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and followed by use cases. There is no redundant language, and every word contributes to understanding the tool's function and applicability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema, the description adequately conveys what the tool returns (full maintenance history) and its ordering. It is complete enough for an agent to call it correctly, though it could explicitly mention that the result is a list of work orders and that limit applies to that list. Minor gaps exist but are not critical.

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 description coverage is 100%, so both parameters are already well-documented (assetnum and limit). The description adds no extra meaning beyond what the schema provides—it doesn't explain how limit interacts with the 'complete history' claim or clarify sorting order. Baseline 3 is appropriate given high schema coverage.

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 states a specific verb ('Get') and resource ('complete maintenance history for a specific asset'), and explicitly contrasts with general work-order tools by scoping to a single asset. It also mentions use cases (trend analysis, MTTR, failure patterns) that differentiate it from siblings like get_failure_analysis or get_work_orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for when to use the tool (trend analysis, MTTR, failure pattern identification) but does not explicitly name alternatives or state when not to use it. It provides use cases without exclusions, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cost_analysisA

Fetch completed work orders with actual vs estimated costs to calculate cost variance, overruns, and total maintenance spend in a period.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
date_toNoEnd date YYYY-MM-DD
worktypeNoFilter by work type (optional)
date_fromNoStart date YYYY-MM-DD

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It conveys that the operation is a read/fetch and that only completed work orders are returned. However, it does not disclose output shape, whether results are aggregated or per-order, or any default date/period behavior beyond what the schema implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It states the action, resource, and purpose efficiently, and every phrase contributes to the agent's understanding.

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 that there is no output schema and no annotations, the description is somewhat thin. It tells the agent what the tool fetches and why, but it does not specify return fields, aggregation details, or whether date parameters are effectively required to bound the analysis. This leaves moderate ambiguity for an agent planning to use the result.

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 description coverage is 75%, so the schema documents most parameters. The tool description adds the 'period' context and the 'completed work orders' scope, but it does not clarify the meaning of limit or how the date range interacts with absent dates. It provides marginal value beyond the schema.

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 opens with a specific verb and resource: 'Fetch completed work orders with actual vs estimated costs.' It clearly states the analytical purpose—calculating cost variance, overruns, and total maintenance spend—which distinguishes it from sibling tools like get_work_orders or get_failure_analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: whenever cost variance, overruns, or total maintenance spend in a period is needed. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crew_workloadB

Get a summary of open work orders grouped by crew to assess workload distribution and backlog per team.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It states the core resource and grouping but does not explain how date_from/date_to affect the results, whether all crews are included, or what the summary return structure looks like. This is minimal disclosure for a retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise, front-loaded with the action and resource, and contains no redundant or filler content. Every word contributes to defining the tool's purpose.

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?

With no annotations and no output schema, the description is the only guide for the agent. It lacks parameter meaning, usage comparisons to sibling tools, and return-value detail. For a tool that accepts optional date filters, this is incomplete guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two parameters with no descriptions and 0% schema coverage, so the description must compensate by explaining them. The description does not mention date_from or date_to at all, providing no additional meaning about their format, optionality, or filtering behavior. Thus the description adds no value beyond the bare parameter names.

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 states a specific verb ('Get') and resource ('summary of open work orders grouped by crew'), making the tool's function clear. It also includes the intended purpose ('assess workload distribution and backlog per team'), which helps distinguish it from sibling tools like get_open_backlog that do not mention crew grouping.

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?

The description implies a use case ('to assess workload distribution and backlog per team') but does not explicitly specify when to prefer this over alternatives such as get_open_backlog or get_overdue_work_orders. It offers no exclusions or when-not-to-use guidance, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_failure_analysisA

Fetch corrective and emergency work orders with failure codes to analyse breakdown patterns, most common failure types, and assets with repeated failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
date_toNoEnd date YYYY-MM-DD
assetnumNoSpecific asset (optional)
date_fromNoStart date YYYY-MM-DD

TDQS

A3.6/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. It says 'Fetch' which implies a read operation, but it does not explicitly state that it is read-only, nor does it describe what the tool returns (e.g., a list of work orders vs. an analysis summary). The phrase 'to analyse' is ambiguous about the output. No mention of pagination, rate limits, or response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key action ('Fetch corrective and emergency work orders with failure codes') and follows with the analytical purpose. There is no fluff or redundant information. It is appropriately sized for the tool's simplicity.

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?

Despite having 4 parameters and no output schema, the description does not clarify the return value or the exact nature of the analysis (e.g., does it return raw work orders or aggregated statistics?). It also lacks guidance on prerequisites or data format expectations beyond what the schema provides. An agent may be uncertain about what to expect from the tool's response, making the description incomplete.

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 description coverage is 75% (3 of 4 parameters have descriptions). The tool description does not add any parameter-specific information beyond the schema. Since coverage is high, the schema already documents what each parameter means, so a baseline of 3 is appropriate. The description adds no additional parameter semantics.

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 states a specific verb ('Fetch'), a specific resource ('corrective and emergency work orders with failure codes'), and the analytical purpose ('analyse breakdown patterns, most common failure types, and assets with repeated failures'). It clearly differentiates from siblings like get_work_orders (general) and get_cost_analysis (cost-focused) by focusing on failure analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when analyzing breakdown patterns, failure types, or assets with repeated failures. It does not explicitly name alternatives or exclusions, but the purpose statement makes the usage context clear. Without mentioning sibling tools, the guidance is adequate but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_open_backlogA

Fetch all open (not completed/closed/cancelled) work orders — the current maintenance backlog. Useful for workload planning and identifying overdue WOs.

ParametersJSON Schema
NameRequiredDescriptionDefault
crewNoFilter by crew (optional)
limitNo
worktypeNoFilter by work type (optional)

TDQS

A3.8/5.0
Behavior3/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. It implies a read operation ('Fetch') but does not explicitly state it is side-effect-free. It clarifies the status filter but does not mention the limit parameter's behavior, pagination, or response format. For a simple read, this is minimally adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose and adds a brief use-case note. It is concise with no redundant words, making it easy to parse quickly.

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?

The tool has no output schema, so the description should convey what the response contains. It does not mention fields returned, ordering, or pagination behavior. The use-case hint is helpful, but for an agent to call it correctly, it would benefit from knowing the limit default and the nature of the returned work orders. For a simple list, this is partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% – crew and worktype have descriptions, but limit does not. The description does not mention any parameters or add context beyond the schema. Since coverage is below the 80% threshold, the description should have compensated by explaining the limit parameter, but it does not, leaving the agent without guidance on its meaning.

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 states a specific verb ('Fetch') and resource ('work orders') and clarifies the status filter ('open (not completed/closed/cancelled)'). It explicitly differentiates from the sibling get_overdue_work_orders by indicating it returns all open work orders, not just overdue ones, and adds context with 'maintenance backlog'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear use cases: 'Useful for workload planning and identifying overdue WOs.' This implies when to use it, but it does not name alternatives or state when not to use it. Since the sibling get_overdue_work_orders exists, the description could be more explicit about routing, but the provided context is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_overdue_work_ordersA

Fetch work orders where the scheduled finish date has passed but the WO is still open. Essential for SLA tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the core filtering logic (overdue and open) but omits behavior such as pagination, ordering, or the effect of the limit parameter. The read-only nature is implied by 'Fetch' but not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The primary purpose is front-loaded, and the SLA context is appended without redundancy. Ideal length for the tool's simplicity.

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?

For a tool with one optional parameter and no output schema, the description should explain the parameter and differentiate from overlapping siblings. It explains the filter but leaves the limit parameter undocumented and does not explicitly contrast with get_open_backlog, leaving a notable completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the 'limit' parameter at all. The agent cannot infer what the limit controls (e.g., max results, pagination) from the description, which fails to compensate for the schema's lack of explanation.

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 specific verb 'Fetch' and the resource 'work orders', and precisely defines the selection condition: scheduled finish date passed while still open. This distinguishes it from siblings like get_work_orders (all WOs) and get_open_backlog (any open WOs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear use case ('Essential for SLA tracking') that implies when to use it. However, it does not explicitly mention alternatives or exclusion conditions, so it leaves some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pm_complianceC

Fetch preventive maintenance (PM) work orders in a date range and calculate compliance — how many were completed on time vs overdue.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
date_toNoEnd date YYYY-MM-DD
locationNoFilter by location (optional)
date_fromNoStart date YYYY-MM-DD

TDQS

C2.9/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. It mentions fetching and calculating but doesn't disclose whether it's read-only, what the output structure is, or any side effects. The agent cannot know if this is a safe read operation or if it requires special permissions.

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?

A single, efficient sentence that front-loads the primary action and outcome. No redundant phrasing, and it conveys the core purpose without unnecessary detail.

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?

For a tool that calculates compliance, the description omits critical information about the return format (e.g., whether it returns raw work orders, a summary, or both), pagination behavior, and any edge cases. Without annotations or an output schema, the description is insufficient for an agent to predict results.

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 description coverage is 75%, with limit lacking a description. The description adds the concept of date range and compliance but doesn't enrich parameter meanings beyond what the schema already provides. Since coverage is high, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'fetch' and resource 'preventive maintenance (PM) work orders', and adds the calculation of compliance. It is specific enough to distinguish from general get_work_orders and get_overdue_work_orders, though it doesn't explicitly name alternatives.

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 guidance is provided on when to use this tool versus siblings like get_overdue_work_orders or get_work_orders. The description implies use for PM compliance, but doesn't state conditions or exclusions, leaving the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_order_detailA

Get full details for a single work order by WO number, including labor records, materials, costs, failure codes, and all dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
wonumYesWork order number e.g. WO-10042

TDQS

A3.5/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. It mentions what data is returned but discloses no behavioral traits beyond the obvious read action: no error handling, permissions, rate limits, or return format. 'Full details' is a claim about content, not behavior. This is a significant gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence that front-loads the action ('Get full details for a single work order') and then efficiently enumerates the included data areas. No filler or redundancy; every phrase earns its place.

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?

The tool is simple (1 parameter, no output schema), yet the description lists the major content categories, which helps the agent anticipate the response. However, it omits details like response structure or error behavior, and without output schema or annotations, the description alone is only moderately complete.

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% – the wonum parameter already has a clear name and example (WO-10042). The description adds no new parameter details, essentially repeating 'by WO number.' This meets the baseline for high schema coverage without adding semantic value beyond it.

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?

Description clearly states it retrieves full details for a single work order by WO number, and explicitly lists the included data categories (labor, materials, costs, failure codes, dates). This distinguishes it from siblings like get_work_orders (likely list-level) and get_cost_analysis (cost-specific). The verb-resource pairing is specific and unambiguous.

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?

The description implies usage: get this when you need full details for one work order by number. It does not explicitly name alternative tools or state when not to use it (e.g., 'for a list use get_work_orders'), leaving the agent to infer from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_ordersA

Fetch work orders from IBM MAS with flexible filters. Use this to query open WOs, filter by status, work type, asset, crew, date range, or priority. Returns full WO details including costs, dates, and failure codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
crewNoFilter by crew name
limitNoMax records to return (default 50, max 200)
searchNoFree-text search in WO description
statusNoFilter by status. Examples: INPRG, APPR, WAPPR, COMP, CLOSE, CAN. Comma-separate for multiple: "INPRG,APPR"
date_toNoReport date to (YYYY-MM-DD)
assetnumNoFilter by asset number (exact or partial)
locationNoFilter by location code
priorityNoFilter by priority (1=Critical, 2=Urgent, 3=Normal, 4=Low)
worktypeNoFilter by work type: PM, CM, EM, CAL, OT, INS
date_fromNoReport date from (YYYY-MM-DD)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It conveys that this is a read-only operation through the verb 'Fetch' and describes the output as returning full WO details with costs, dates, and failure codes. It does not disclose filter combination semantics, pagination behavior, or error cases, but for a retrieval tool the core behavioral intent is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It front-loads the action and resource, then lists the key use cases and output highlights. Every sentence adds value and the length is appropriate for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 10 optional parameters and no output schema or annotations, but the schema covers all parameters. The description summarizes the use cases and return content adequately. It would benefit from an explicit note about how filters combine or when to use specialized siblings, but it is sufficiently complete for a broad query 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 description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description adds a helpful summary of filter categories but no additional semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Fetch work orders from IBM MAS with flexible filters.' It also enumerates the main filtering dimensions. It does not explicitly differentiate this from siblings like get_work_order_detail or get_open_backlog, but the generic-filter phrasing makes the scope apparent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context by saying 'Use this to query open WOs, filter by status, work type, asset, crew, date range, or priority.' This tells an agent when to invoke it for flexible WO queries. However, it does not name alternatives or exclusions, such as using get_work_order_detail for a single WO or get_overdue_work_orders for a predefined set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_work_order_statusA

Update the status of a work order in MAS (e.g. approve a WO, mark as in progress). Use with caution — this writes to your live MAS system.

ParametersJSON Schema
NameRequiredDescriptionDefault
memoNoOptional status change memo
wonumYes
statusYesNew status: APPR, INPRG, COMP, CAN

TDQS

A4.2/5.0
Behavior4/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. It explicitly discloses that the tool writes to a live system and advises caution, which is the most important behavioral trait. It doesn't detail side effects beyond the status change, but the warning is strong and appropriate for a simple mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The purpose is front-loaded, and the caution earns its place. Every sentence adds value without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter mutation tool, the description plus schema covers purpose, required parameters, valid status values, and the live-write warning. No output schema exists, but the primary impact is the disclosed side effect. Minor gaps like error handling are not critical for this 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 description coverage is 67%: status and memo are documented, while wonum is not. The description adds no parameter-specific details, but wonum is self-evident from the tool name and the schema's required list, so the schema carries the necessary meaning.

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?

States a specific verb ('Update'), a specific resource ('work order status'), and the system ('MAS'), with concrete examples ('approve a WO, mark as in progress'). This clearly distinguishes it from the sibling get_* read-only tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context as the tool for changing work order status, and the caution ('use with caution — writes to your live MAS system') implies it should not be used for read operations. It doesn't explicitly name alternatives, but all siblings are read-only, so none exist.

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.

  1. 11 tool updatesv1.0.0
    • First observedget_asset_work_history
    • First observedget_assets
    • First observedget_cost_analysis
    • First observedget_crew_workload
    • First observedget_failure_analysis
    • First observedget_open_backlog
    • First observedget_overdue_work_orders
    • First observedget_pm_compliance
    • First observedget_work_order_detail
    • First observedget_work_orders
    • First observedupdate_work_order_status

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation3/5

Most tools have a clear analytical purpose, but several overlap: get_open_backlog and get_overdue_work_orders can both be reproduced via get_work_orders filters, and get_asset_work_history overlaps with get_work_orders filtered by asset. Descriptions help differentiate intent, but the boundaries are not crisp.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern: get_* for reads and update_work_order_status for writes. No mixed conventions, no vague verbs.

Tool Count5/5

11 tools is well within the ideal 3-15 range. Each tool addresses a specific maintenance analysis or work order query need without feeling bloated.

Completeness3/5

The read/analysis surface is comprehensive (compliance, cost, failure, backlog, history), but write operations are limited to status updates — creating work orders, closing them, or editing non-status fields are missing. This is a notable gap for a work order server.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • 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
    29 npm
    9
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Bridges Claude (or any MCP client) to manufacturing data via the i3X standard, enabling natural language queries about equipment status, hierarchy, and historical trends.
    12
    7 npm
    2
    MIT