# RepairShopr — how to use (mcp.ai)

Connect your RepairShopr account and use 147 tools for CRM straight from your AI agent. Connect with your own API key. RepairShopr is a comprehensive repair shop management software designed to streamline operations, manage customer relationships, and enhance business efficiency.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_repairshopr?ms=1787291400000`
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. `repairshopr_add_estimate_line_item`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/repairshopr`
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/repairshopr/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/repairshopr/add/estimate/line/item` — Tool to add a line item to an existing estimate. Use when you need to add products or services to an estimate in RepairShopr.
  - body: { id: integer, cost?: number, item?: string, name?: string, price?: number, taxable?: boolean, user_id?: integer, position?: integer, quantity?: number, tax_note?: string, upc_code?: string, product_id?: integer, tax_rate_id?: integer, discount_percent?: number, product_category?: string }
- `POST https://api.mcp.ai/api/repairshopr/add/purchase/order/line/item` — Tool to add a product line item to an existing purchase order. Use when you need to add inventory items to a purchase order. The product must have stock tracking enabled (maintain_stock=true).
  - body: { id: integer, quantity: integer, product_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/add/schedule/line/item` — Tool to add a line item to an invoice schedule. Use when adding recurring charges or one-time items to an existing schedule. Required permission: Recurring Invoices - Edit.
  - body: { id: integer, name?: string, taxable?: boolean, user_id?: integer, position?: integer, quantity?: number, cost_cents?: integer, product_id?: integer, description?: string, retail_cents?: integer, asset_type_id?: integer, one_time_charge?: boolean, recurring_type_id?: string, contact_field_type_id?: integer, saved_asset_search_id?: integer, contact_field_answer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/add/ticket/comment` — Tool to add a comment to an existing ticket in RepairShopr. Use when you need to add notes, updates, or responses to a ticket. Requires Tickets - Edit permission. Single-Customer Users can only access
  - body: { id: integer, body: string, tech?: string, hidden?: boolean, subject: string, sms_body?: string, do_not_email?: boolean }
- `POST https://api.mcp.ai/api/repairshopr/add/ticket/line/item` — Tool to add a line item to an existing ticket in RepairShopr. Use when you need to add products, services, or charges to a ticket. Requires Tickets - Edit permission. Single-customer users can only ac
  - body: { id: integer, name: string, taxable?: boolean, quantity?: number, upc_code?: string, price_cost?: number, product_id?: integer, description: string, price_retail?: number }
- `POST https://api.mcp.ai/api/repairshopr/charge/ticket/timer` — Tool to charge a timer entry for a specific ticket. Use when a timer entry needs to be converted to a billable line item on the ticket. Requires 'Ticket Timers - Overview' permission. The timer entry 
  - body: { id: integer, timer_entry_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/convert/estimate/to/invoice` — Tool to convert an existing estimate to an invoice in RepairShopr. Use when you have an approved estimate that needs to be billed. Requires the estimate ID and appropriate permissions ("Estimates - Vi
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/create/appointment/type` — Tool to create a new appointment type in RepairShopr. Use when defining appointment categories with specific location settings. Requires Global Admin permission.
  - body: { name: string, location_type: string|integer, email_instructions?: string, location_hard_code?: string }
- `POST https://api.mcp.ai/api/repairshopr/create/canned/response` — Tool to create a new Canned Response. Use when you need to add a pre-formatted response template for tickets. Requires 'Ticket Canned Responses - Manage' permission.
  - body: { body: string, title: string, subject?: string, canned_response_category_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/create/contact` — Tool to create a new contact associated with a customer. Use when you need to add a contact record to a customer account. Requires 'Customers - Edit' permission.
  - body: { zip?: string, city?: string, name?: string, email?: string, notes?: string, phone?: string, state?: string, mobile?: string, address1?: string, address2?: string, customer_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/create/contract` — Tool to create a new contract for a customer. Use when you need to establish a service contract with specified terms and conditions. Requires Contracts - Edit permission.
  - body: { name?: string, sla_id?: integer, status?: string, end_date?: string, likelihood?: integer, start_date?: string, customer_id: integer, description?: string, apply_to_all?: boolean, contract_amount?: string, primary_contact?: string }
- `POST https://api.mcp.ai/api/repairshopr/create/invoice/line/item` — Tool to create a new line item on an existing invoice in RepairShopr. Use when adding products or services to an invoice that already exists. Required permission: Invoices - Edit.
  - body: { id: integer, cost?: number, item?: string, name?: string, price?: number, taxable?: boolean, discount_dollars?: string, line_discount_percent?: integer }
- `POST https://api.mcp.ai/api/repairshopr/create/phone` — Tool to create a phone number for a customer. Use when you need to add a new phone number record to a customer's profile. Requires Customers - Edit permission. Single-Customer Users can only access th
  - body: { label?: string, number: string, extension?: string, customer_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/create/portal/user` — Tool to create a portal user in RepairShopr. Use when you need to give a customer or contact access to the customer portal. Requires Global Admin permission.
  - body: { email: string, password: string, contact_id?: integer, customer_id?: integer, portal_group_id?: integer, password_confirmation: string }
- `POST https://api.mcp.ai/api/repairshopr/create/product/serial` — Tool to create a product serial for a specific product. Use when you need to add a serial number to track individual product instances.
  - body: { condition?: string, product_id: integer, serial_number: string, price_cost_cents?: integer, price_retail_cents?: integer }
- `POST https://api.mcp.ai/api/repairshopr/create/rmm/alert` — Tool to create an RMM Alert. Use when you need to register a new monitoring alert for an asset or customer. Requires 'RMM Alerts - Create' permission. Single-customer users can only create alerts for 
  - body: { status?: string, asset_id?: integer, resolved?: boolean, properties?: object, customer_id?: integer, description?: string }
- `POST https://api.mcp.ai/api/repairshopr/create/schedule` — Tool to create a recurring invoice schedule. Use when setting up automated invoicing for a customer at regular intervals. Requires Recurring Invoices - New permission.
  - body: { name: string, paused?: boolean, next_run: string, frequency: string, charge_mop?: boolean, snail_mail?: boolean, customer_id: integer, email_customer?: boolean, invoice_unbilled_ticket_charges?: boolean }
- `POST https://api.mcp.ai/api/repairshopr/create/ticket` — Tool to create a new ticket in RepairShopr. Use when you need to create a support ticket for a customer. Requires customer_id. Single-customer users can only access their own tickets.
  - body: { end_at?: string, number?: string, sla_id?: integer, status?: string, subject?: string, user_id?: integer, due_date?: string, priority?: string, start_at?: string, tag_list?: string[], asset_ids?: integer[], contact_id?: integer, properties?: object, customer_id: integer, location_id?: integer, problem_type?: string, signature_data?: string, signature_name?: string, ticket_type_id?: integer, outtake_form_data?: string, outtake_form_date?: string, outtake_form_name?: string, comments_attributes?: object[] }
- `POST https://api.mcp.ai/api/repairshopr/create/ticket/timer` — Tool to create a ticket timer entry for a specific ticket in RepairShopr. Use when you need to log time spent on a ticket. Requires Ticket Timers - Overview permission.
  - body: { id: integer, notes?: string, end_at?: string, user_id?: integer, start_at: string, product_id?: integer, duration_minutes?: integer }
- `POST https://api.mcp.ai/api/repairshopr/create/vendor` — Tool to create a new vendor. Use when you need to add a vendor record with contact details and information. Required permission: Vendors - New.
  - body: { zip?: string, city?: string, name?: string, email?: string, notes?: string, phone?: string, state?: string, address?: string, website?: string, rep_last_name?: string, account_number?: string, rep_first_name?: string }
- `POST https://api.mcp.ai/api/repairshopr/create/wiki/page` — Tool to create a Wiki Page in RepairShopr. Use when you need to add documentation or knowledge base content. Requires Documentation - Create permission.
  - body: { body: string, name: string, slug?: string, asset_id?: integer, visibility?: string, customer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/appointment` — Tool to delete a specific appointment by its ID. Use when an appointment is canceled and needs removal permanently.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/appointment/type` — Tool to delete an Appointment Type by ID. Use when an appointment type is no longer needed and requires permanent removal. Requires Global Admin permission.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/canned/response` — Tool to delete a specific canned response by ID. Use when a canned response template is no longer needed and should be permanently removed. Required permission: Ticket Canned Responses - Manage.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/contact` — Tool to delete a specific contact by ID. Use when you need to permanently remove a contact record. Requires permission: Customers - Edit. Single-Customer Users can only access own contacts.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/contract` — Tool to delete a contract by its unique ID. Use when a contract needs to be permanently removed from the system. Required permission: Contracts - Delete.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/customer` — Tool to delete a specific customer by ID. Use after confirming the customer ID when you need to remove a customer record permanently.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/estimate` — Permanently deletes an estimate from RepairShopr by its unique ID. Use this action when you need to remove an estimate that is no longer needed, was created in error, or has been replaced. The deletio
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/estimate/line/item` — Tool to delete a line item from an estimate in RepairShopr. Use when you need to remove a specific product or service entry from an estimate. Required permission: Estimates - Edit. The API returns the
  - body: { id: integer, line_item_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/invoice` — Tool to delete a specific invoice by ID. Use when you need to remove an invoice permanently after confirming it's no longer needed. Ensure no dependent records require it before running.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/invoice/line/item` — Tool to delete a specific line item from an invoice by invoice ID and line item ID. Use when you need to remove an individual line item from an existing invoice.
  - body: { id: integer, line_item_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/phone` — Tool to delete a specific phone by ID for a given customer. Use when you need to remove a phone number record permanently. Requires Customers - Edit permission.
  - body: { id: integer, customer_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/portal/user` — Tool to permanently delete a portal user by ID. Use when removing portal user access. Requires Global Admin permission to execute successfully.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/rmm/alert` — Tool to delete/clear an RMM alert by its ID. Use when an RMM alert needs to be cleared or removed. Requires 'RMM Alerts - Delete' permission. Single-customer users can only delete their own alerts.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/schedule` — Tool to delete a specific schedule by its ID. Use when a recurring invoice schedule needs to be permanently removed. Required permission: Recurring Invoices - Delete.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/ticket` — Tool to delete a specific ticket by its ID. Use when a ticket needs to be permanently removed. Requires 'Tickets - Delete' permission. Single-Customer Users can only delete their own tickets.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/ticket/timer` — Tool to delete a specific ticket timer entry by its ID. Use when a timer entry needs to be removed from a ticket. Required permission: Ticket Timers - Overview.
  - body: { id: integer, timer_entry_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/delete/wiki/page` — Tool to delete a Wiki Page by its ID. Use when a wiki page needs to be permanently removed. Required permission: Documentation - Delete.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/email/estimate` — Tool to send an estimate to a customer via email. Use when you need to email an existing estimate to the associated customer.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/email/invoice` — Tool to send an invoice to a customer via email. Use when you need to email an existing invoice to the associated customer. Requires the invoice ID.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/appointment` — Tool to retrieve details of a specific appointment by its ID. Use when you need exact details of an appointment by ID.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/appointment/type` — Tool to retrieve details of a specific appointment type by ID. Use when you need to fetch appointment type configuration including name, location settings, and email instructions. Requires Global Admi
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/appointments` — Retrieves a list of appointments from RepairShopr. Supports filtering by date range and user assignment, with pagination for large result sets. Each appointment includes full details such as summary, 
  - body: { mine?: boolean, page?: integer, date_to?: string, date_from?: string }
- `POST https://api.mcp.ai/api/repairshopr/get/asset` — Tool to retrieve details of a specific asset by its ID. Use when you need to confirm asset details after obtaining its ID. Requires Assets - View Details permission.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/assets` — Tool to retrieve a paginated list of assets. Use when you need to list or search assets by SNMP status, customer, asset type, or query after authenticating. Returns 25 items per page.
  - body: { page?: integer, query?: string, customer_id?: integer, snmp_enabled?: boolean, asset_type_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/caller/id` — Tool to retrieve caller identification information based on a phone number. Use when you need to identify a caller by their phone number and check associated ticket status.
  - body: { did: string, outbound?: boolean }
- `POST https://api.mcp.ai/api/repairshopr/get/canned/response/setting` — Tool to retrieve settings for Canned Responses. Use when you need to get available categories and subjects for canned responses. Requires 'Ticket Canned Responses - Manage' permission. Single-Customer
- `POST https://api.mcp.ai/api/repairshopr/get/contact` — Tool to retrieve a specific contact by ID. Use when you need to fetch detailed information about a single contact. Requires 'Customers - View Detail' permission.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/contacts` — Tool to retrieve a paginated list of contacts. Use when you need to fetch contacts optionally filtered by customer. Returns up to 50 contacts per page.
  - body: { page?: integer, customer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/contract` — Tool to retrieve details of a specific contract by ID. Use when you need contract information including terms, dates, and status. Requires Contracts - Edit permission.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/customer` — Tool to retrieve details of a specific customer by ID. Use after confirming the customer exists. Example: "Get customer details for ID 123".
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/customer/payment/profiles` — Tool to retrieve a paginated list of payment profiles for a specific customer. Use when you need to view saved payment methods for a customer.
  - body: { customer_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/customers` — Tool to retrieve a list of customers. Use when you need to search or filter customers with pagination. Returns up to 25 results per page.
  - body: { id?: integer[], page?: integer, sort?: string, email?: string, query?: string, not_id?: integer[], lastname?: string, firstname?: string, business_name?: string, include_disabled?: boolean }
- `POST https://api.mcp.ai/api/repairshopr/get/customers/autocomplete` — Tool to retrieve a list of customers for autocomplete query. Use when you need to search for customers to populate autocomplete suggestions or dropdown menus. Returns customers matching the search que
  - body: { query?: string }
- `POST https://api.mcp.ai/api/repairshopr/get/employee/time/clock` — Tool to retrieve the last time clock entry for a specific user. Use when needing the most recent clock-in/out. Example: "Get the latest time clock entry for user 5".
  - body: { user_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/estimate` — Tool to retrieve details of a specific estimate by ID. Use when you need exact details of an estimate by ID.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/estimates` — Retrieves a paginated list of estimates from RepairShopr. Returns estimate details including ID, number, customer information, status, amounts (subtotal, tax, total), and timestamps. Use this action t
  - body: { page?: integer, per_page?: integer, customer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/invoice` — Tool to retrieve details of a specific invoice by ID. Use after confirming the invoice exists. Example: "Get invoice details for ID 456".
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/invoice/ticket` — Tool to retrieve the associated ticket for a specific invoice. Use when you need ticket details linked to an invoice. Requires "Invoices - View Details" and "Tickets - View Details" permissions.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/invoices` — Tool to retrieve a paginated list of invoices. Use when you need to list invoices, optionally filtered by payment status, ticket association, or update date. Returns up to 25 invoices per page.
  - body: { page?: integer, paid?: boolean, unpaid?: boolean, ticket_id?: integer, since_updated_at?: string }
- `POST https://api.mcp.ai/api/repairshopr/get/latest/customer` — Tool to retrieve the most recently created customer. Use when you need to access the latest customer record without knowing their ID. Requires Customers - Edit permission.
- `POST https://api.mcp.ai/api/repairshopr/get/lead` — Tool to retrieve details of a specific lead by its ID. Use when you need to inspect a single lead after obtaining its ID. Example: "Get lead details for ID 123".
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/leads` — Tool to retrieve a paginated list of leads. Use when you need to browse or filter potential customers. Returns up to 25 leads per page.
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/me` — Tool to retrieve information about the currently authenticated user. Use when you need to verify authentication, get the current user's details, or check their permissions across different modules.
- `POST https://api.mcp.ai/api/repairshopr/get/payment` — Tool to retrieve details of a specific payment by ID. Use after obtaining the payment ID. Example: "Get payment details for ID 123".
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/payments` — Tool to retrieve a paginated list of payments. Use when you need to view or search payment records, with optional filtering by query or pagination.
  - body: { page?: integer, query?: string }
- `POST https://api.mcp.ai/api/repairshopr/get/product` — Retrieves comprehensive details for a specific product by its unique ID. Use this action when you need detailed product information including pricing, inventory levels, category, and other metadata. R
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/product/by/barcode` — Retrieves product details by searching for a specific barcode (UPC code). Use this action when you have a product's barcode and need to look up its full details including pricing, inventory, and metad
  - body: { barcode: string }
- `POST https://api.mcp.ai/api/repairshopr/get/product/serials` — Tool to retrieve all serial numbers for a specific product. Use when you need to list serials by product ID after confirming the product exists.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/products` — Retrieve a list of products from RepairShopr with optional filtering, searching, and sorting. All filters are optional - call without parameters to get all products. Results are paginated; use the 'me
  - body: { id?: integer[], sku?: string, name?: string, page?: integer, sort?: string, query?: string, id_not?: integer[], upc_code?: string, category_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/products/categories` — Retrieve all product categories from RepairShopr. Returns a list of categories with their IDs, names, descriptions, and hierarchical relationships. Use this to discover available categories for organi
- `POST https://api.mcp.ai/api/repairshopr/get/purchase/order` — Tool to retrieve details of a specific purchase order by ID. Use when you need to view purchase order details. Requires Purchase Orders - View Details permission.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/rmm/alert` — Tool to retrieve details of an RMM Alert by its ID. Use when you need to check the status or details of a specific RMM alert. Requires 'RMM Alerts - List' permission. Single-customer users can only ac
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/schedule` — Tool to retrieve a specific schedule by ID. Use when you need to fetch detailed information about a recurring invoice schedule. Requires Recurring Invoices - List permission.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/settings` — Tool to retrieve account settings for the RepairShopr instance. Use when you need to access system configuration, preferences, or account-level settings.
- `POST https://api.mcp.ai/api/repairshopr/get/settings/printing` — Tool to retrieve printing settings configuration. Use when you need to get the messaging channel ID or registered printers for the account.
- `POST https://api.mcp.ai/api/repairshopr/get/settings/tabs` — Tool to retrieve the tabs settings configuration. Use when you need to determine which tabs (features) are enabled in the RepairShopr system. Returns boolean flags for each available tab, indicating w
- `POST https://api.mcp.ai/api/repairshopr/get/ticket` — Tool to retrieve details of a specific ticket by its ID. Use when you need full ticket information after obtaining its ID.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/tickets/settings` — Tool to retrieve tickets settings and configuration. Use when you need to obtain available ticket statuses, appointment types, users for assignment, worksheet templates, or other ticket-related config
- `POST https://api.mcp.ai/api/repairshopr/get/user` — Retrieve detailed information about a specific user (staff/technician) by their unique ID. Returns user details including full name, email, group membership, admin status, and timestamps. Use this whe
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/user/device` — Tool to retrieve details of a specific user device by its UUID. Use when you need to fetch information about a user's device.
  - body: { id: string }
- `POST https://api.mcp.ai/api/repairshopr/get/users` — Retrieves a list of all users (staff members and technicians) in the RepairShopr system. Use this action when you need to: - List all available staff members and technicians - Map user IDs to names fo
- `POST https://api.mcp.ai/api/repairshopr/get/vendor` — Tool to retrieve details of a specific vendor by ID. Use after confirming the vendor exists. Required permission: Vendors - View Details.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/get/wiki/page` — Tool to retrieve a Wiki Page by its ID. Use when you need to view documentation or knowledge base content. Required permission: Documentation - Allow Usage.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/appointment/types` — Tool to retrieve a paginated list of all appointment types. Use when you need to view available appointment type configurations. Requires Global Admin permission.
- `POST https://api.mcp.ai/api/repairshopr/list/canned/responses` — Tool to retrieve a list of Canned Responses with optional search query. Use when you need to find pre-formatted response templates for tickets. Requires 'Ticket Canned Responses - Manage' permission.
  - body: { query?: string }
- `POST https://api.mcp.ai/api/repairshopr/list/contracts` — Tool to retrieve a paginated list of contracts. Use when you need to list contracts with details including terms, dates, and status. Returns up to 50 contracts per page. Requires Contracts - List/Sear
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/items` — Tool to retrieve a paginated list of Part Orders. Use when you need to list part orders, optionally filtered by completion status or search query. Returns up to 50 items per page. Requires Parts Order
  - body: { page?: integer, query?: string, completed?: boolean }
- `POST https://api.mcp.ai/api/repairshopr/list/line/items` — Tool to retrieve a paginated list of Line Items from RepairShopr. Use when you need to list line items across invoices or estimates, with optional filtering by specific invoice/estimate ID or to get a
  - body: { invoice_id?: integer, estimate_id?: integer, invoice_id_not_null?: boolean, estimate_id_not_null?: boolean }
- `POST https://api.mcp.ai/api/repairshopr/list/new/ticket/forms` — Tool to retrieve a paginated list of Ticket Forms. Use when you need to view available ticket form configurations for ticket workflows. Requires permission: Ticket Workflows - Manage.
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/payment/methods` — Tool to retrieve a paginated list of payment methods. Use when you need to view available payment methods in the system. All users except Single Customer Users may use this action.
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/phones` — Tool to retrieve a paginated list of phone numbers for a specific customer. Use when you need to view all phone contacts for a customer. Requires Customers - View Detail permission. Single-Customer Us
  - body: { page?: integer, customer_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/portal/users` — Tool to retrieve a paginated list of Portal Users. Use when you need to search or filter portal users by customer or email. Returns up to 100 results per page. Requires Global Admin permission.
  - body: { page?: integer, email?: string, customer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/purchase/orders` — Tool to retrieve a paginated list of purchase orders. Use when you need to list all purchase orders in the system. Returns up to 20 purchase orders per page. Requires Purchase Orders - List/Search per
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/rmm/alerts` — Tool to retrieve a paginated list of RMM Alerts. Use when you need to browse or filter RMM alerts by status. Returns up to 25 alerts per page. Requires 'RMM Alerts - List' permission. Single-customer 
  - body: { page?: integer, status?: string }
- `POST https://api.mcp.ai/api/repairshopr/list/schedules` — Tool to retrieve a paginated list of invoice schedules. Use when you need to list recurring invoice schedules, optionally filtered by customer. Returns up to 25 schedules per page. Requires Recurring 
  - body: { page?: integer, customer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/ticket/comments` — Tool to retrieve comments for a specific ticket by its ID. Use when you need to view all comments or filter comments by date. Requires Tickets - View Details or Tickets - View 'Their Ticket' Details p
  - body: { id: integer, page?: integer, sort_by?: string, per_page?: integer, created_after?: string, updated_after?: string, comment_format?: string, created_before?: string, sort_direction?: string, updated_before?: string }
- `POST https://api.mcp.ai/api/repairshopr/list/ticket/timers` — Tool to retrieve a paginated list of Ticket Timers from RepairShopr. Use when you need to list timer entries, optionally filtered by creation date range. Returns up to 25 timer entries per page. Requi
  - body: { page?: integer, created_at_gt?: string, created_at_lt?: string }
- `POST https://api.mcp.ai/api/repairshopr/list/tickets` — Tool to retrieve a paginated list of tickets. Use when you need to list or search tickets with optional filtering by customer, status, date ranges, or assigned user. Returns up to 25 tickets per page.
  - body: { mine?: boolean, page?: integer, query?: string, number?: string, status?: string, user_id?: integer, contact_id?: integer, customer_id?: integer, all_comments?: boolean, created_after?: string, comment_format?: string, resolved_after?: string, since_updated_at?: string, ticket_search_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/timelogs` — Tool to retrieve a paginated list of timelogs. Returns timelogs for any/all users if you have 'Timelogs - Manage' permission, otherwise results are scoped to the current user. Use when you need to vie
  - body: { user_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/vendors` — Tool to retrieve a paginated list of vendors. Use when you need to browse or search through vendors. Returns up to 100 results per page. Required permission: Vendors - List.
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/wiki/pages` — Tool to retrieve a paginated list of Wiki Pages. Use when you need to browse or search documentation. Returns 100 results per page. Required permission: Documentation - Allow Usage.
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/repairshopr/list/worksheet/results` — Tool to retrieve a paginated list of Worksheet Results for a specific ticket. Use when you need to view worksheets/checklists completed on a ticket. Required permissions: "Tickets - View Details" or "
  - body: { page?: integer, ticket_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/mute/rmm/alert` — Tool to mute an RMM Alert by ID for a specified duration. Use when you need to temporarily silence an alert. Requires RMM Alerts - Clear/Manage permission. Single-Customer Users can only access their 
  - body: { id: integer, mute_for: string }
- `POST https://api.mcp.ai/api/repairshopr/post/appointment` — Tool to create a new appointment. Use after gathering summary and date range.
  - body: { end_at: string, all_day?: boolean, summary: string, user_id?: integer, location?: string, start_at: string, user_ids?: integer[], ticket_id?: integer, customer_id?: integer, description?: string, do_not_email?: boolean, email_customer?: boolean, appointment_type_id?: integer, appointment_duration?: string }
- `POST https://api.mcp.ai/api/repairshopr/post/asset` — Tool to create a new asset. Use when you need to register a device under a customer with either an existing or new asset type.
  - body: { name: string, properties?: object, customer_id: integer, asset_serial?: string, asset_type_id?: integer, asset_type_name?: string }
- `POST https://api.mcp.ai/api/repairshopr/post/customer` — Tool to create a new customer. Use when you need to add a customer record with contact details.
  - body: { zip?: string, city?: string, email?: string, phone?: string, state?: string, mobile?: string, address?: string, lastname?: string, address_2?: string, firstname?: string, business_name?: string }
- `POST https://api.mcp.ai/api/repairshopr/post/estimate` — Tool to create a new estimate. Use when you have final customer details and line items ready to generate an estimate in RepairShopr.
  - body: { date: string, name?: string, note?: string, number?: string, status?: string, ticket_id?: integer, created_at?: string, line_items?: object[], updated_at?: string, customer_id: integer, location_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/post/invoice` — Create a new invoice for a customer in RepairShopr. Requires a valid customer_id, invoice date, and due date. Optionally include line items with SKU/item codes, quantities, prices, and tax settings. S
  - body: { date: string, note?: string, number?: string, due_date: string, po_number?: string, ticket_id?: integer, contact_id?: integer, line_items?: object[], customer_id: integer, location_id?: integer, hardwarecost?: number }
- `POST https://api.mcp.ai/api/repairshopr/post/lead` — Tool to create a new lead. Use when you need to add a potential customer to the system.
  - body: { zip?: string, city?: string, email?: string, phone?: string, state?: string, mobile?: string, address?: string, converted?: boolean, last_name?: string, first_name?: string, business_name?: string }
- `POST https://api.mcp.ai/api/repairshopr/post/payment` — Create a payment record in RepairShopr. Records a payment against an invoice for a customer. Requires customer_id and amount_cents. Either invoice_id or invoice_number must be provided to link the pay
  - body: { cvv?: string, ref_num?: string, lastname?: string, date_year?: string, firstname?: string, date_month?: string, invoice_id?: integer, address_zip?: string, customer_id: integer, register_id?: integer, address_city?: string, amount_cents: integer, address_street?: string, apply_payments?: object, invoice_number?: string, payment_method?: string, signature_data?: string, signature_date?: string, signature_name?: string, credit_card_number?: string }
- `POST https://api.mcp.ai/api/repairshopr/post/product` — Tool to create a new product in inventory. Use when you need to add an item with price and details to your RepairShopr catalog.
  - body: { sku?: string, cost?: number, name: string, photo?: string, price: number, active?: boolean, weight?: number, taxable?: boolean, quantity?: integer, upc_code?: string, serialized?: boolean, vendor_ids?: integer[], category_id?: integer, description: string, manufacturer?: string, model_number?: string }
- `POST https://api.mcp.ai/api/repairshopr/post/product/photo` — Tool to add photo(s) to a specific product. Use when you need to attach one or more images to a product after confirming the product ID.
  - body: { id: integer, files: object[] }
- `POST https://api.mcp.ai/api/repairshopr/post/purchase/order` — Tool to create a new purchase order for a vendor. Use when you need to order inventory or supplies from a vendor in RepairShopr. Requires Purchase Orders - Edit permission.
  - body: { user_id?: integer, due_date?: string, paid_date?: string, vendor_id: integer, order_date?: string, location_id?: integer, other_cents?: integer, expected_date?: string, general_notes?: string, shipping_cents?: integer, shipping_notes?: string, discount_percent?: integer, delivery_tracking?: string }
- `POST https://api.mcp.ai/api/repairshopr/post/user/device` — Tool to create a new user device. Use when you need to register a device for a user in RepairShopr.
  - body: { model?: string, device_name?: string, device_uuid?: string, screen_size?: string, system_name?: string, registration_token_gcm?: string }
- `POST https://api.mcp.ai/api/repairshopr/print/estimate` — Tool to queue a print job for an estimate. Use when you need to send an existing estimate to the printer queue.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/print/invoice` — Tool to queue a print job for an invoice in RepairShopr. Use when you need to send an invoice to the print queue. Requires Invoices - View Details permission.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/print/ticket` — Tool to print a ticket by its ID. Use when you need to generate a printable version of a ticket. Requires 'Tickets - View Details' permission. Single-Customer Users can only print their own tickets.
  - body: { id: integer }
- `POST https://api.mcp.ai/api/repairshopr/process/ticket/form` — Tool to process a ticket form submission and create a new ticket in RepairShopr. Use when you have a ticket form ID and need to submit customer details, ticket information, and optionally schedule an 
  - body: { id: integer, appointments?: object, ticket_details?: object, customer_details?: object }
- `POST https://api.mcp.ai/api/repairshopr/receive/purchase/order` — Tool to mark a purchase order as received in RepairShopr. Use when inventory has been delivered and needs to be received into stock. Can receive all items or a specific line item. Note: Products marke
  - body: { id: integer, line_item_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/remove/ticket/line/item` — Tool to delete a line item from an existing ticket in RepairShopr. Use when you need to remove a product, service, or charge from a ticket. Requires Tickets - Edit permission. Single-customer users ca
  - body: { id: integer, ticket_line_item_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/search/all` — Tool to search across all RepairShopr entities including customers, contacts, assets, leads, invoices, estimates, tickets, products, purchase orders, vendors, reports, and wiki pages. Use when you nee
  - body: { query: string }
- `POST https://api.mcp.ai/api/repairshopr/update/appointment` — Tool to update an existing appointment by ID. Use when you need to modify appointment details like time, description, or attendees.
  - body: { id: integer, end_at?: string, all_day?: boolean, summary?: string, user_id?: integer, location?: string, start_at?: string, user_ids?: integer[], ticket_id?: integer, customer_id?: integer, description?: string, email_customer?: boolean, appointment_type_id?: integer, appointment_duration?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/appointment/type` — Tool to update an existing appointment type by ID. Use when modifying appointment type configuration including name, location settings, and email instructions. Requires Global Admin permission.
  - body: { id: integer, name?: string, location_type?: string|integer, email_instructions?: string, location_hard_code?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/asset` — Tool to update an existing asset by its ID. Use when you need to modify asset details such as name, serial number, type, or custom properties. Requires Assets - Edit permission.
  - body: { id: integer, name?: string, properties?: object, customer_id?: integer, asset_serial?: string, asset_type_id?: integer, asset_type_name?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/canned/response` — Tool to update an existing Canned Response by ID. Use when you need to modify the title, body, subject, or category of a pre-formatted response template. Required permission: Ticket Canned Responses -
  - body: { id: integer, body?: string, title?: string, subject?: string, canned_response_category_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/contact` — Tool to update an existing contact. Use when you need to modify contact information for an existing contact record. Requires 'Customers - Edit' permission. Single-Customer Users can only access their 
  - body: { id: integer, zip?: string, city?: string, name?: string, email?: string, notes?: string, phone?: string, state?: string, title?: string, mobile?: string, address1?: string, address2?: string, customer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/contract` — Tool to update an existing contract by ID. Use when you need to modify contract terms, status, or other details. Requires Contracts - Edit permission.
  - body: { id: integer, name?: string, sla_id?: integer, status?: string, end_date?: string, likelihood?: integer, start_date?: string, customer_id: integer, description?: string, apply_to_all?: boolean, contract_amount?: string, primary_contact?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/customer` — Tool to update an existing customer by ID. Use when you need to modify customer details such as contact information, address, or preferences. Single-customer users can only access their own customer r
  - body: { id: integer, zip?: string, city?: string, email?: string, notes?: string, phone?: string, state?: string, mobile?: string, address?: string, consent?: object, get_sms?: boolean, opt_out?: boolean, lastname?: string, no_email?: boolean, address_2?: string, firstname?: string, properties?: object, get_billing?: boolean, get_reports?: boolean, referred_by?: string, tax_rate_id?: integer, business_name?: string, get_marketing?: boolean, invoice_term_id?: integer, ref_customer_id?: integer, invoice_cc_emails?: string, notification_email?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/estimate` — Tool to update an existing estimate by ID. Use when you need to modify estimate details such as status, notes, customer, or other fields. Requires Estimates - Edit permission.
  - body: { id: integer, date?: string, name?: string, note?: string, number?: string, status?: string, ticket_id?: integer, customer_id?: integer, location_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/estimate/line/item` — Tool to update an existing line item on an estimate in RepairShopr. Use when you need to modify products or services on an estimate. Required permission: Estimates - Edit.
  - body: { id: integer, cost?: number, item?: string, name?: string, price?: number, taxable?: boolean, user_id?: integer, position?: integer, quantity?: number, tax_note?: string, upc_code?: string, product_id?: integer, tax_rate_id?: integer, line_item_id: integer, discount_percent?: number, product_category?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/invoice` — Tool to update an existing invoice by ID. All provided parameters overwrite existing values. Use when you need to modify invoice details such as notes, dates, amounts, or customer information.
  - body: { id: integer, tax?: string, date?: string, note?: string, total?: string, number?: string, pdf_url?: string, due_date?: string, subtotal?: string, po_number?: string, ticket_id?: integer, contact_id?: integer, created_at?: string, updated_at?: string, customer_id?: integer, location_id?: integer, hardwarecost?: number, customer_business_then_name?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/invoice/line/item` — Tool to update an existing line item on an invoice in RepairShopr. Use when modifying the properties of a line item that already exists on an invoice. All parameters overwrite existing values.
  - body: { id: integer, cost?: number, item?: string, name?: string, price?: number, taxable?: boolean, line_item_id: integer, discount_dollars?: string, line_discount_percent?: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/lead` — Tool to update an existing lead by ID. Use when you need to modify lead details such as status, contact information, or notes.
  - body: { id: integer, zip?: string, city?: string, email?: string, phone?: string, state?: string, mobile?: string, status?: string, address?: string, user_id?: integer, disabled?: boolean, converted?: boolean, last_name?: string, ticket_id?: integer, contact_id?: integer, first_name?: string, likelihood?: integer, mailbox_id?: integer, properties?: object, customer_id?: integer, location_id?: integer, hidden_notes?: string, message_read?: boolean, business_name?: string, from_check_in?: boolean, signature_data?: string, signature_date?: string, signature_name?: string, ticket_subject?: string, ticket_type_id?: integer, appointment_time?: string, ticket_properties?: object, ticket_description?: string, appointment_type_id?: integer, ticket_problem_type?: string, customer_purchase_id?: integer, opportunity_start_date?: string, opportunity_amount_dollars?: number }
- `POST https://api.mcp.ai/api/repairshopr/update/phone` — Tool to update an existing phone number by ID. Use when you need to modify phone details for a customer's existing phone record. Requires Customers - Edit permission. Single-Customer Users can only ac
  - body: { id: integer, label?: string, number?: string, extension?: string, customer_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/portal/user` — Tool to update an existing Portal User by ID. Use when you need to modify portal user details such as email, password, or associated customer/contact. Requires Global Admin permission.
  - body: { id: integer, email?: string, password?: string, contact_id?: integer, customer_id?: integer, portal_group_id?: integer, password_confirmation?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/product` — Tool to update an existing product by ID. Use when you need to modify product details such as name, description, pricing, inventory levels, or other attributes.
  - body: { id: integer, name?: string, notes?: string, taxable?: boolean, disabled?: boolean, quantity?: integer, upc_code?: string, warranty?: string, condition?: string, price_cost?: number, qb_item_id?: integer, reorder_at?: integer, serialized?: boolean, sort_order?: integer, vendor_ids?: integer[], description?: string, tax_rate_id?: integer, category_ids?: integer[], price_retail?: number, maintain_stock?: boolean, price_wholesale?: number, discount_percent?: number, product_category?: string, physical_location?: string, desired_stock_level?: integer, warranty_template_id?: integer, product_skus_attributes?: object[] }
- `POST https://api.mcp.ai/api/repairshopr/update/product/serial` — Tool to update an existing product serial by ID. Use when you need to modify serial number details, pricing, or condition for a product. Required permission: Products - Edit.
  - body: { id: integer, notes?: string, condition?: string, product_id: integer, serial_number?: string, price_cost_cents?: integer, price_retail_cents?: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/schedule` — Tool to update an existing invoice schedule by ID. Use when modifying recurring invoice settings such as frequency, name, or payment options. Requires Recurring Invoices - Edit permission.
  - body: { id: integer, name?: string, paused?: boolean, next_run?: string, frequency?: string, charge_mop?: boolean, snail_mail?: boolean, customer_id?: integer, email_customer?: boolean, invoice_unbilled_ticket_charges?: boolean }
- `POST https://api.mcp.ai/api/repairshopr/update/schedule/line/item` — Tool to update a line item in an invoice schedule. Use when modifying existing recurring charges or one-time items in a schedule. Required permission: Recurring Invoices - Edit.
  - body: { id: integer, name?: string, taxable?: boolean, user_id?: integer, position?: integer, quantity?: number, cost_cents?: integer, product_id?: integer, description?: string, retail_cents?: integer, asset_type_id?: integer, one_time_charge?: boolean, recurring_type_id?: string, contact_field_type_id?: integer, saved_asset_search_id?: integer, schedule_line_item_id: integer, contact_field_answer_id?: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/ticket` — Tool to update an existing ticket by ID in RepairShopr. Use when you need to modify ticket details such as status, priority, subject, or other fields. Requires 'Tickets - Edit' permission. Single-Cust
  - body: { id: integer, end_at?: string, number?: string, sla_id?: integer, status?: string, subject?: string, user_id?: integer, due_date?: string, priority?: string, start_at?: string, tag_list?: string[], asset_ids?: integer[], contact_id?: integer, properties?: object, customer_id?: integer, location_id?: integer, problem_type?: string, signature_data?: string, signature_name?: string, ticket_type_id?: integer, outtake_form_data?: string, outtake_form_date?: string, outtake_form_name?: string, comments_attributes?: object[] }
- `POST https://api.mcp.ai/api/repairshopr/update/ticket/line/item` — Tool to update an existing line item on a ticket in RepairShopr. Use when you need to modify products, services, or charges already added to a ticket. Requires Tickets - Edit permission. Single-custom
  - body: { id: integer, name?: string, taxable?: boolean, quantity?: number, upc_code?: string, price_cost?: number, product_id?: integer, description?: string, price_retail?: number, ticket_line_item_id: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/ticket/timer` — Tool to update an existing ticket timer entry in RepairShopr. Use when you need to modify time logged on a ticket. Requires Ticket Timers - Overview permission.
  - body: { id: integer, notes?: string, user_id?: integer, start_at?: string, product_id?: integer, timer_entry_id: integer, duration_minutes?: integer }
- `POST https://api.mcp.ai/api/repairshopr/update/timelog` — Tool to update an existing timelog entry in RepairShopr. Use when you need to modify clock-in/out times, add or update notes, or record lunch breaks. Users with 'Timelogs - Manage' permission may upda
  - body: { id: integer, in_at?: string, lunch?: boolean, out_at?: string, in_note?: string, out_note?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/user/device` — Tool to update an existing user device by UUID. Use when you need to modify device information such as the GCM registration token.
  - body: { id: string, registration_token_gcm?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/vendor` — Tool to update an existing vendor by ID. Use when you need to modify vendor details such as contact information, address, or notes. Required permission: Vendors - Edit.
  - body: { id: integer, zip?: string, city?: string, name?: string, email?: string, notes?: string, phone?: string, state?: string, address?: string, website?: string, rep_last_name?: string, account_number?: string, rep_first_name?: string }
- `POST https://api.mcp.ai/api/repairshopr/update/wiki/page` — Tool to update an existing Wiki Page by ID. Use when you need to modify documentation or knowledge base content. Required permission: Documentation - Edit.
  - body: { id: integer, body?: string, name?: string, slug?: string, asset_id?: integer, visibility?: string, customer_id?: integer }

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

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