A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
Shopmonkey is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Look up shop customers, vehicles, work orders and parts, and create orders or book appointments.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http shopmonkey-mcp https://shopmonkey.usefulapi.io/mcp
# 2 — ask your agent for something these tools do
# shopmonkey_get_current_user, shopmonkey_search_customers, shopmonkey_find_customers_by_phone and 20 more
Shopmonkey costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http shopmonkey-mcp https://shopmonkey.usefulapi.io/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
23 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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.
No parameter schema on file.
Search customers with a server-side filter, sort and paging. Returns customers with their emails and phone numbers. Shopmonkey: POST /v3/customer/search.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| where | object | no | Filter object applied server-side, keyed by field name, e.g. {"lastName": "Smith"} or {"createdDate": {"gte": "2026-01-01"}}. |
| orderBy | object | no | Sort instructions keyed by field name, e.g. {"createdDate": "desc"}. |
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| phoneNumbers | array | yes | Phone numbers to look up. |
| excludeCustomerId | string | no | A customer id to leave out of the results. |
Find the customers that own any of the given email addresses. Shopmonkey: POST /v3/customer/email/search.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| emails | array | yes | Email addresses to look up. |
| excludeCustomerId | string | no | A customer id to leave out of the results. |
Fetch a single customer by id — contact details, emails, phone numbers, counts of vehicles/orders/appointments. Shopmonkey: GET /v3/customer/:id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customerId | string | yes | The customer id. |
List the vehicles owned by a customer (year/make/model, VIN, plate, mileage). Shopmonkey: GET /v3/customer/:id/vehicle.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customerId | string | yes | The customer id. |
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
List a customer's work orders (estimates, repair orders, invoices) — their service history. Shopmonkey: GET /v3/customer/:id/order.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customerId | string | yes | The customer id. |
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
Fetch a single vehicle by id, including its mileage and tire-pressure logs. Shopmonkey: GET /v3/vehicle/:id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| vehicleId | string | yes | The vehicle id. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| orderId | string | yes | The order id. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| orderId | string | yes | The order id. |
Search the appointment calendar by date range, customer, order or technician. Returns appointments with their customer. Shopmonkey: POST /v3/appointment/search.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| startFrom | string | no | Appointments starting at or after this ISO 8601 date-time. |
| startTo | string | no | Appointments starting at or before this ISO 8601 date-time. |
| endFrom | string | no | Appointments ending at or after this ISO 8601 date-time. |
| endTo | string | no | Appointments ending at or before this ISO 8601 date-time. |
| customerId | string | no | Only this customer's appointments. |
| orderId | string | no | Only appointments linked to this order. |
| technicians | array | no | Only appointments assigned to these technician (user) ids. |
| includeUnassigned | boolean | no | With technicians, also include unassigned appointments. |
| sort | string | no | Sort by start date. Default asc. |
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| where | object | no | Filter object applied server-side, keyed by field name, e.g. {"lastName": "Smith"} or {"createdDate": {"gte": "2026-01-01"}}. |
| orderBy | object | no | Sort instructions keyed by field name, e.g. {"createdDate": "desc"}. |
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
List the shop's users (service writers, technicians, admins) — the ids to use for technicians and service writers. Shopmonkey: GET /v3/user.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Maximum number of records to return. |
| skip | integer | no | Number of records to skip, for paging (use with limit). |
Create a customer (a person) or a fleet account. Add an email afterwards with shopmonkey_add_customer_email. Shopmonkey: POST /v3/customer.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customerType | string | yes | Customer (individual) or Fleet (business account). |
| firstName | string | no | First name. |
| lastName | string | no | Last name. |
| companyName | string | no | Company name (for fleet / business customers). |
| address1 | string | no | Street address, line 1. |
| address2 | string | no | Street address, line 2. |
| city | string | no | City. |
| state | string | no | State / province. |
| postalCode | string | no | Postal / ZIP code. |
| country | string | no | ISO 3166-1 alpha-2 country code, e.g. US or CA. |
| note | string | no | Internal note on the customer. |
| preferredContactMethod | string | no | SMS, Email or All. |
| preferredLanguage | string | no | en, en_US, fr_CA or es_MX. |
| taxExempt | boolean | no | US tax exemption. |
| discountPercent | number | no | Default discount percent. |
| externalId | string | no | Your own id for this customer in another system. |
| website | string | no | Website. |
| locationId | string | no | The shop location id (see shopmonkey_get_current_user for the key's own location). |
Update a customer's name, address, note or preferences. Only the fields you pass are sent. Shopmonkey: PUT /v3/customer/:id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customerId | string | yes | The customer id. |
| firstName | string | no | First name. |
| lastName | string | no | Last name. |
| companyName | string | no | Company name (for fleet / business customers). |
| address1 | string | no | Street address, line 1. |
| address2 | string | no | Street address, line 2. |
| city | string | no | City. |
| state | string | no | State / province. |
| postalCode | string | no | Postal / ZIP code. |
| country | string | no | ISO 3166-1 alpha-2 country code, e.g. US or CA. |
| note | string | no | Internal note on the customer. |
| preferredContactMethod | string | no | SMS, Email or All. |
| preferredLanguage | string | no | en, en_US, fr_CA or es_MX. |
| taxExempt | boolean | no | US tax exemption. |
| discountPercent | number | no | Default discount percent. |
| externalId | string | no | Your own id for this customer in another system. |
| website | string | no | Website. |
Add an email address to an existing customer, optionally as their primary address. Shopmonkey: POST /v3/customer/:id/email.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customerId | string | yes | The customer id. |
| string | yes | The email address. | |
| primary | boolean | no | Make this the customer's primary email. |
| subscribed | boolean | no | Whether the customer receives messages at this address. |
| locationId | string | no | The shop location id (see shopmonkey_get_current_user for the key's own location). |
Create a vehicle, optionally attached to a customer. Shopmonkey: POST /v3/vehicle.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| size | string | yes | LightDuty (cars, light trucks), HeavyDuty, or Other. |
| customerId | string | no | The owning customer's id. |
| year | integer | no | Model year. |
| make | string | no | Make, e.g. Toyota. |
| model | string | no | Model, e.g. Camry. |
| submodel | string | no | Submodel / trim, e.g. LE. |
| engine | string | no | Engine description. |
| vin | string | no | Vehicle identification number. |
| licensePlate | string | no | License plate. |
| licensePlateState | string | no | License plate state / province. |
| unit | string | no | Fleet unit number. |
| mileage | number | no | Current odometer reading. |
| color | string | no | Vehicle color. |
| note | string | no | Internal note on the vehicle. |
| locationId | string | no | The shop location id (see shopmonkey_get_current_user for the key's own location). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customerId | string | no | The customer the order is for. |
| vehicleId | string | no | The vehicle being worked on. |
| name | string | no | Order name / title. |
| complaint | string | no | The customer's complaint (reason for visit). |
| recommendation | string | no | The shop's recommendation. |
| purchaseOrderNumber | string | no | Customer PO number. |
| dueDate | string | no | When the vehicle is promised, ISO 8601 date-time. |
| serviceWriterId | string | no | User id of the service writer. |
| workflowStatusId | string | no | Workflow status (board column) id — see shopmonkey_list_workflow_statuses. |
| locationId | string | no | The shop location id (see shopmonkey_get_current_user for the key's own location). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| orderId | string | yes | The order id. |
| customerId | string | no | The customer the order is for. |
| vehicleId | string | no | The vehicle being worked on. |
| name | string | no | Order name / title. |
| complaint | string | no | The customer's complaint (reason for visit). |
| recommendation | string | no | The shop's recommendation. |
| purchaseOrderNumber | string | no | Customer PO number. |
| dueDate | string | no | When the vehicle is promised, ISO 8601 date-time. |
| serviceWriterId | string | no | User id of the service writer. |
| workflowStatusId | string | no | Workflow status (board column) id — see shopmonkey_list_workflow_statuses. |
| status | string | no | Estimate, RepairOrder or Invoice. |
| archived | boolean | no | Archive (true) or unarchive (false) the order. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | What the appointment is for, e.g. 'Oil change'. |
| startDate | string | yes | Start, ISO 8601 date-time. |
| endDate | string | yes | End, ISO 8601 date-time. |
| color | string | no | Calendar color. Default blue. |
| customerId | string | no | The customer's id. |
| vehicleId | string | no | The vehicle's id. |
| orderId | string | no | A work order to link. |
| note | string | no | Notes for the appointment. |
| allDay | boolean | no | All-day appointment. |
| technicianIds | array | no | User ids of the assigned technicians. |
| sendConfirmation | boolean | no | Send the customer a confirmation now. |
| sendReminder | boolean | no | Send the customer a reminder before the appointment. |
| useEmail | boolean | no | Use email for confirmation/reminder. |
| useSMS | boolean | no | Use SMS for confirmation/reminder. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Shopmonkey or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.11.1.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Shopmonkey can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.