2.3 KiB

Clover MCP Server

MCP server for Clover POS API integration. Access orders, inventory, customers, payments, and merchant data.

Setup

npm install
npm run build

Environment Variables

Variable Required Description
CLOVER_API_KEY Yes OAuth access token or API token
CLOVER_MERCHANT_ID Yes 13-character merchant ID
CLOVER_SANDBOX No Set to "true" for sandbox environment
CLOVER_REGION No "US" (default), "EU", or "LA"

API Endpoints

  • Production US/Canada: https://api.clover.com
  • Production Europe: https://api.eu.clover.com
  • Production LATAM: https://api.la.clover.com
  • Sandbox: https://apisandbox.dev.clover.com

Tools

Orders

  • list_orders - List orders with optional filtering by state
  • get_order - Get order details including line items and payments
  • create_order - Create new orders (supports atomic orders with line items)

Inventory

  • list_items - List products/menu items available for sale
  • get_inventory - Get stock counts for items

Customers & Payments

  • list_customers - List customer database entries
  • list_payments - List payment transactions

Merchant

  • get_merchant - Get merchant account information

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "clover": {
      "command": "node",
      "args": ["/path/to/mcp-servers/clover/dist/index.js"],
      "env": {
        "CLOVER_API_KEY": "your-api-token",
        "CLOVER_MERCHANT_ID": "your-merchant-id",
        "CLOVER_SANDBOX": "true"
      }
    }
  }
}

Authentication

Clover uses OAuth 2.0. You need either:

  1. Test API Token - Generate in Clover Developer Dashboard for sandbox testing
  2. OAuth Access Token - Obtained through OAuth flow for production apps

See Clover Authentication Docs for details.

Examples

List open orders:

list_orders(filter: "state=open", limit: 10)

Get order with line items:

get_order(order_id: "ABC123", expand: "lineItems,payments")

Create an order with items:

create_order(
  title: "Table 5",
  line_items: [
    { item_id: "ITEM123", quantity: 2 },
    { name: "Custom Item", price: 999 }
  ]
)