IBM MAS Work Order MCP Server
Click on "Deploy 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., "@IBM MAS Work Order MCP ServerShow me all open work orders for PUMP-003"
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.
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 install2. 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=1Getting 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.jsSet env vars in your shell before running Claude Code.
Available Tools
Tool | Description |
| Query WOs with filters: status, type, asset, crew, dates, priority |
| Full detail on a single WO including labor/materials |
| All WOs for an asset + MTTR calculation |
| Current open WO backlog with total estimated hours |
| WOs past their scheduled finish date, still open |
| PM WOs in a period with on-time completion % |
| CM/EM breakdown by failure code and asset |
| Actual vs estimated costs with variance % |
| Search assets by number, description, or location |
| Open WO count and hours by crew |
| 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 toolsget_assetsA
Search for assets in MAS — get asset details, location, status, and description. Useful for looking up asset numbers before querying work orders.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | No | Search by asset number or description | |
| status | No | Asset status e.g. OPERATING, DECOMMISSIONED | |
| location | No | Filter by location |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max records (default 100) | |
| assetnum | Yes | Asset number |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| date_to | No | End date YYYY-MM-DD | |
| worktype | No | Filter by work type (optional) | |
| date_from | No | Start date YYYY-MM-DD |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| date_to | No | End date YYYY-MM-DD | |
| assetnum | No | Specific asset (optional) | |
| date_from | No | Start date YYYY-MM-DD |
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. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| crew | No | Filter by crew (optional) | |
| limit | No | ||
| worktype | No | Filter by work type (optional) |
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. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| date_to | No | End date YYYY-MM-DD | |
| location | No | Filter by location (optional) | |
| date_from | No | Start date YYYY-MM-DD |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wonum | Yes | Work order number e.g. WO-10042 |
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. 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| crew | No | Filter by crew name | |
| limit | No | Max records to return (default 50, max 200) | |
| search | No | Free-text search in WO description | |
| status | No | Filter by status. Examples: INPRG, APPR, WAPPR, COMP, CLOSE, CAN. Comma-separate for multiple: "INPRG,APPR" | |
| date_to | No | Report date to (YYYY-MM-DD) | |
| assetnum | No | Filter by asset number (exact or partial) | |
| location | No | Filter by location code | |
| priority | No | Filter by priority (1=Critical, 2=Urgent, 3=Normal, 4=Low) | |
| worktype | No | Filter by work type: PM, CM, EM, CAL, OT, INS | |
| date_from | No | Report date from (YYYY-MM-DD) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| memo | No | Optional status change memo | |
| wonum | Yes | ||
| status | Yes | New status: APPR, INPRG, COMP, CAN |
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. 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.
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.
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.
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.
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.
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.
11 tool updates
v1.0.0- First observed
get_asset_work_history - First observed
get_assets - First observed
get_cost_analysis - First observed
get_crew_workload - First observed
get_failure_analysis - First observed
get_open_backlog - First observed
get_overdue_work_orders - First observed
get_pm_compliance - First observed
get_work_order_detail - First observed
get_work_orders - First observed
update_work_order_status
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Manage your IoT device fleet directly from Claude. Create device templates with datastreams and events, provision new devices, read live sensor data, and control outputs. The Blynk connector integrates with the Blynk IoT platform, enabling direct configuration and monitoring of connected devices and infrastructure.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Related MCP Servers
- 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 ca29 npm9Apache 2.0
- AlicenseAqualityDmaintenanceBridges Claude (or any MCP client) to manufacturing data via the i3X standard, enabling natural language queries about equipment status, hierarchy, and historical trends.127 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with ServiceNow instances through the ServiceNow API, supporting record management, service catalog operations, change management, and more via natural language.MIT
- FlicenseBqualityDmaintenanceConnects Claude to Jira, allowing users to query tasks, log work, add comments, and execute JQL queries through conversational AI.22-