MCP-Server

shopmonkey

io.usefulapi/shopmonkey
Business & Betrieb Vertrieb & CRM Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Manages automotive repair customers, vehicles, work orders, parts inventory, service appointments, technicians, and workflow statuses.

shopmonkey_add_customer_email
Add an email to a customer
Add an email address to an existing customer, optionally as their primary address. Shopmonkey: POST /v3/customer/:id/email.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customerId', 'email'], 'properties': {'email': {'type': 'string', 'minLength': 3, 'description': 'The email address.'}, 'primary': {'type': 'boolean', 'description': "Make this the customer's primary email."}, 'customerId': {'type': 'string', 'minLength': 1, 'description': 'The customer id.'}, 'locationId': {'type': 'string', 'description': "The shop location id (see shopmonkey_get_current_user for the key's own location)."}, 'subscribed': {'type': 'boolean', 'description': 'Whether the customer receives messages at this address.'}}}
shopmonkey_create_appointment
Book an appointment
Book an appointment on the shop calendar, optionally for a customer, vehicle and order and assigned to technicians. Confirmation/reminder messages are only sent if you ask. Shopmonkey: POST /v3/appointment.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'startDate', 'endDate'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': "What the appointment is for, e.g. 'Oil change'."}, 'note': {'type': 'string', 'description': 'Notes for the appointment.'}, 'color': {'enum': ['aqua', 'black', 'blue', 'brown', 'gray', 'green', 'orange', 'purple', 'red', 'yellow'], 'type': 'string', 'default': 'blue', 'description': 'Calendar color. Default blue.'}, 'allDay': {'type': 'boolean', 'description': 'All-day appointment.'}, 'useSMS': {'type': 'boolean', 'description': 'Use SMS for confirmation/reminder.'}, 'endDate': {'type': 'string', 'description': 'End, ISO 8601 date-time.'}, 'orderId': {'type': 'string', 'description': 'A work order to link.'}, 'useEmail': {'type': 'boolean', 'description': 'Use email for confirmation/reminder.'}, 'startDate': {'type': 'string', 'description': 'Start, ISO 8601 date-time.'}, 'vehicleId': {'type': 'string', 'description': "The vehicle's id."}, 'customerId': {'type': 'string', 'description': "The customer's id."}, 'sendReminder': {'type': 'boolean', 'description': 'Send the customer a reminder before the appointment.'}, 'technicianIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User ids of the assigned technicians.'}, 'sendConfirmation': {'type': 'boolean', 'description': 'Send the customer a confirmation now.'}}}
shopmonkey_create_customer
Create a customer
Create a customer (a person) or a fleet account. Add an email afterwards with shopmonkey_add_customer_email. Shopmonkey: POST /v3/customer.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customerType'], 'properties': {'city': {'type': 'string', 'description': 'City.'}, 'note': {'type': 'string', 'description': 'Internal note on the customer.'}, 'state': {'type': 'string', 'description': 'State / province.'}, 'country': {'type': 'string', 'pattern': '^[A-Z]{2}$', 'description': 'ISO 3166-1 alpha-2 country code, e.g. US or CA.'}, 'website': {'type': 'string', 'description': 'Website.'}, 'address1': {'type': 'string', 'description': 'Street address, line 1.'}, 'address2': {'type': 'string', 'description': 'Street address, line 2.'}, 'lastName': {'type': 'string', 'description': 'Last name.'}, 'firstName': {'type': 'string', 'description': 'First name.'}, 'taxExempt': {'type': 'boolean', 'description': 'US tax exemption.'}, 'externalId': {'type': 'string', 'description': 'Your own id for this customer in another system.'}, 'locationId': {'type': 'string', 'description': "The shop location id (see shopmonkey_get_current_user for the key's own location)."}, 'postalCode': {'type': 'string', 'description': 'Postal / ZIP code.'}, 'companyName': {'type': 'string', 'description': 'Company name (for fleet / business customers).'}, 'customerType': {'enum': ['Customer', 'Fleet'], 'type': 'string', 'description': 'Customer (individual) or Fleet (business account).'}, 'discountPercent': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Default discount percent.'}, 'preferredLanguage': {'enum': ['en', 'en_US', 'fr_CA', 'es_MX'], 'type': 'string', 'description': 'en, en_US, fr_CA or es_MX.'}, 'preferredContactMethod': {'enum': ['SMS', 'Email', 'All'], 'type': 'string', 'description': 'SMS, Email or All.'}}}
shopmonkey_create_order
Create an order
Open a new work order (it starts as an estimate) for a customer and vehicle. Add services in the Shopmonkey UI. Shopmonkey: POST /v3/order.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Order name / title.'}, 'dueDate': {'type': 'string', 'description': 'When the vehicle is promised, ISO 8601 date-time.'}, 'complaint': {'type': 'string', 'description': "The customer's complaint (reason for visit)."}, 'vehicleId': {'type': 'string', 'description': 'The vehicle being worked on.'}, 'customerId': {'type': 'string', 'description': 'The customer the order is for.'}, 'locationId': {'type': 'string', 'description': "The shop location id (see shopmonkey_get_current_user for the key's own location)."}, 'recommendation': {'type': 'string', 'description': "The shop's recommendation."}, 'serviceWriterId': {'type': 'string', 'description': 'User id of the service writer.'}, 'workflowStatusId': {'type': 'string', 'description': 'Workflow status (board column) id — see shopmonkey_list_workflow_statuses.'}, 'purchaseOrderNumber': {'type': 'string', 'description': 'Customer PO number.'}}}
shopmonkey_create_vehicle
Create a vehicle
Create a vehicle, optionally attached to a customer. Shopmonkey: POST /v3/vehicle.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['size'], 'properties': {'vin': {'type': 'string', 'description': 'Vehicle identification number.'}, 'make': {'type': 'string', 'description': 'Make, e.g. Toyota.'}, 'note': {'type': 'string', 'description': 'Internal note on the vehicle.'}, 'size': {'enum': ['HeavyDuty', 'LightDuty', 'Other'], 'type': 'string', 'description': 'LightDuty (cars, light trucks), HeavyDuty, or Other.'}, 'unit': {'type': 'string', 'description': 'Fleet unit number.'}, 'year': {'type': 'integer', 'maximum': 2100, 'minimum': 1900, 'description': 'Model year.'}, 'color': {'enum': ['White', 'Silver', 'Gray', 'Black', 'Blue', 'Red', 'Brown', 'Burgundy', 'Tan', 'Gold', 'Green', 'Yellow', 'Orange', 'Pink', 'Purple', 'Other'], 'type': 'string', 'description': 'Vehicle color.'}, 'model': {'type': 'string', 'description': 'Model, e.g. Camry.'}, 'engine': {'type': 'string', 'description': 'Engine description.'}, 'mileage': {'type': 'number', 'minimum': 0, 'description': 'Current odometer reading.'}, 'submodel': {'type': 'string', 'description': 'Submodel / trim, e.g. LE.'}, 'customerId': {'type': 'string', 'description': "The owning customer's id."}, 'locationId': {'type': 'string', 'description': "The shop location id (see shopmonkey_get_current_user for the key's own location)."}, 'licensePlate': {'type': 'string', 'description': 'License plate.'}, 'licensePlateState': {'type': 'string', 'description': 'License plate state / province.'}}}
shopmonkey_find_customers_by_email
Find customers by email
Find the customers that own any of the given email addresses. Shopmonkey: POST /v3/customer/email/search.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['emails'], 'properties': {'emails': {'type': 'array', 'items': {'type': 'string', 'minLength': 3}, 'maxItems': 50, 'minItems': 1, 'description': 'Email addresses to look up.'}, 'excludeCustomerId': {'type': 'string', 'description': 'A customer id to leave out of the results.'}}}
shopmonkey_find_customers_by_phone
Find customers by phone number
Find the customers that own any of the given phone numbers — the usual way to identify a caller. Shopmonkey: POST /v3/customer/phone_number/search.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['phoneNumbers'], 'properties': {'phoneNumbers': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Phone numbers to look up.'}, 'excludeCustomerId': {'type': 'string', 'description': 'A customer id to leave out of the results.'}}}
shopmonkey_get_current_user
Get the current user
Fetch the user this API key acts as — id, name, company, default location and permissions. A cheap way to confirm the key works and to find your locationId. Shopmonkey: GET /v3/user/me.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
shopmonkey_get_customer
Get one customer
Fetch a single customer by id — contact details, emails, phone numbers, counts of vehicles/orders/appointments. Shopmonkey: GET /v3/customer/:id.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customerId'], 'properties': {'customerId': {'type': 'string', 'minLength': 1, 'description': 'The customer id.'}}}
shopmonkey_get_order
Get one order
Fetch a single work order by id — customer, vehicle, complaint, totals (parts/labor/tax in cents), payment state and profitability. Shopmonkey: GET /v3/order/:id.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orderId'], 'properties': {'orderId': {'type': 'string', 'minLength': 1, 'description': 'The order id.'}}}
shopmonkey_get_vehicle
Get one vehicle
Fetch a single vehicle by id, including its mileage and tire-pressure logs. Shopmonkey: GET /v3/vehicle/:id.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['vehicleId'], 'properties': {'vehicleId': {'type': 'string', 'minLength': 1, 'description': 'The vehicle id.'}}}
shopmonkey_list_canned_services
List canned services
List the shop's canned services (reusable job templates like 'Oil change') with their labor, parts and fees and total in cents. Shopmonkey: GET /v3/canned_service.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}}}
shopmonkey_list_customer_orders
List a customer's orders
List a customer's work orders (estimates, repair orders, invoices) — their service history. Shopmonkey: GET /v3/customer/:id/order.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customerId'], 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}, 'customerId': {'type': 'string', 'minLength': 1, 'description': 'The customer id.'}}}
shopmonkey_list_customer_vehicles
List a customer's vehicles
List the vehicles owned by a customer (year/make/model, VIN, plate, mileage). Shopmonkey: GET /v3/customer/:id/vehicle.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customerId'], 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}, 'customerId': {'type': 'string', 'minLength': 1, 'description': 'The customer id.'}}}
shopmonkey_list_orders
List orders
List work orders for the shop, paged. Each order carries its number, status flags (authorized, invoiced, paid), totals in cents, workflow status and assigned technicians. For one customer's orders use shopmonkey_list_customer_orders. Shopmonkey: GET /v3/order.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}}}
shopmonkey_list_order_services
List an order's services
List the services (jobs) on a work order with their line items — labor, parts, tires, fees, subcontracts — authorization status and totals. Shopmonkey: GET /v3/order/:orderId/service.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orderId'], 'properties': {'orderId': {'type': 'string', 'minLength': 1, 'description': 'The order id.'}}}
shopmonkey_list_users
List users
List the shop's users (service writers, technicians, admins) — the ids to use for technicians and service writers. Shopmonkey: GET /v3/user.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}}}
shopmonkey_list_workflow_statuses
List workflow statuses
List the workflow statuses (the columns of the shop's work-order board) with their position. Use the id to move an order with shopmonkey_update_order. Shopmonkey: GET /v3/workflow_status.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}}}
shopmonkey_search_appointments
Search appointments
Search the appointment calendar by date range, customer, order or technician. Returns appointments with their customer. Shopmonkey: POST /v3/appointment/search.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'sort': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort by start date. Default asc.'}, 'endTo': {'type': 'string', 'description': 'Appointments ending at or before this ISO 8601 date-time.'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}, 'endFrom': {'type': 'string', 'description': 'Appointments ending at or after this ISO 8601 date-time.'}, 'orderId': {'type': 'string', 'description': 'Only appointments linked to this order.'}, 'startTo': {'type': 'string', 'description': 'Appointments starting at or before this ISO 8601 date-time.'}, 'startFrom': {'type': 'string', 'description': 'Appointments starting at or after this ISO 8601 date-time.'}, 'customerId': {'type': 'string', 'description': "Only this customer's appointments."}, 'technicians': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only appointments assigned to these technician (user) ids.'}, 'includeUnassigned': {'type': 'boolean', 'description': 'With technicians, also include unassigned appointments.'}}}
shopmonkey_search_customers
Search customers
Search customers with a server-side filter, sort and paging. Returns customers with their emails and phone numbers. Shopmonkey: POST /v3/customer/search.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}, 'where': {'type': 'object', 'description': 'Filter object applied server-side, keyed by field name, e.g. {"lastName": "Smith"} or {"createdDate": {"gte": "2026-01-01"}}.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'orderBy': {'type': 'object', 'description': 'Sort instructions keyed by field name, e.g. {"createdDate": "desc"}.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'enum': ['asc', 'desc'], 'type': 'string'}}}}
shopmonkey_search_inventory_parts
Search inventory parts
Search the parts inventory — name, part number, SKU, quantity on hand/available/reserved, retail and wholesale cost in cents, bin location, brand and vendor. Filter e.g. {"sku": "ABC-123"}. Shopmonkey: POST /v3/inventory_part/search.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'skip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of records to skip, for paging (use with limit).'}, 'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum number of records to return.'}, 'where': {'type': 'object', 'description': 'Filter object applied server-side, keyed by field name, e.g. {"lastName": "Smith"} or {"createdDate": {"gte": "2026-01-01"}}.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'orderBy': {'type': 'object', 'description': 'Sort instructions keyed by field name, e.g. {"createdDate": "desc"}.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'enum': ['asc', 'desc'], 'type': 'string'}}}}
shopmonkey_update_customer
Update a customer
Update a customer's name, address, note or preferences. Only the fields you pass are sent. Shopmonkey: PUT /v3/customer/:id.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customerId'], 'properties': {'city': {'type': 'string', 'description': 'City.'}, 'note': {'type': 'string', 'description': 'Internal note on the customer.'}, 'state': {'type': 'string', 'description': 'State / province.'}, 'country': {'type': 'string', 'pattern': '^[A-Z]{2}$', 'description': 'ISO 3166-1 alpha-2 country code, e.g. US or CA.'}, 'website': {'type': 'string', 'description': 'Website.'}, 'address1': {'type': 'string', 'description': 'Street address, line 1.'}, 'address2': {'type': 'string', 'description': 'Street address, line 2.'}, 'lastName': {'type': 'string', 'description': 'Last name.'}, 'firstName': {'type': 'string', 'description': 'First name.'}, 'taxExempt': {'type': 'boolean', 'description': 'US tax exemption.'}, 'customerId': {'type': 'string', 'minLength': 1, 'description': 'The customer id.'}, 'externalId': {'type': 'string', 'description': 'Your own id for this customer in another system.'}, 'postalCode': {'type': 'string', 'description': 'Postal / ZIP code.'}, 'companyName': {'type': 'string', 'description': 'Company name (for fleet / business customers).'}, 'discountPercent': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Default discount percent.'}, 'preferredLanguage': {'enum': ['en', 'en_US', 'fr_CA', 'es_MX'], 'type': 'string', 'description': 'en, en_US, fr_CA or es_MX.'}, 'preferredContactMethod': {'enum': ['SMS', 'Email', 'All'], 'type': 'string', 'description': 'SMS, Email or All.'}}}
shopmonkey_update_order
Update an order
Update a work order — move it to another workflow status, change its status (Estimate, RepairOrder, Invoice), edit complaint/recommendation, due date, service writer, or archive it. Only the fields you pass are sent. Shopmonkey: PUT /v3/order/:id.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['orderId'], 'properties': {'name': {'type': 'string', 'description': 'Order name / title.'}, 'status': {'enum': ['Estimate', 'RepairOrder', 'Invoice'], 'type': 'string', 'description': 'Estimate, RepairOrder or Invoice.'}, 'dueDate': {'type': 'string', 'description': 'When the vehicle is promised, ISO 8601 date-time.'}, 'orderId': {'type': 'string', 'minLength': 1, 'description': 'The order id.'}, 'archived': {'type': 'boolean', 'description': 'Archive (true) or unarchive (false) the order.'}, 'complaint': {'type': 'string', 'description': "The customer's complaint (reason for visit)."}, 'vehicleId': {'type': 'string', 'description': 'The vehicle being worked on.'}, 'customerId': {'type': 'string', 'description': 'The customer the order is for.'}, 'recommendation': {'type': 'string', 'description': "The shop's recommendation."}, 'serviceWriterId': {'type': 'string', 'description': 'User id of the service writer.'}, 'workflowStatusId': {'type': 'string', 'description': 'Workflow status (board column) id — see shopmonkey_list_workflow_statuses.'}, 'purchaseOrderNumber': {'type': 'string', 'description': 'Customer PO number.'}}}
Hinzugefügt
shopmonkey_create_appointment
2. October 2026 02:40
Hinzugefügt
shopmonkey_update_order
2. October 2026 02:40
Hinzugefügt
shopmonkey_create_order
2. October 2026 02:40
Hinzugefügt
shopmonkey_create_vehicle
2. October 2026 02:40
Hinzugefügt
shopmonkey_add_customer_email
2. October 2026 02:40
Hinzugefügt
shopmonkey_update_customer
2. October 2026 02:40
Hinzugefügt
shopmonkey_create_customer
2. October 2026 02:40
Hinzugefügt
shopmonkey_list_users
2. October 2026 02:40
Hinzugefügt
shopmonkey_list_workflow_statuses
2. October 2026 02:40
Hinzugefügt
shopmonkey_list_canned_services
2. October 2026 02:40
Hinzugefügt
shopmonkey_search_inventory_parts
2. October 2026 02:40
Hinzugefügt
shopmonkey_search_appointments
2. October 2026 02:40
Hinzugefügt
shopmonkey_list_order_services
2. October 2026 02:40
Hinzugefügt
shopmonkey_get_order
2. October 2026 02:40
Hinzugefügt
shopmonkey_list_orders
2. October 2026 02:40
Hinzugefügt
shopmonkey_get_vehicle
2. October 2026 02:40
Hinzugefügt
shopmonkey_list_customer_orders
2. October 2026 02:40
Hinzugefügt
shopmonkey_list_customer_vehicles
2. October 2026 02:40
Hinzugefügt
shopmonkey_get_customer
2. October 2026 02:40
Hinzugefügt
shopmonkey_find_customers_by_email
2. October 2026 02:40
Hinzugefügt
shopmonkey_find_customers_by_phone
2. October 2026 02:40
Hinzugefügt
shopmonkey_search_customers
2. October 2026 02:40
Hinzugefügt
shopmonkey_get_current_user
2. October 2026 02:40