Skip to main content
Glama
AnuwatThisuka

CMMS MCP Server

create_maintenance_task

Create new maintenance tasks for assets in a CMMS system, specifying type, priority, schedule, assignment, and details to manage preventive, corrective, inspection, or calibration work.

Instructions

Create a new maintenance task in CMMS system.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assetIdYesAsset ID for the maintenance task
taskTypeYesType of maintenance task
priorityYesPriority of the task
scheduledDateYesScheduled date (ISO format)
dueDateYesDue date (ISO format)
assignedToYesTechnician ID assigned to the task
descriptionYesDescription of the maintenance task
estimatedDurationNoEstimated duration in minutes

Implementation Reference

  • The handler method `handleCreateMaintenanceTask` executes the tool logic by creating and pushing a new maintenance task to the mock data.
    private handleCreateMaintenanceTask(args: {
      assetId: string;
      taskType: string;
      priority: string;
      scheduledDate: string;
      dueDate: string;
      assignedTo: string;
      description: string;
      estimatedDuration?: number;
    }) {
      const asset = mockAssets.find((a) => a.id === args.assetId);
      if (!asset) {
        throw new Error(`Asset not found: ${args.assetId}`);
      }
    
      const newTask: MaintenanceTask = {
        id: `mt-${String(mockMaintenanceTasks.length + 1).padStart(3, "0")}`,
        taskNumber: `MT-2024-${String(mockMaintenanceTasks.length + 1).padStart(
          3,
          "0"
        )}`,
        assetId: args.assetId,
        assetName: asset.name,
        taskType: args.taskType as any,
        priority: args.priority as any,
        status: "scheduled",
        scheduledDate: args.scheduledDate,
        dueDate: args.dueDate,
        assignedTo: args.assignedTo,
        description: args.description,
        estimatedDuration: args.estimatedDuration || 240,
      };
    
      mockMaintenanceTasks.push(newTask);
    
      return {
        content: [
          {
  • src/index.ts:204-235 (registration)
    Registration of the "create_maintenance_task" tool including its input schema definition.
    {
      name: "create_maintenance_task",
      description: "Create a new maintenance task in CMMS system.",
      inputSchema: {
        type: "object",
        properties: {
          assetId: {
            type: "string",
            description: "Asset ID for the maintenance task",
          },
          taskType: {
            type: "string",
            enum: ["preventive", "corrective", "inspection", "calibration"],
            description: "Type of maintenance task",
          },
          priority: {
            type: "string",
            enum: ["low", "medium", "high", "critical"],
            description: "Priority of the task",
          },
          scheduledDate: {
            type: "string",
            description: "Scheduled date (ISO format)",
          },
          dueDate: {
            type: "string",
            description: "Due date (ISO format)",
          },
          assignedTo: {
            type: "string",
            description: "Technician ID assigned to the task",
          },
Behavior2/5

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

With no annotations provided, the description carries full burden but only implies a write operation via 'Create'. It omits critical behavioral details: whether the operation is atomic, if it triggers notifications to assigned technicians, error handling for invalid assetIds, or what the return value contains.

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?

Extremely concise at 7 words in a single sentence. While efficiently worded without redundancy, it is arguably underspecified for an 8-parameter creation tool with no output schema.

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 complex mutation tool with 8 parameters (7 required) and no output schema, the description is insufficient. It fails to describe the return value, success/failure states, or side effects like notifications generated in the CMMS system.

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 structured schema adequately documents all 8 parameters including enums for taskType and priority. The description adds no parameter-specific guidance, meeting the baseline for high-coverage schemas.

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 (Create) and resource (maintenance task) with system context (CMMS). However, it fails to differentiate from sibling tools like `get_work_orders` or explain when to use maintenance tasks versus work orders in the CMMS workflow.

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 provided on when to use this tool versus alternatives like `get_work_orders`, prerequisites such as asset existence validation, or required conditions for the scheduled/due dates.

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