Skip to content

Shopmonkey MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi

Look up shop customers, vehicles, work orders and parts, and create orders or book appointments.

Deletes · 7

23 tools: 7 can delete or cancel things and 16 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http shopmonkey https://shopmonkey.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

23 tools

Deletes or cancels 7Claude Code: deny
  • shopmonkey_add_customer_emailAdd an email address to an existing customer, optionally as their primary address.No findings

    Why it is in this group

    • The name "shopmonkey_add_customer_email" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Add an email address to an existing customer, optionally as their primary address. Shopmonkey: POST /v3/customer/:id/email.

    Annotations the server declares

    • title: Add an email to a customer
    • destructiveHint: true
  • shopmonkey_create_appointmentBook an appointment on the shop calendar, optionally for a customer, vehicle and order and assigned to technicians.No findings

    Why it is in this group

    • The name "shopmonkey_create_appointment" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Book an appointment
    • destructiveHint: true
  • shopmonkey_create_customerCreate a customer (a person) or a fleet account.No findings

    Why it is in this group

    • The name "shopmonkey_create_customer" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create a customer (a person) or a fleet account. Add an email afterwards with shopmonkey_add_customer_email. Shopmonkey: POST /v3/customer.

    Annotations the server declares

    • title: Create a customer
    • destructiveHint: true
  • shopmonkey_create_orderOpen a new work order (it starts as an estimate) for a customer and vehicle.No findings

    Why it is in this group

    • The name "shopmonkey_create_order" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Create an order
    • destructiveHint: true
  • shopmonkey_create_vehicleCreate a vehicle, optionally attached to a customer.No findings

    Why it is in this group

    • The name "shopmonkey_create_vehicle" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create a vehicle, optionally attached to a customer. Shopmonkey: POST /v3/vehicle.

    Annotations the server declares

    • title: Create a vehicle
    • destructiveHint: true
  • shopmonkey_update_customerUpdate a customer's name, address, note or preferences.No findings

    Why it is in this group

    • The name "shopmonkey_update_customer" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a customer's name, address, note or preferences. Only the fields you pass are sent. Shopmonkey: PUT /v3/customer/:id.

    Annotations the server declares

    • title: Update a customer
    • destructiveHint: true
  • shopmonkey_update_orderUpdate 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…No findings

    Why it is in this group

    • The name "shopmonkey_update_order" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Update an order
    • destructiveHint: true
Only reads 16Claude Code: allow
  • shopmonkey_find_customers_by_emailFind the customers that own any of the given email addresses.No findings

    Why it is in this group

    • The name "shopmonkey_find_customers_by_email" says "find": a word for reading.
    Description, as the server wrote it
    Find the customers that own any of the given email addresses. Shopmonkey: POST /v3/customer/email/search.

    Annotations the server declares

    • title: Find customers by email
    • readOnlyHint: true
  • shopmonkey_find_customers_by_phoneFind the customers that own any of the given phone numbers — the usual way to identify a caller.No findings

    Why it is in this group

    • The name "shopmonkey_find_customers_by_phone" says "find": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Find customers by phone number
    • readOnlyHint: true
  • shopmonkey_get_current_userFetch the user this API key acts as — id, name, company, default location and permissions.No findings

    Why it is in this group

    • The name "shopmonkey_get_current_user" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get the current user
    • readOnlyHint: true
  • shopmonkey_get_customerFetch a single customer by id — contact details, emails, phone numbers, counts of vehicles/orders/appointments.No findings

    Why it is in this group

    • The name "shopmonkey_get_customer" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single customer by id — contact details, emails, phone numbers, counts of vehicles/orders/appointments. Shopmonkey: GET /v3/customer/:id.

    Annotations the server declares

    • title: Get one customer
    • readOnlyHint: true
  • shopmonkey_get_orderFetch a single work order by id — customer, vehicle, complaint, totals (parts/labor/tax in cents), payment state and profitability.No findings

    Why it is in this group

    • The name "shopmonkey_get_order" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get one order
    • readOnlyHint: true
  • shopmonkey_get_vehicleFetch a single vehicle by id, including its mileage and tire-pressure logs.No findings

    Why it is in this group

    • The name "shopmonkey_get_vehicle" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single vehicle by id, including its mileage and tire-pressure logs. Shopmonkey: GET /v3/vehicle/:id.

    Annotations the server declares

    • title: Get one vehicle
    • readOnlyHint: true
  • shopmonkey_list_canned_servicesList the shop's canned services (reusable job templates like 'Oil change') with their labor, parts and fees and total in cents.No findings

    Why it is in this group

    • The name "shopmonkey_list_canned_services" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List canned services
    • readOnlyHint: true
  • shopmonkey_list_customer_ordersList a customer's work orders (estimates, repair orders, invoices) — their service history.No findings

    Why it is in this group

    • The name "shopmonkey_list_customer_orders" says "list": a word for reading.
    Description, as the server wrote it
    List a customer's work orders (estimates, repair orders, invoices) — their service history. Shopmonkey: GET /v3/customer/:id/order.

    Annotations the server declares

    • title: List a customer's orders
    • readOnlyHint: true
  • shopmonkey_list_customer_vehiclesList the vehicles owned by a customer (year/make/model, VIN, plate, mileage).No findings

    Why it is in this group

    • The name "shopmonkey_list_customer_vehicles" says "list": a word for reading.
    Description, as the server wrote it
    List the vehicles owned by a customer (year/make/model, VIN, plate, mileage). Shopmonkey: GET /v3/customer/:id/vehicle.

    Annotations the server declares

    • title: List a customer's vehicles
    • readOnlyHint: true
  • shopmonkey_list_order_servicesList the services (jobs) on a work order with their line items — labor, parts, tires, fees, subcontracts — authorization status and totals.No findings

    Why it is in this group

    • The name "shopmonkey_list_order_services" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List an order's services
    • readOnlyHint: true
  • shopmonkey_list_ordersList work orders for the shop, paged.No findings

    Why it is in this group

    • The name "shopmonkey_list_orders" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List orders
    • readOnlyHint: true
  • shopmonkey_list_usersList the shop's users (service writers, technicians, admins) — the ids to use for technicians and service writers.No findings

    Why it is in this group

    • The name "shopmonkey_list_users" says "list": a word for reading.
    Description, as the server wrote it
    List the shop's users (service writers, technicians, admins) — the ids to use for technicians and service writers. Shopmonkey: GET /v3/user.

    Annotations the server declares

    • title: List users
    • readOnlyHint: true
  • shopmonkey_list_workflow_statusesList the workflow statuses (the columns of the shop's work-order board) with their position.No findings

    Why it is in this group

    • The name "shopmonkey_list_workflow_statuses" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List workflow statuses
    • readOnlyHint: true
  • shopmonkey_search_appointmentsSearch the appointment calendar by date range, customer, order or technician.No findings

    Why it is in this group

    • The name "shopmonkey_search_appointments" says "search": a word for reading.
    Description, as the server wrote it
    Search the appointment calendar by date range, customer, order or technician. Returns appointments with their customer. Shopmonkey: POST /v3/appointment/search.

    Annotations the server declares

    • title: Search appointments
    • readOnlyHint: true
  • shopmonkey_search_customersSearch customers with a server-side filter, sort and paging.No findings

    Why it is in this group

    • The name "shopmonkey_search_customers" says "search": a word for reading.
    Description, as the server wrote it
    Search customers with a server-side filter, sort and paging. Returns customers with their emails and phone numbers. Shopmonkey: POST /v3/customer/search.

    Annotations the server declares

    • title: Search customers
    • readOnlyHint: true
  • shopmonkey_search_inventory_partsSearch the parts inventory — name, part number, SKU, quantity on hand/available/reserved, retail and wholesale cost in cents, bin location, brand and vendor.No findings

    Why it is in this group

    • The name "shopmonkey_search_inventory_parts" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Search inventory parts
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.16.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http shopmonkey https://shopmonkey.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__shopmonkey__shopmonkey_get_current_user",
      "mcp__shopmonkey__shopmonkey_search_customers",
      "mcp__shopmonkey__shopmonkey_find_customers_by_phone",
      "mcp__shopmonkey__shopmonkey_find_customers_by_email",
      "mcp__shopmonkey__shopmonkey_get_customer",
      "mcp__shopmonkey__shopmonkey_list_customer_vehicles",
      "mcp__shopmonkey__shopmonkey_list_customer_orders",
      "mcp__shopmonkey__shopmonkey_get_vehicle",
      "mcp__shopmonkey__shopmonkey_list_orders",
      "mcp__shopmonkey__shopmonkey_get_order",
      "mcp__shopmonkey__shopmonkey_list_order_services",
      "mcp__shopmonkey__shopmonkey_search_appointments",
      "mcp__shopmonkey__shopmonkey_search_inventory_parts",
      "mcp__shopmonkey__shopmonkey_list_canned_services",
      "mcp__shopmonkey__shopmonkey_list_workflow_statuses",
      "mcp__shopmonkey__shopmonkey_list_users"
    ],
    "ask": [],
    "deny": [
      "mcp__shopmonkey__shopmonkey_create_customer",
      "mcp__shopmonkey__shopmonkey_update_customer",
      "mcp__shopmonkey__shopmonkey_add_customer_email",
      "mcp__shopmonkey__shopmonkey_create_vehicle",
      "mcp__shopmonkey__shopmonkey_create_order",
      "mcp__shopmonkey__shopmonkey_update_order",
      "mcp__shopmonkey__shopmonkey_create_appointment"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as shopmonkey. Review it before you use it.