# Shopmonkey MCP by usefulapi (io.usefulapi/shopmonkey): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.usefulapi%2Fshopmonkey/versions/latest)
- Connected to: https://shopmonkey.usefulapi.io/mcp
- Homepage: https://usefulapi.io/shopmonkey/
- Repository: https://github.com/m190/usefulapi-mcp
- Scoring rules: v2
- Tools: 43
- Average: 52.7 / 100 (Cloudy)
- Near-identical pairs: 3

This page shows how Shopmonkey MCP by usefulapi (io.usefulapi/shopmonkey)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 43 tools. Above 40, models choose less accurately.

## Tools

- `shopmonkey_create_order`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: name, purchaseOrderNumber.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `shopmonkey_find_customers_by_email`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `shopmonkey_find_customers_by_phone`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `shopmonkey_add_customer_email`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: customerId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_update_order`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: name, purchaseOrderNumber.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_get_customer`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: customerId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_get_vehicle`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: vehicleId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_list_customer_orders`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: customerId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_list_customer_vehicles`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: customerId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_list_workflow_statuses`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `shopmonkey_search_appointments`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `shopmonkey_create_customer`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: firstName, lastName, address1, address2, city, state, postalCode, website.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument taxExempt is unclear.
  - Minor: Says nothing about what it returns.
- `shopmonkey_create_vehicle`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: engine, vin, licensePlate, unit.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `shopmonkey_update_customer`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: firstName, lastName, address1, address2, city, state, postalCode, website.
  - Minor: The meaning of the boolean argument taxExempt is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: customerId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_list_users`: 49 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `shopmonkey_update_appointment`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The meaning of the boolean argument allDay is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: appointmentId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_delete_labor`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId, serviceId, laborId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_delete_part`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId, serviceId, partId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_get_order`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_get_purchase_order`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: purchaseOrderId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_get_time_entry`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `shopmonkey_create_appointment`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: startDate, endDate.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument allDay is unclear.
  - Minor: Says nothing about what it returns.
- `shopmonkey_add_labor`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `shopmonkey_list_canned_services`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `shopmonkey_list_purchase_orders`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `shopmonkey_list_time_entries`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: technicianIds, inProgress.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument inProgress is unclear.
- `shopmonkey_list_order_services`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_add_part`: 54 / 100
  - Minor: Arguments without a description: partNumber, sku, note, binLocation, taxableGST, taxableHST, taxablePST.
  - Minor: String arguments with no constraint or example: partNumber, sku, note, binLocation.
  - Minor: The meaning of the boolean argument taxable is unclear.
  - Minor: The meaning of the boolean argument taxableGST is unclear.
  - Minor: The meaning of the boolean argument taxableHST is unclear.
  - Minor: The meaning of the boolean argument taxablePST is unclear.
- `shopmonkey_delete_service`: 55 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId, serviceId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_get_current_user`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `shopmonkey_search_customers`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `shopmonkey_add_service`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `shopmonkey_apply_canned_service`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `shopmonkey_list_orders`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `shopmonkey_delete_appointment`: 60 / 100
  - Minor: Says nothing about what it returns.
- `shopmonkey_search_inventory_parts`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `shopmonkey_search_orders`: 60 / 100
  - Minor: Arguments without a description: status.
  - Minor: No `required` list, so every argument is optional.
- `shopmonkey_clock_in`: 63 / 100
  - Minor: Arguments without a description: note.
  - Minor: String arguments with no constraint or example: note.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId, technicianId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_clock_out`: 63 / 100
  - Minor: Arguments without a description: note.
  - Minor: String arguments with no constraint or example: note.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId, technicianId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_send_message`: 65 / 100
  - Minor: Arguments without a description: channel, emailSubject.
  - Minor: String arguments with no constraint or example: emailSubject.
  - Minor: Required identifiers whose description does not say where the value comes from: customerId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_add_fee`: 67 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId, serviceId. Name the tool or the place that returns it, or models look it up first.
- `shopmonkey_find_order_by_number`: 67 / 100
  - Major: Says nothing about when to use it, or when not to.
- `shopmonkey_send_estimate`: 69 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: orderId. Name the tool or the place that returns it, or models look it up first.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
