# Coupon Code Generator — MCP tool `findutils:coupon_code_generator`

Generate a batch of unique random coupon or promo codes: an optional prefix, a random part of a chosen length and character set (with an option to drop the look-alikes 0, O, 1, I and L), and optional groups split by a separator. Codes come from crypto.getRandomValues with unbiased sampling, every code in a batch is different, and a request for more codes than the pattern can make is refused. Up to 10,000 codes per call.

- Category: data
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, API key for tools/call, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/coupon-code-generator/execute (API key, 60 req/min per IP)
- API key: Running a tool needs an API key. Keys are not for sale yet: ask for early access. Without a key, a tool call answers HTTP 402 Payment Required with the error code PAYMENT_REQUIRED. The catalog and the schemas stay open without a key. https://findutils.com/api/#api-keys
- Reference page: https://findutils.com/mcp/coupon-code-generator/
- Same tool on the other surface: https://findutils.com/api/coupon-code-generator/

## Connect

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/ --header "Authorization: Bearer YOUR_API_KEY"
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "coupon_code_generator",
      "arguments": {
        "count": 5,
        "length": 8,
        "prefix": "SPRING-",
        "group_size": 4
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `count` | integer | no | How many codes to make (1-10000). Default 10. Default: `10`. |
| `length` | integer | no | Characters in the random part, not counting the prefix or separators (1-32). Default 8. Default: `8`. |
| `prefix` | string | no | Text put in front of every code, such as "SPRING-". Starts with a letter or digit; letters, digits, "-" and "_" only, up to 20 characters. |
| `charset` | string (upper_digits \| upper \| digits \| lower_digits \| custom) | no | Characters of the random part: upper_digits (A-Z and 0-9, default), upper (A-Z), digits (0-9), lower_digits (a-z and 0-9) or custom (custom_charset). Default: `"upper_digits"`. |
| `custom_charset` | string | no | The characters to draw from when charset is custom: letters and digits, at least 2 different ones. Repeats are ignored. |
| `exclude_lookalikes` | boolean | no | Drop 0, O, 1, I and L (and o, i, l) so a code cannot be misread. Default true. Default: `true`. |
| `group_size` | integer | no | Split the random part into groups of this many characters (0 = no groups, the default). Default: `0`. |
| `separator` | string (- \| _ \| .) | no | Character between groups: "-" (default), "_" or ".". Default: `"-"`. |

Example arguments (verified):

```json
{
  "count": 5,
  "length": 8,
  "prefix": "SPRING-",
  "group_size": 4
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/coupon-code-generator/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "count": 5,
    "length": 8,
    "prefix": "SPRING-",
    "group_size": 4
  }'

# Parameter schema (no key needed)
curl https://api.findutils.com/api/tools/coupon-code-generator
```

Full REST reference: https://findutils.com/api/coupon-code-generator/ · OpenAPI 3.1 spec: https://findutils.com/api/openapi.json

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
