# Maintainx — how to use (mcp.ai)

Connect your Maintainx account and use 30 tools for task management straight from your AI agent. Connect with your own API key. MaintainX is a cloud-based computerized maintenance management system (CMMS) that helps organizations centralize maintenance data, communication, and workflows.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_maintainx?ms=1787293380000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `maintainx_create_category`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/maintainx`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/maintainx/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/maintainx/create/category` — Tool to create a new category in MaintainX for organizing work orders, assets, and other items. Use when you need to add a new category to the organization's classification system.
  - body: { label: string, description?: string }
- `POST https://api.mcp.ai/api/maintainx/create/location` — Tool to create a new location in MaintainX. Use when you need to add a new physical location where assets are stored or work is performed. Locations can be organized hierarchically using the parentId 
  - body: { name: string, address?: string, barcode?: string, parentId?: integer, vendorIds?: integer[], description?: string, extraFields?: object }
- `POST https://api.mcp.ai/api/maintainx/create/procedure/template` — Tool to create a new procedure template in MaintainX with checklist items for work orders. Use when you need to create a standardized procedure that can be attached to work orders. The template can in
  - body: { title: string, fields?: object[], description?: string }
- `POST https://api.mcp.ai/api/maintainx/create/work/order` — This tool creates a new work order in MaintainX. It uses the POST /api/v1/workorders endpoint. The tool requires a 'title' for the work order and offers several optional parameters including descripti
  - body: { title: string, asset_id?: integer, due_date?: string, priority?: string, team_ids?: integer[], user_ids?: integer[], categories?: string[], start_date?: string, description?: string, location_id?: integer, procedure_template_id?: integer }
- `POST https://api.mcp.ai/api/maintainx/create/work/order/comment` — This tool creates a new comment on an existing work order in MaintainX. It allows users to add comments for documentation, updates, or communication purposes within a specific work order. It requires 
  - body: { content: string, work_order_id: integer }
- `POST https://api.mcp.ai/api/maintainx/create/work/request` — Tool to create a new work request in MaintainX. Use when you need to submit a request for work that can later be converted to a work order. Work requests are typically used to initiate maintenance or 
  - body: { title: string, asset_id?: integer, priority?: string, description?: string, location_id?: integer }
- `POST https://api.mcp.ai/api/maintainx/create/work/request/portal` — Creates a new work request portal in MaintainX. A work request portal allows users to submit work requests through a dedicated URL. The portal can be customized with a title, welcome text, and descrip
  - body: { title: string, asset_id?: integer, email_only?: boolean, location_id?: integer, welcome_text?: string, contact_information?: string, description_placeholder?: string, send_email_notification?: boolean }
- `POST https://api.mcp.ai/api/maintainx/delete/assets` — Tool to delete an asset from MaintainX by its ID. Use when you need to permanently remove an asset from the system. Returns a success confirmation upon successful deletion (HTTP 204).
  - body: { id: integer, skipWebhook?: boolean }
- `POST https://api.mcp.ai/api/maintainx/delete/category` — Tool to delete a category in MaintainX. Use when you need to remove a category from the system. Returns success status upon deletion (HTTP 204).
  - body: { id: integer, skipWebhook?: boolean }
- `POST https://api.mcp.ai/api/maintainx/find/entity` — A tool to search and find specific entities within MaintainX by specified fields. This tool allows users to search for different types of entities including work orders, users, and locations.
  - body: { limit?: integer, offset?: integer, status?: string, sort_by?: string, sort_order?: string, entity_type: string, search_query?: string }
- `POST https://api.mcp.ai/api/maintainx/get/category` — Tool to retrieve detailed information about a specific category by its ID. Use when you need to get the label, description, update time, or work order count for a category.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/maintainx/get/location` — Tool to retrieve detailed information about a specific location by its ID. Use when you need to get comprehensive details including address, attachments, child locations, and custom fields for a locat
  - body: { id: integer }
- `POST https://api.mcp.ai/api/maintainx/get/user` — Tool to retrieve detailed information about a specific user by their ID. Use when you need to get user data including name, email, role, hourly rate, and custom fields.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/maintainx/get/vendor` — Tool to retrieve detailed information about a specific vendor by its ID. Use when you need to get comprehensive details about a vendor including contact information, attachments, and custom fields.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/maintainx/get/workorders/costs` — Tool to retrieve costs information for a specific work order by its ID. Use when you need to get detailed cost breakdown including total costs and individual cost rows for a work order.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/maintainx/list/asset/criticalities` — Tool to retrieve a list of asset criticalities from MaintainX. Use when you need to get all available asset criticality levels in the organization, optionally filtered by label or level.
  - body: { label?: string, level?: integer, limit?: integer, cursor?: string, x_organization_id?: integer }
- `POST https://api.mcp.ai/api/maintainx/list/assets` — This tool allows users to retrieve a list of all assets in their organization.
  - body: { limit?: integer, cursor?: string, expand?: string[], location_id?: integer, custom_field_name?: string[] }
- `POST https://api.mcp.ai/api/maintainx/list/categories` — This tool retrieves a list of all categories in your MaintainX organization. Categories are used to organize and classify work orders, assets, and other items in the system. It supports listing the ca
  - body: { limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/maintainx/list/locations` — This tool retrieves a list of all available locations in the organization's MaintainX account. The locations can be physical places where assets are located, work is performed, or maintenance is neede
  - body: { limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/maintainx/list/meters` — Tool to list all meters in your organization. Use this to retrieve meter information including measurement types, units, and readings.
  - body: { limit?: integer, cursor?: string, expand?: string[], measurement_type?: string, x_organization_id?: integer }
- `POST https://api.mcp.ai/api/maintainx/list/parts` — Tool to list parts/inventory items with pagination and filtering. Use when you need to retrieve available parts from the organization's inventory.
  - body: { limit?: integer, cursor?: string, locationId?: integer }
- `POST https://api.mcp.ai/api/maintainx/list/procedure/templates` — Tool to list procedure templates from MaintainX. Use when you need to retrieve available procedure templates that can be used in work orders.
  - body: { limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/maintainx/list/teams` — This tool retrieves a list of all teams in your MaintainX organization.
- `POST https://api.mcp.ai/api/maintainx/list/work/orders` — Action to list work orders from MaintainX.
  - body: { sort?: string, limit?: integer, parts?: integer[], teams?: integer[], title?: string, assets?: integer[], cursor?: string, expand?: string[], vendors?: integer[], statuses?: string[], assignees?: integer[], locations?: integer[], not_parts?: integer[], categories?: string[], not_assets?: integer[], priorities?: string[], not_vendors?: integer[], not_locations?: integer[], show_upcoming?: boolean, not_categories?: string[] }
- `POST https://api.mcp.ai/api/maintainx/list/work/request/portals` — Tool to list all work request portals in your MaintainX organization. Use when you need to retrieve available work request portals for managing external work requests.
  - body: { limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/maintainx/list/work/requests` — Tool to retrieve a list of work requests from MaintainX. Use when you need to view all work requests. Supports pagination for large result sets using cursor and limit parameters.
  - body: { limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/maintainx/update/vendors/attachment` — Tool to update a vendor attachment in MaintainX. Use when you need to upload or replace a file attachment for a specific vendor. The file is uploaded as binary data.
  - body: { id: integer, file: object, filename: string, skipWebhook?: boolean }
- `POST https://api.mcp.ai/api/maintainx/update/work/order` — This tool allows users to update an existing work order in MaintainX by modifying specific attributes without affecting other unchanged fields. It requires the workorder_id and at least one of the opt
  - body: { title?: string, priority?: string, description?: string, workorder_id: string }
- `POST https://api.mcp.ai/api/maintainx/update/work/order/status` — This tool allows users to update the status of a specific work order in MaintainX. It is focused specifically on status updates, making it more streamlined than the comprehensive 'Update Work Order' a
  - body: { status: string, workorder_id: integer }
- `POST https://api.mcp.ai/api/maintainx/update/work/request/portal` — Updates an existing work request portal in MaintainX. Tool to update work request portal information such as title, welcome text, contact information, and notification settings. Use when modifying an 
  - body: { id: integer, title?: string, asset_id?: integer, email_only?: boolean, location_id?: integer, skip_webhook?: boolean, welcome_text?: string, contact_information?: string, description_placeholder?: string, send_email_notification?: boolean }

## Example prompts
- "What can I do in Maintainx?"
- "Show me a summary of my Maintainx account"

## More
- Page: https://mcp.ai/maintainx
- Agent spec (llms.txt): https://mcp.ai/maintainx/llms.txt
- Postman collection: https://mcp.ai/maintainx/postman.json
