Skip to content

AbbottDevelopments/shopmonkey-mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shopmonkey MCP Server

A Model Context Protocol (MCP) server that wraps the Shopmonkey REST API (v3), enabling AI agents and LLMs to interact with shop management data — work orders, customers, vehicles, inventory, appointments, payments, labor, services, and more.

Features

  • 33 tools across 9 resource groups covering the full Shopmonkey API
  • Bearer token authentication via API key
  • Automatic retry with exponential backoff on rate limits (HTTP 429) and server errors (500/502/503/504)
  • 30-second request timeout prevents hung connections
  • Request concurrency control (max 5 simultaneous API calls)
  • Multi-location support via SHOPMONKEY_LOCATION_ID default or per-request locationId
  • Descriptive error messages surfacing Shopmonkey error codes
  • Works with Claude Desktop, Cursor, Claude Code, and any MCP-compatible client

Tool Reference

Work Orders

Tool Description
list_orders List work orders with filters (status, customer, location)
get_order Get single work order details
create_order Create new work order
update_order Update work order fields
delete_order Permanently delete a work order (requires confirm: true)

Customers

Tool Description
list_customers List customers, searchable by name/email/phone
get_customer Get single customer profile
create_customer Add new customer
update_customer Update customer info

Vehicles

Tool Description
list_vehicles List vehicles, filter by customer
get_vehicle Get single vehicle details
create_vehicle Add vehicle (optionally linked to customer)
update_vehicle Update vehicle data

Inventory & Parts

Tool Description
list_inventory_parts List parts inventory
get_inventory_part Get single part details
list_inventory_tires List tire inventory
search_parts Search parts catalog (query required)

Appointments

Tool Description
list_appointments List appointments
get_appointment Get single appointment
create_appointment Book appointment
update_appointment Reschedule/update appointment

Payments

Tool Description
list_payments List payments
get_payment Get payment details
create_payment Record a payment (orderId and amount required)

Technicians & Labor

Tool Description
list_labor List labor line items
list_timeclock Technician clock-in/clock-out events
list_users List shop users/technicians
get_user Get single user/tech profile

Services

Tool Description
list_services List services on orders
list_canned_services List pre-built service templates
get_canned_service Get single canned service details

Workflow & Locations

Tool Description
list_workflow_statuses Get pipeline/workflow stages
list_locations List shop locations

Setup

Prerequisites

  • Node.js 18+
  • A Shopmonkey API key (create at: Shopmonkey Settings > Integration > API Keys)

Installation

git clone https://github.com/AbbottDevelopments/shopmonkey-mcp-server.git
cd shopmonkey-mcp-server
npm install
npm run build

Environment Variables

Copy .env.example to .env and add your API key:

cp .env.example .env

Then edit .env:

# Required — your Shopmonkey API key
SHOPMONKEY_API_KEY=your_long_lived_api_key_here

# Optional — defaults to https://api.shopmonkey.cloud/v3
SHOPMONKEY_BASE_URL=https://api.shopmonkey.cloud/v3

# Optional — set this for multi-location shops to auto-filter all queries to one location
SHOPMONKEY_LOCATION_ID=

The server loads .env automatically via dotenv. You can also pass environment variables through your MCP client config (see below) or your shell.

MCP Client Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "shopmonkey": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/path/to/shopmonkey-mcp-server",
      "env": {
        "SHOPMONKEY_API_KEY": "your_api_key_here"
      }
    }
  }
}

Cursor

Add to your Cursor MCP settings:

{
  "mcpServers": {
    "shopmonkey": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/path/to/shopmonkey-mcp-server",
      "env": {
        "SHOPMONKEY_API_KEY": "your_api_key_here"
      }
    }
  }
}

Claude Code

claude mcp add shopmonkey -e SHOPMONKEY_API_KEY=your_api_key_here -- node /path/to/shopmonkey-mcp-server/dist/index.js

Development

# Build
npm run build

# Watch mode
npm run dev

# Start server
npm start

# Run tests
npm test

Error Handling

The server handles common API scenarios:

  • Missing API key: Returns a descriptive error with setup instructions
  • Rate limiting (429): Automatically retries with exponential backoff (up to 3 attempts)
  • Server errors (500, 502, 503, 504): Automatically retries with backoff
  • Request timeout: Aborts after 30 seconds with a clear error message
  • Network failures: Retries with backoff, returns readable error messages
  • API errors: Surfaces Shopmonkey error codes (e.g., API-xxxxx, ORM-xxxxx) for debugging

API Reference

License

MIT

About

MCP server for the Shopmonkey REST API (v3) — 33 tools for work orders, customers, vehicles, inventory, and more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors