From maintainx-pack
Creates minimal MaintainX work order via REST API using curl or TypeScript/Node.js. Tests API key/setup and teaches basic patterns for new integrations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/maintainx-pack:maintainx-hello-worldThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create your first work order using the MaintainX REST API -- the core building block of CMMS operations.
Create your first work order using the MaintainX REST API -- the core building block of CMMS operations.
maintainx-install-auth setupMAINTAINX_API_KEY environment variablecurl -X POST https://api.getmaintainx.com/v1/workorders \
-H "Authorization: Bearer $MAINTAINX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Hello World - Test Work Order",
"description": "First API-created work order. Safe to delete.",
"priority": "LOW",
"status": "OPEN"
}' | jq .
Expected response:
{
"id": 12345,
"title": "Hello World - Test Work Order",
"status": "OPEN",
"priority": "LOW",
"createdAt": "2026-03-19T12:00:00Z"
}
// hello-maintainx.ts
import { MaintainXClient } from './maintainx/client';
async function helloMaintainX() {
const client = new MaintainXClient();
// Create a basic work order
const { data: workOrder } = await client.createWorkOrder({
title: 'HVAC Filter Replacement - Building A',
description: 'Replace air filters in units 1-4 on the 3rd floor.',
priority: 'MEDIUM',
});
console.log('Created work order:', workOrder.id);
// Retrieve it back to confirm
const { data: fetched } = await client.getWorkOrder(workOrder.id);
console.log('Work order status:', fetched.status);
console.log('Created at:', fetched.createdAt);
// List open work orders
const { data: list } = await client.getWorkOrders({
status: 'OPEN',
limit: 5,
});
console.log(`Found ${list.workOrders.length} open work orders`);
}
helloMaintainX();
# List recent work orders to confirm creation
curl -s "https://api.getmaintainx.com/v1/workorders?limit=3" \
-H "Authorization: Bearer $MAINTAINX_API_KEY" | jq '.workOrders[] | {id, title, status}'
# Delete the test work order (replace ID)
curl -X DELETE "https://api.getmaintainx.com/v1/workorders/12345" \
-H "Authorization: Bearer $MAINTAINX_API_KEY"
| Error | Cause | Solution |
|---|---|---|
| 400 Bad Request | Missing required title field | Include at least title in the POST body |
| 401 Unauthorized | Invalid API key | Check MAINTAINX_API_KEY environment variable |
| 403 Forbidden | Plan limitations | Verify API access on your subscription |
| 422 Unprocessable | Invalid enum value | Use valid priority (NONE, LOW, MEDIUM, HIGH) |
Proceed to maintainx-local-dev-loop for development workflow setup.
Create a work order tied to an asset:
const wo = await client.createWorkOrder({
title: 'Conveyor Belt #7 - Bearing Replacement',
description: 'Replace worn bearings on the main drive shaft.',
priority: 'HIGH',
assetId: 98765, // Link to equipment asset
locationId: 54321, // Link to facility location
assignees: [{ type: 'USER', id: 111 }],
dueDate: '2026-03-25T17:00:00Z',
});
Create a work order from a preventive maintenance template:
curl -X POST https://api.getmaintainx.com/v1/workorders \
-H "Authorization: Bearer $MAINTAINX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Monthly Fire Extinguisher Inspection",
"priority": "MEDIUM",
"categories": ["PREVENTIVE"],
"procedureId": 7890
}'
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin maintainx-packSets up MaintainX REST API authentication: generates keys, configures env vars, installs TypeScript Axios client for work orders/assets/locations. For CMMS integrations.
Automates Maintainx operations via Composio toolkit through Rube MCP. Discovers tool schemas, manages connections, and executes workflows.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.