Skip to main content
Glama
README.md
# @striderlabs/mcp-lemonade

An MCP (Model Context Protocol) connector for Lemonade insurance. This package enables AI assistants like Claude to interact with Lemonade's insurance services for renters, homeowners, pet, and car insurance.

## What This Package Does

This MCP server provides tools to:
- Get insurance quotes for renters, homeowners, pet, and car insurance
- View existing policy details
- File insurance claims
- Check claim statuses
- Update policy coverage
- Retrieve policy documents
- Contact Lemonade customer support

The server uses Playwright for browser automation against lemonade.com and communicates via stdio transport following the Model Context Protocol specification.

## Requirements

- Node.js 18 or later
- Playwright with Chromium browser installed

## Installation

```bash
npm install @striderlabs/mcp-lemonade
npx playwright install chromium
```

Or install globally:

```bash
npm install -g @striderlabs/mcp-lemonade
npx playwright install chromium
```

## Configuration

### Claude Desktop

Add the following to your Claude Desktop configuration file:

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

```json
{
  "mcpServers": {
    "lemonade": {
      "command": "npx",
      "args": ["@striderlabs/mcp-lemonade"]
    }
  }
}
```

If installed globally:

```json
{
  "mcpServers": {
    "lemonade": {
      "command": "mcp-lemonade"
    }
  }
}
```

### Other MCP Clients

For any MCP-compatible client, configure the server to run:

```bash
npx @striderlabs/mcp-lemonade
```

The server communicates over stdio.

## Tools

### 1. `get_quote`

Get an insurance quote from Lemonade.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `insurance_type` | string (enum) | Yes | One of: `renters`, `homeowners`, `pet`, `car` |
| `zip_code` | string | Yes | ZIP code for the insurance location |
| `coverage_amount` | number | No | Desired coverage amount in dollars |
| `additional_info` | object | No | Additional information specific to the insurance type |

**Example:**
```
Get me a renters insurance quote for ZIP code 10001 with $50,000 coverage
```

---

### 2. `view_policy`

View details of an existing Lemonade insurance policy.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address associated with the policy |
| `policy_id` | string | No | The policy ID to retrieve |

**Example:**
```
Show me my Lemonade policy details for user@example.com
```

---

### 3. `file_claim`

File a new insurance claim with Lemonade.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `policy_id` | string | Yes | The policy ID for which to file the claim |
| `claim_type` | string | Yes | Type of claim (e.g., theft, damage, medical) |
| `description` | string | Yes | Detailed description of the incident |
| `incident_date` | string | Yes | Date of the incident (YYYY-MM-DD format) |
| `estimated_loss` | number | No | Estimated loss amount in dollars |

**Example:**
```
File a theft claim for policy LM-12345, my laptop was stolen on 2024-01-15, estimated loss $1,500
```

---

### 4. `check_claim_status`

Check the status of an existing Lemonade insurance claim.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `claim_id` | string | Yes | The claim ID to check |
| `email` | string | Yes | Email address associated with the claim |

**Example:**
```
Check the status of claim CLM-67890 for user@example.com
```

---

### 5. `update_coverage`

Update coverage on an existing Lemonade insurance policy.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `policy_id` | string | Yes | The policy ID to update |
| `coverage_changes` | object | Yes | Object describing the coverage changes |
| `coverage_changes.coverage_amount` | number | No | New coverage amount in dollars |
| `coverage_changes.deductible` | number | No | New deductible amount in dollars |
| `coverage_changes.add_ons` | string[] | No | List of add-ons to add or remove |

**Example:**
```
Update policy LM-12345 to increase coverage to $75,000 and lower deductible to $500
```

---

### 6. `get_documents`

Retrieve policy documents from Lemonade.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `policy_id` | string | Yes | The policy ID to get documents for |
| `email` | string | Yes | Email address associated with the policy |
| `document_type` | string (enum) | No | One of: `declarations`, `contract`, `id_card`, `all` |

**Example:**
```
Get the declarations page for policy LM-12345 associated with user@example.com
```

---

### 7. `contact_support`

Contact Lemonade customer support.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subject` | string | Yes | Subject of the support request |
| `message` | string | Yes | Detailed message for support |
| `email` | string | Yes | Email address for the response |
| `policy_id` | string | No | Policy ID related to the support request |
| `contact_method` | string (enum) | No | One of: `chat`, `email`, `phone` |

**Example:**
```
Contact Lemonade support about a billing question for policy LM-12345, prefer email contact
```

---

## Usage Examples

Here are some natural language prompts you can use with Claude after configuring this MCP server:

```
"Get me a homeowners insurance quote for ZIP 90210"

"What are my Lemonade policy details? My email is john@example.com"

"I need to file a water damage claim for policy LM-98765. The incident happened on 2024-01-20 and estimated damage is $3,000"

"Check the status of my claim CLM-11111, my email is jane@example.com"

"Update my renters insurance policy LM-55555 to add jewelry coverage"

"Download my insurance ID card for policy LM-77777, email is user@example.com"

"I have a question about my premium increase. Contact Lemonade support by phone for policy LM-33333"
```

## Notes on Playwright

This package uses Playwright for browser automation to interact with lemonade.com. You must install the Chromium browser separately:

```bash
npx playwright install chromium
```

The browser runs in headless mode by default. Some operations (viewing policies, filing claims, updating coverage, getting documents) require Lemonade account authentication and will return step-by-step instructions for completing the action in the Lemonade app or website, as automated login is not supported for security reasons.

## Development

```bash
# Clone and install dependencies
git clone <repo-url>
cd mcp-lemonade
npm install

# Install Playwright browsers
npx playwright install chromium

# Build
npm run build

# Run in development mode
npm run dev
```

## License

MIT - Strider Labs

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific insurance operations: checking claim status, contacting support, filing claims, retrieving documents, getting quotes, updating coverage, and viewing policies. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., check_claim_status, file_claim, get_quote). The naming is uniform and predictable across all seven tools.

Tool Count5/5

With 7 tools, the server is well-scoped for an insurance domain, covering key operations like quotes, policies, claims, and support. Each tool earns its place without being excessive or insufficient.

Completeness4/5

The tool set provides strong coverage for core insurance workflows, including quoting, policy management, claims, and support. A minor gap exists in lacking a tool for purchasing a policy after getting a quote, but agents can likely work around this.

Maintenance

ActivityInactive
ResponsivenessNo issues