Skip to main content
Glama
paracetamol951

caisse-enregistreuse-mcp-server

README.md
[![smithery badge](https://smithery.ai/badge/paracetamol951/kash)](https://smithery.ai/servers/paracetamol951/kash)

# ๐Ÿงพ Kash MCP Server

[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)
[![Live Demo](https://img.shields.io/badge/Demo-online-brightgreen.svg)](https://mcp.kash.click)
[![GitHub Stars](https://img.shields.io/github/stars/paracetamol951/caisse-enregistreuse-mcp-server?style=social)](https://github.com/paracetamol951/caisse-enregistreuse-mcp-server/stargazers)
[![npm](https://img.shields.io/npm/v/caisse-enregistreuse-mcp-server)](https://www.npmjs.com/package/caisse-enregistreuse-mcp-server)

[![Kash MCP](./ChatGPT-MCP.png)](https://www.youtube.com/watch?v=PpkrUfEy4ns)

**Kash MCP Server** is the official [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for **[Kash](https://kash.click)** โ€” a free, cloud-based POS, invoicing, CRM and webshop platform trusted by thousands of merchants since 2011.

Connect your Kash account to **Claude, ChatGPT, n8n**, or any MCP-compatible AI โ€” and manage your entire business through natural conversation.

> ๐ŸŸข Hosted server: [https://mcp.kash.click](https://mcp.kash.click)  
> ๐Ÿ“– Full documentation: [kash.click/cash-register-software](https://kash.click/cash-register-software/)

---

## โœจ What you can do

Just talk. No menus, no clicks.

```
"Record a sale of 2 coffees and 1 croissant at table 84"
"Show me this week's revenue report"
"Add a new item called Summer Tart at โ‚ฌ4.50 in the Pastries department"
"Who are my best customers this month?"
"Create a Kash account for my restaurant"
"Record the card payment for order #1042"
"Add a Large size option to the Size variation"
```

---

## ๐Ÿš€ Features

### ๐Ÿ” Account & Authentication โ€” no config required
- **Create** a new Kash account directly from the conversation
- **List** accounts linked to an email to check if one already exists
- **Login via OTP** โ€” a one-time password is sent to your email, no password needed
- **Logout** to clear the session at any time

### ๐Ÿงพ Sales & Orders
- **Record sales** with catalog items, department lines, or free lines
- **Edit orders** โ€” add items, assign a client, record payments, validate as invoice
- **List orders** by date range, validated or unvalidated, filtered by delivery method
- **Get order details** โ€” full breakdown of items, client, payments and totals

### ๐Ÿ“Š Reports
- **Sales report** โ€” HTML summary for any period: a specific day, month, or full year (defaults to yesterday)

### ๐Ÿ“ฆ Catalog Management
- **Items (PLU)**: add, edit, delete โ€” with price, department, VAT, barcode, stock, variations...
- **Departments**: add, edit, delete โ€” with VAT, price, group, variations...
- **Department groups**: add, edit, delete โ€” to organize your catalog
- **VAT rates**: add, edit, delete
- **Variations**: add, edit, delete (e.g. "Size", "Color")
- **Variation choices**: add, edit, delete (e.g. "S", "M", "L" for "Size") with optional price delta

### ๐Ÿ‘ฅ Customer Management (CRM)
- **Add, edit, delete** customers with full contact info, company details, VAT number, barcode, loyalty data, private notes, blacklist status...

### ๐Ÿ“‹ Data & Lists
Retrieve any reference data from your shop:

| Tool | Data |
|---|---|
| `data.list.products` | Items / articles |
| `data.list.departments` | Departments / categories |
| `data_list_department_groups` | Department groups |
| `data_list_vats` | VAT rates |
| `data_list_clients` | Customers |
| `data_list_variations` | Variation types |
| `data_list_payments` | Payment methods |
| `data_list_cashboxes` | Cashboxes |
| `data_list_delivery_men` | Delivery methods |
| `data_list_delivery_zones` | Delivery zones |
| `data_list_relay_points` | Relay / pickup points |
| `data_list_discounts` | Discounts & supplements |
| `data.list.users` | Staff / users |
| `data_list_tables` | Tables (restaurant mode) |
| `data.list.orders` | Orders by date range |

---

## ๐Ÿ›  Available Tools (46)

| Category | Tools |
|---|---|
| **Account** | `account.list`, `account.create` |
| **Auth** | `auth.request.otp`, `auth.login.with_otp`, `auth.logout` |
| **Sales** | `order.create`, `order.edit`, `order.detail`, `data.list.orders`, `data.list.pending_orders` |
| **Reports** | `report.get` |
| **Items** | `plu_add`, `plu_edit`, `plu_delete`, `data.list.products` |
| **Departments** | `dept_add`, `dept_edit`, `dept_delete`, `data.list.departments` |
| **Dept groups** | `dept_group_add`, `dept_group_edit`, `dept_group_delete`, `data_list_department_groups` |
| **VAT** | `vat_add`, `vat_edit`, `vat_delete`, `data_list_vats` |
| **Variations** | `variation_add`, `variation_edit`, `variation_delete`, `data_list_variations` |
| **Variation choices** | `variation_choice_add`, `variation_choice_edit`, `variation_choice_delete` |
| **Customers** | `client_add`, `client_edit`, `client_delete`, `data_list_clients` |
| **Data** | `data_list_payments`, `data_list_cashboxes`, `data_list_delivery_men`, `data_list_delivery_zones`, `data_list_relay_points`, `data_list_discounts`, `data.list.users`, `data_list_tables` |
| **Utility** | `ping` |

---

## โš™๏ธ Prerequisites

You need a [Kash / free-cash-register.net](https://kash.click) account.

**Don't have one?** You can create it directly from the conversation using `account.create`, or register at [kash.click/free-pos-software](https://kash.click/free-pos-software/).

**Already have one?** Retrieve your `APIKEY` and `SHOPID` in the software under **Setup โ†’ Webservices** or connect using oAuth.

---

## ๐Ÿ”Œ Option 1 โ€” Hosted server (recommended)

The easiest way: connect directly to the hosted MCP server at `https://mcp.kash.click/mcp`.

No installation needed. Authentication is handled via OAuth 2.0 with PKCE.

### Claude.ai

In **Settings โ†’ Integrations**, add a new connector:

| Field | Value |
|---|---|
| Name | `Kash` |
| MCP Server URL | `https://mcp.kash.click/mcp` |
| Authentication | `OAuth` |

### ChatGPT

In **Settings โ†’ Connectors โ†’ Create Connector**:

| Field | Value |
|---|---|
| Name | `Kash POS` |
| MCP Server URL | `https://mcp.kash.click/mcp` |
| Authentication | `OAuth` |

### Smithery

Available on [smithery.ai](https://smithery.ai/servers/paracetamol951/kash) โ€” search for **Kash**.

---

## ๐Ÿ’ป Option 2 โ€” Self-hosted (STDIO)

Run the server locally for Claude Desktop or any STDIO-based MCP client.

### Quick start via npx

```bash
npx caisse-enregistreuse-mcp-server --shopid=YOUR_SHOPID --apikey=YOUR_APIKEY
```

### Claude Desktop configuration

Edit `claude_desktop_config.json`:

- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "kash": {
      "command": "npx",
      "args": [
        "caisse-enregistreuse-mcp-server",
        "--shopid=YOUR_SHOPID",
        "--apikey=YOUR_APIKEY"
      ]
    }
  }
}
```

Or using environment variables:

```json
{
  "mcpServers": {
    "kash": {
      "command": "node",
      "args": ["PATH_TO_BUILD/build/stdio.js"],
      "cwd": "PATH_TO_BUILD",
      "env": {
        "SHOPID": "YOUR_SHOPID",
        "APIKEY": "YOUR_APIKEY"
      }
    }
  }
}
```

### Install from source

```bash
# 1) Clone
git clone https://github.com/paracetamol951/caisse-enregistreuse-mcp-server.git
cd caisse-enregistreuse-mcp-server

# 2) Install dependencies
npm install

# 3) Create .env
echo "SHOPID=YOUR_SHOPID" > .env
echo "APIKEY=YOUR_APIKEY" >> .env

# 4) Build
npm run build

# 5) Run
node build/stdio.js
```

### Docker (HTTP mode)

HTTP mode requires Redis. Use Docker Compose:

```bash
docker compose up
```

Or run manually:

```bash
docker run -d -p 6379:6379 redis
npm run dev
```

---

## ๐Ÿ” Authentication flow

### Hosted server (OAuth)
Authentication is handled automatically by the OAuth 2.0 + PKCE flow when you connect through Claude.ai, ChatGPT, or Smithery.

### In-conversation authentication (OTP)
You can also authenticate directly within the conversation โ€” no password required:

```
1. auth.request.otp(email)         โ†’ OTP sent to your inbox
2. auth.login.with_otp(email, otp) โ†’ session initialized โœ“
3. auth.logout()                   โ†’ clear session when done
```

If you don't have an account yet:

```
1. account.list(email)             โ†’ check existing accounts
2. account.create(email, title)    โ†’ create + session auto-initialized โœ“
```

### STDIO / self-hosted
Pass credentials via CLI args or environment variables โ€” `SHOPID` and `APIKEY`.

---

## ๐Ÿ“ก API endpoints

| Endpoint | Description |
|---|---|
| `POST https://mcp.kash.click/mcp` | MCP JSON-RPC endpoint |
| `GET https://mcp.kash.click/health` | Health check โ†’ `{ "status": "ok" }` |
| `GET https://mcp.kash.click/.well-known/mcp/manifest.json` | MCP manifest (tool list) |
| `GET https://mcp.kash.click/.well-known/openid-configuration` | OAuth discovery |

---

## ๐ŸŒ Internationalization

Tool titles and descriptions are available in **English** and **French**, resolved automatically from the `Accept-Language` header or the `MCP_LANG` environment variable.

Locale files: `locales/en/common.json`, `locales/fr/common.json`

---

## Demo credentials

If you want to try the tool without creating an account, you can use the following credentials

Login: Demo15
Password : demodemo

---

## ๐Ÿ’ป Compatible clients

| Client | Mode |
|---|---|
| Claude.ai | HTTP / OAuth |
| Claude Desktop | STDIO |
| ChatGPT | HTTP / OAuth |
| n8n | HTTP |
| Flowise / LangChain | HTTP |
| Smithery | HTTP / OAuth |
| Any MCP client | STDIO or HTTP |

---

## ๐Ÿช Supported business types

When creating an account with `account.create`, use `configType` to pre-load a dataset tailored to your business:

`Bar` ยท `Bakery` ยท `Restaurant` ยท `Fast-food` ยท `Cafe` ยท `Coffee-shop` ยท `Pizzeria` ยท `Brewery` ยท `Food-truck` ยท `Snack` ยท `Florist` ยท `Retail` ยท `Pharmacy` ยท `Supermarket` ยท `Clothing-store` ยท `Ecommerce` ยท `Services` ยท `Beauty-institute` ยท `Coiffeur` ยท `Market` ยท `Library` ยท `Camping` ยท and more...

---

## ๐Ÿ”— Links

- ๐ŸŒ **Website**: [kash.click](https://kash.click)
- ๐Ÿ“– **Documentation**: [kash.click/cash-register-software](https://kash.click/cash-register-software/)
- ๐Ÿ”ง **API Reference**: [kash.click/cash-register-software/mcp](https://kash.click/cash-register-software/mcp/)
- ๐Ÿ†“ **Register for free**: [kash.click/free-pos-software](https://kash.click/free-pos-software/)

---

## ๐Ÿ“‹ License

ยฉ 2025 Net-assembly. [GNU General Public License v3.0](LICENSE)

TDQS

C2.9/5.0

Scored across 17 tools

Disambiguation4/5

Most tools have clearly distinct purposes focused on listing different data entities (cashboxes, clients, products, etc.), with minimal overlap. However, 'data_list_orders' and 'order_detail' could potentially be confused for similar order-related queries, though their descriptions clarify one lists orders and the other retrieves details for a specific order. The 'ping' and 'sale_create' tools are distinct utility and action tools, respectively.

Naming Consistency4/5

The naming follows a consistent 'data_list_' prefix for 14 out of 17 tools, which is predictable and readable. However, there are minor deviations: 'order_detail' uses a different pattern (noun_verb) and 'ping' and 'sale_create' use simple verb-based names, breaking the consistency slightly. The overall pattern is still clear and mostly uniform.

Tool Count4/5

With 17 tools, the count is slightly high but reasonable for a point-of-sale system covering multiple data entities (e.g., cashboxes, clients, products, orders). It provides comprehensive listing capabilities, though it might feel a bit heavy. The scope aligns well with the server's purpose, and each tool serves a specific function without obvious redundancy.

Completeness3/5

The tool set offers extensive listing capabilities for various data entities, which is good for retrieval operations. However, there are notable gaps: it lacks create, update, or delete tools for most entities (e.g., clients, products), except for 'sale_create' which handles sales creation. This limits full CRUD coverage, potentially causing agents to hit dead ends when needing to modify data beyond sales.

Maintenance

ActivityInactive
ResponsivenessNo issues