Skip to main content
Glama
AnuwatThisuka

CMMS MCP Server

get_work_orders

Retrieve work orders from manufacturing systems with filtering options by status or production order ID to manage maintenance tasks and operations.

Instructions

Get work orders from MES system. Can filter by status or production order.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by work order status
productionOrderIdNoFilter by production order ID

Implementation Reference

  • The handleGetWorkOrders function implements the core logic for the 'get_work_orders' tool, filtering mock data based on input arguments.
    private handleGetWorkOrders(args: {
      status?: string;
      productionOrderId?: string;
    }) {
      let orders = [...mockWorkOrders];
    
      if (args.productionOrderId) {
        orders = orders.filter(
          (o) => o.productionOrderId === args.productionOrderId
        );
      }
      if (args.status) {
        orders = orders.filter((o) => o.status === args.status);
      }
    
      return {
        content: [
          {
            type: "text",
            text: JSON.stringify(orders, null, 2),
          },
        ],
      };
    }
  • src/index.ts:84-102 (registration)
    The 'get_work_orders' tool registration within the ListToolsRequestSchema handler.
    {
      name: "get_work_orders",
      description:
        "Get work orders from MES system. Can filter by status or production order.",
      inputSchema: {
        type: "object",
        properties: {
          status: {
            type: "string",
            enum: ["pending", "in-progress", "completed", "on-hold"],
            description: "Filter by work order status",
          },
          productionOrderId: {
            type: "string",
            description: "Filter by production order ID",
          },
        },
      },
    },
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention whether the operation is read-only, pagination behavior, rate limits, or what occurs when no filters are applied (returns all records? limited set?). Only the filtering capability is noted.

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 consists of two efficient sentences with zero waste. The first establishes the core operation and resource; the second immediately clarifies filtering capabilities. Appropriately sized for the tool's complexity.

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 simple 2-parameter schema with full coverage and no output schema, the description meets minimum viability but leaves gaps regarding unfiltered query behavior, return format, and pagination. Adequate for basic selection but lacks richness expected for a production MES integration.

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%, documenting both parameters adequately. The description adds semantic context by confirming these are 'filter' parameters rather than identifiers for specific records, but does not elaborate on parameter relationships or data 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 clear verb ('Get') and resource ('work orders from MES system'), identifying the specific system context. However, it does not explicitly differentiate from sibling tool 'get_production_orders' despite mentioning production orders as a filter criterion.

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 patterns by noting filtering capabilities ('Can filter by status or production order'), but provides no explicit guidance on when to use this versus alternatives like 'get_maintenance_tasks' or 'get_production_orders', nor prerequisites for filtering.

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

Install Server

Other Tools

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/AnuwatThisuka/cmms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server