# Maintainx — MCP server on 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. By: mcp.ai · official Page: https://mcp.ai/maintainx ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_maintainx?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/maintainx/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/maintainx/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/maintainx/skill.md Postman collection (v2.1): https://mcp.ai/maintainx/postman.json ## Tools - maintainx_create_category(label: string, description?: string) — 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. - maintainx_create_location(name: string, address?: string, barcode?: string, parentId?: integer, vendorIds?: integer[], description?: string, extraFields?: object) — 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 - maintainx_create_procedure_template(title: string, fields?: object[], description?: string) — 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 - maintainx_create_work_order(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) — 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 - maintainx_create_work_order_comment(content: string, work_order_id: integer) — 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 - maintainx_create_work_request(title: string, asset_id?: integer, priority?: string, description?: string, location_id?: integer) — 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 - maintainx_create_work_request_portal(title: string, asset_id?: integer, email_only?: boolean, location_id?: integer, welcome_text?: string, contact_information?: string, description_placeholder?: string, send_email_notification?: boolean) — 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 - maintainx_delete_assets(id: integer, skipWebhook?: boolean) — 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). - maintainx_delete_category(id: integer, skipWebhook?: boolean) — 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). - maintainx_find_entity(limit?: integer, offset?: integer, status?: string, sort_by?: string, sort_order?: string, entity_type: string, search_query?: string) — 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. - maintainx_get_category(id: integer) — 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. - maintainx_get_location(id: integer) — 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 - maintainx_get_user(id: integer) — 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. - maintainx_get_vendor(id: integer) — 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. - maintainx_get_workorders_costs(id: integer) — 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. - maintainx_list_asset_criticalities(label?: string, level?: integer, limit?: integer, cursor?: string, x_organization_id?: integer) — 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. - maintainx_list_assets(limit?: integer, cursor?: string, expand?: string[], location_id?: integer, custom_field_name?: string[]) — This tool allows users to retrieve a list of all assets in their organization. - maintainx_list_categories(limit?: integer, cursor?: string) — 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 - maintainx_list_locations(limit?: integer, cursor?: string) — 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 - maintainx_list_meters(limit?: integer, cursor?: string, expand?: string[], measurement_type?: string, x_organization_id?: integer) — Tool to list all meters in your organization. Use this to retrieve meter information including measurement types, units, and readings. - maintainx_list_parts(limit?: integer, cursor?: string, locationId?: integer) — Tool to list parts/inventory items with pagination and filtering. Use when you need to retrieve available parts from the organization's inventory. - maintainx_list_procedure_templates(limit?: integer, cursor?: string) — Tool to list procedure templates from MaintainX. Use when you need to retrieve available procedure templates that can be used in work orders. - maintainx_list_teams() — This tool retrieves a list of all teams in your MaintainX organization. - maintainx_list_work_orders(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[]) — Action to list work orders from MaintainX. - maintainx_list_work_request_portals(limit?: integer, cursor?: string) — 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. - maintainx_list_work_requests(limit?: integer, cursor?: string) — 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. - maintainx_update_vendors_attachment(id: integer, file: object, filename: string, skipWebhook?: boolean) — 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. - maintainx_update_work_order(title?: string, priority?: string, description?: string, workorder_id: string) — 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 - maintainx_update_work_order_status(status: string, workorder_id: integer) — 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 - maintainx_update_work_request_portal(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) — 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 ## Example prompts - "What can I do in Maintainx?" - "Show me a summary of my Maintainx account" ## Links Docs: https://mcp.ai/docs/mcps/maintainx Website: https://mcp.ai/mcps/maintainx