# io.usefulapi/shopmonkey (remote · shopmonkey.usefulapi.io)

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

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-04

## Components

- remote · `shopmonkey.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-shopmonkey/shopmonkey.md), [page](https://verifymcp.io/servers/io-usefulapi-shopmonkey/shopmonkey)

## Channel facts

- Endpoint: `https://shopmonkey.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-04.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 429, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint returned HTTP 429.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the io.usefulapi/shopmonkey MCP server?

io.usefulapi/shopmonkey is a hosted endpoint at https://shopmonkey.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

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

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-shopmonkey": {
      "url": "https://shopmonkey.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-shopmonkey": {
      "type": "http",
      "url": "https://shopmonkey.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-shopmonkey]
url = "https://shopmonkey.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-shopmonkey": {
      "type": "remote",
      "url": "https://shopmonkey.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-shopmonkey --url 'https://shopmonkey.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-shopmonkey:
    url: "https://shopmonkey.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-shopmonkey": {
      "Transport": "http",
      "Url": "https://shopmonkey.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-shopmonkey -t streamable-http -u 'https://shopmonkey.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-shopmonkey": {
      "type": "http",
      "url": "https://shopmonkey.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-03 (score 18, −58)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Stability: 0.07 → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] HTTPS: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Transport: pass → fail
- [functional regression] Capabilities: fail → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-02 (score 76, 0)

- [functional] Server version: 1.3.0 → 1.5.1

### 2026-10-01 (score 76, +5)

- [security improvement] HTTPS: unverified → pass
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.0.0 → 1.3.0

### 2026-09-30 (score 71, +53)

- [security improvement] Authorization: unverified → pass
- [security improvement] Injection markers: unverified → pass
- [security improvement] Transport: fail → pass
- [security] First check of Judged manipulation: pass
- [security] First check of Authorization: partial
- [functional regression] MCP protocol: unverified → fail
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100

### 2026-09-29 (score 18)

First indexed and scored.

## MCP tools (23)

### `shopmonkey_get_current_user` (~58 tokens)

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.

### `shopmonkey_search_customers` (~145 tokens)

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.

Input parameters:

- `limit` (integer): Maximum number of records to return.
- `orderBy` (object): Sort instructions keyed by field name, e.g. {"createdDate": "desc"}.
- `skip` (integer): Number of records to skip, for paging (use with limit).
- `where` (object): Filter object applied server-side, keyed by field name, e.g. {"lastName": "Smith"} or {"createdDate": {"gte": "2026-01-01"}}.

### `shopmonkey_find_customers_by_phone` (~79 tokens)

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.

Input parameters:

- `excludeCustomerId` (string): A customer id to leave out of the results.
- `phoneNumbers` (array, required): Phone numbers to look up.

### `shopmonkey_find_customers_by_email` (~68 tokens)

Find customers by email

Find the customers that own any of the given email addresses. Shopmonkey: POST /v3/customer/email/search.

Input parameters:

- `emails` (array, required): Email addresses to look up.
- `excludeCustomerId` (string): A customer id to leave out of the results.

### `shopmonkey_get_customer` (~56 tokens)

Get one customer

Fetch a single customer by id — contact details, emails, phone numbers, counts of vehicles/orders/appointments. Shopmonkey: GET /v3/customer/:id.

Input parameters:

- `customerId` (string, required): The customer id.

### `shopmonkey_list_customer_vehicles` (~89 tokens)

List a customer's vehicles

List the vehicles owned by a customer (year/make/model, VIN, plate, mileage). Shopmonkey: GET /v3/customer/:id/vehicle.

Input parameters:

- `customerId` (string, required): The customer id.
- `limit` (integer): Maximum number of records to return.
- `skip` (integer): Number of records to skip, for paging (use with limit).

### `shopmonkey_list_customer_orders` (~87 tokens)

List a customer's orders

List a customer's work orders (estimates, repair orders, invoices) — their service history. Shopmonkey: GET /v3/customer/:id/order.

Input parameters:

- `customerId` (string, required): The customer id.
- `limit` (integer): Maximum number of records to return.
- `skip` (integer): Number of records to skip, for paging (use with limit).

### `shopmonkey_get_vehicle` (~50 tokens)

Get one vehicle

Fetch a single vehicle by id, including its mileage and tire-pressure logs. Shopmonkey: GET /v3/vehicle/:id.

Input parameters:

- `vehicleId` (string, required): The vehicle id.

### `shopmonkey_list_orders` (~101 tokens)

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.

Input parameters:

- `limit` (integer): Maximum number of records to return.
- `skip` (integer): Number of records to skip, for paging (use with limit).

### `shopmonkey_get_order` (~63 tokens)

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.

Input parameters:

- `orderId` (string, required): The order id.

### `shopmonkey_list_order_services` (~68 tokens)

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.

Input parameters:

- `orderId` (string, required): The order id.

### `shopmonkey_search_appointments` (~234 tokens)

Search appointments

Search the appointment calendar by date range, customer, order or technician. Returns appointments with their customer. Shopmonkey: POST /v3/appointment/search.

Input parameters:

- `customerId` (string): Only this customer's appointments.
- `endFrom` (string): Appointments ending at or after this ISO 8601 date-time.
- `endTo` (string): Appointments ending at or before this ISO 8601 date-time.
- `includeUnassigned` (boolean): With technicians, also include unassigned appointments.
- `limit` (integer): Maximum number of records to return.
- `orderId` (string): Only appointments linked to this order.
- `skip` (integer): Number of records to skip, for paging (use with limit).
- `sort` (string): Sort by start date. Default asc.
- `startFrom` (string): Appointments starting at or after this ISO 8601 date-time.
- `startTo` (string): Appointments starting at or before this ISO 8601 date-time.
- `technicians` (array): Only appointments assigned to these technician (user) ids.

### `shopmonkey_search_inventory_parts` (~173 tokens)

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.

Input parameters:

- `limit` (integer): Maximum number of records to return.
- `orderBy` (object): Sort instructions keyed by field name, e.g. {"createdDate": "desc"}.
- `skip` (integer): Number of records to skip, for paging (use with limit).
- `where` (object): Filter object applied server-side, keyed by field name, e.g. {"lastName": "Smith"} or {"createdDate": {"gte": "2026-01-01"}}.

### `shopmonkey_list_canned_services` (~85 tokens)

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.

Input parameters:

- `limit` (integer): Maximum number of records to return.
- `skip` (integer): Number of records to skip, for paging (use with limit).

### `shopmonkey_list_workflow_statuses` (~91 tokens)

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.

Input parameters:

- `limit` (integer): Maximum number of records to return.
- `skip` (integer): Number of records to skip, for paging (use with limit).

### `shopmonkey_list_users` (~77 tokens)

List users

List the shop's users (service writers, technicians, admins) — the ids to use for technicians and service writers. Shopmonkey: GET /v3/user.

Input parameters:

- `limit` (integer): Maximum number of records to return.
- `skip` (integer): Number of records to skip, for paging (use with limit).

### `shopmonkey_create_customer` (~300 tokens)

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.

Input parameters:

- `address1` (string): Street address, line 1.
- `address2` (string): Street address, line 2.
- `city` (string): City.
- `companyName` (string): Company name (for fleet / business customers).
- `country` (string): ISO 3166-1 alpha-2 country code, e.g. US or CA.
- `customerType` (string, required): Customer (individual) or Fleet (business account).
- `discountPercent` (number): Default discount percent.
- `externalId` (string): Your own id for this customer in another system.
- `firstName` (string): First name.
- `lastName` (string): Last name.
- `locationId` (string): The shop location id (see shopmonkey_get_current_user for the key's own location).
- `note` (string): Internal note on the customer.
- `postalCode` (string): Postal / ZIP code.
- `preferredContactMethod` (string): SMS, Email or All.
- `preferredLanguage` (string): en, en_US, fr_CA or es_MX.
- `state` (string): State / province.
- `taxExempt` (boolean): US tax exemption.
- `website` (string): Website.

### `shopmonkey_update_customer` (~265 tokens)

Update a customer

Update a customer's name, address, note or preferences. Only the fields you pass are sent. Shopmonkey: PUT /v3/customer/:id.

Input parameters:

- `address1` (string): Street address, line 1.
- `address2` (string): Street address, line 2.
- `city` (string): City.
- `companyName` (string): Company name (for fleet / business customers).
- `country` (string): ISO 3166-1 alpha-2 country code, e.g. US or CA.
- `customerId` (string, required): The customer id.
- `discountPercent` (number): Default discount percent.
- `externalId` (string): Your own id for this customer in another system.
- `firstName` (string): First name.
- `lastName` (string): Last name.
- `note` (string): Internal note on the customer.
- `postalCode` (string): Postal / ZIP code.
- `preferredContactMethod` (string): SMS, Email or All.
- `preferredLanguage` (string): en, en_US, fr_CA or es_MX.
- `state` (string): State / province.
- `taxExempt` (boolean): US tax exemption.
- `website` (string): Website.

### `shopmonkey_add_customer_email` (~115 tokens)

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.

Input parameters:

- `customerId` (string, required): The customer id.
- `email` (string, required): The email address.
- `locationId` (string): The shop location id (see shopmonkey_get_current_user for the key's own location).
- `primary` (boolean): Make this the customer's primary email.
- `subscribed` (boolean): Whether the customer receives messages at this address.

### `shopmonkey_create_vehicle` (~228 tokens)

Create a vehicle

Create a vehicle, optionally attached to a customer. Shopmonkey: POST /v3/vehicle.

Input parameters:

- `color` (string): Vehicle color.
- `customerId` (string): The owning customer's id.
- `engine` (string): Engine description.
- `licensePlate` (string): License plate.
- `licensePlateState` (string): License plate state / province.
- `locationId` (string): The shop location id (see shopmonkey_get_current_user for the key's own location).
- `make` (string): Make, e.g. Toyota.
- `mileage` (number): Current odometer reading.
- `model` (string): Model, e.g. Camry.
- `note` (string): Internal note on the vehicle.
- `size` (string, required): LightDuty (cars, light trucks), HeavyDuty, or Other.
- `submodel` (string): Submodel / trim, e.g. LE.
- `unit` (string): Fleet unit number.
- `vin` (string): Vehicle identification number.
- `year` (integer): Model year.

### `shopmonkey_create_order` (~210 tokens)

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.

Input parameters:

- `complaint` (string): The customer's complaint (reason for visit).
- `customerId` (string): The customer the order is for.
- `dueDate` (string): When the vehicle is promised, ISO 8601 date-time.
- `locationId` (string): The shop location id (see shopmonkey_get_current_user for the key's own location).
- `name` (string): Order name / title.
- `purchaseOrderNumber` (string): Customer PO number.
- `recommendation` (string): The shop's recommendation.
- `serviceWriterId` (string): User id of the service writer.
- `vehicleId` (string): The vehicle being worked on.
- `workflowStatusId` (string): Workflow status (board column) id — see shopmonkey_list_workflow_statuses.

### `shopmonkey_update_order` (~249 tokens)

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.

Input parameters:

- `archived` (boolean): Archive (true) or unarchive (false) the order.
- `complaint` (string): The customer's complaint (reason for visit).
- `customerId` (string): The customer the order is for.
- `dueDate` (string): When the vehicle is promised, ISO 8601 date-time.
- `name` (string): Order name / title.
- `orderId` (string, required): The order id.
- `purchaseOrderNumber` (string): Customer PO number.
- `recommendation` (string): The shop's recommendation.
- `serviceWriterId` (string): User id of the service writer.
- `status` (string): Estimate, RepairOrder or Invoice.
- `vehicleId` (string): The vehicle being worked on.
- `workflowStatusId` (string): Workflow status (board column) id — see shopmonkey_list_workflow_statuses.

### `shopmonkey_create_appointment` (~248 tokens)

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.

Input parameters:

- `allDay` (boolean): All-day appointment.
- `color` (string): Calendar color. Default blue.
- `customerId` (string): The customer's id.
- `endDate` (string, required): End, ISO 8601 date-time.
- `name` (string, required): What the appointment is for, e.g. 'Oil change'.
- `note` (string): Notes for the appointment.
- `orderId` (string): A work order to link.
- `sendConfirmation` (boolean): Send the customer a confirmation now.
- `sendReminder` (boolean): Send the customer a reminder before the appointment.
- `startDate` (string, required): Start, ISO 8601 date-time.
- `technicianIds` (array): User ids of the assigned technicians.
- `useEmail` (boolean): Use email for confirmation/reminder.
- `useSMS` (boolean): Use SMS for confirmation/reminder.
- `vehicleId` (string): The vehicle's id.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-shopmonkey/shopmonkey#diagnostics

## Score history

- 2026-10-04: 18
- 2026-10-03: 18
- 2026-10-02: 76
- 2026-10-01: 76
- 2026-09-30: 71
- 2026-09-29: 18

## Common questions

### What is the io.usefulapi/shopmonkey MCP server?

io.usefulapi/shopmonkey is an MCP server listed in the public MCP registry as io.usefulapi/shopmonkey. Look up shop customers, vehicles, work orders and parts, and create orders or book appointments. This page covers its hosted endpoint (https://shopmonkey.usefulapi.io/mcp).

### Is the io.usefulapi/shopmonkey MCP server safe to use?

io.usefulapi/shopmonkey scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.usefulapi/shopmonkey MCP server expose?

io.usefulapi/shopmonkey exposes 23 tools: shopmonkey_get_current_user, shopmonkey_search_customers, shopmonkey_find_customers_by_phone, shopmonkey_find_customers_by_email, shopmonkey_get_customer, and 18 more. Their descriptions and schemas cost roughly 3,139 tokens of context every time the server is loaded.

### Does the io.usefulapi/shopmonkey MCP server require authentication?

Its publisher declares no required credentials for io.usefulapi/shopmonkey. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the io.usefulapi/shopmonkey MCP server still maintained?

io.usefulapi/shopmonkey is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://shopmonkey.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-shopmonkey/shopmonkey.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-shopmonkey/shopmonkey.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-shopmonkey/shopmonkey
