npm package: @striderlabs/mcp-mercari
Description: MCP server for Mercari resale marketplace automation
Author: Strider Labs
Latest version: 1.0.0

# @striderlabs/mcp-mercari

MCP (Model Context Protocol) server for automating Mercari resale marketplace operations using Playwright and Browserbase.

## Overview

This server exposes Mercari functionality as MCP tools, enabling AI assistants to search listings, manage your selling inventory, view purchase/sales history, and create new listings.

## Requirements

- Node.js >= 18
- A [Browserbase](https://browserbase.com) account with CDP URL
- Mercari account (for authenticated operations)

## Installation

```bash
npm install @striderlabs/mcp-mercari
```

Or from tarball:
```bash
npm install ./striderlabs-mcp-mercari-1.0.0.tgz
```

## Configuration

Set the following environment variable:

```bash
export BROWSERBASE_CDP_URL="wss://connect.browserbase.com?apiKey=YOUR_KEY&sessionId=YOUR_SESSION"
```

## Usage with Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mercari": {
      "command": "npx",
      "args": ["@striderlabs/mcp-mercari"],
      "env": {
        "BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY&sessionId=YOUR_SESSION"
      }
    }
  }
}
```

## Tools

### `search_listings`
Search Mercari listings by keyword, category, and price range.

**Parameters:**
- `keyword` (required): Search term
- `category` (optional): Category filter (e.g. "Electronics", "Clothing")
- `min_price` (optional): Minimum price in USD
- `max_price` (optional): Maximum price in USD
- `condition` (optional): `new` | `like_new` | `good` | `fair` | `poor`
- `limit` (optional): Max results (default: 20)

**Example:**
```json
{
  "keyword": "iPhone 14",
  "max_price": 600,
  "condition": "good",
  "limit": 10
}
```

---

### `get_listing_details`
Get detailed information about a specific listing.

**Parameters:**
- `listing_id` (required): Mercari item ID or full URL

**Example:**
```json
{
  "listing_id": "m12345678"
}
```

---

### `get_my_listings`
Get listings you're currently selling (requires authentication).

**Parameters:**
- `status` (optional): `on_sale` | `sold_out` | `all` (default: `on_sale`)

---

### `create_listing`
Create a new item listing on Mercari (requires authentication).

**Parameters:**
- `title` (required): Item title
- `description` (required): Item description
- `price` (required): Price in USD
- `condition` (required): `new` | `like_new` | `good` | `fair` | `poor`
- `category` (optional): Item category
- `shipping_from` (optional): State code (e.g. "CA")
- `images` (optional): Array of local file paths to item images

**Example:**
```json
{
  "title": "Nike Air Max 90 Size 10",
  "description": "Worn twice, great condition. No box.",
  "price": 85,
  "condition": "like_new",
  "shipping_from": "CA",
  "images": ["/path/to/shoe-front.jpg", "/path/to/shoe-side.jpg"]
}
```

---

### `get_purchases`
View your purchase history (requires authentication).

**Parameters:**
- `limit` (optional): Max items to return (default: 20)

---

### `get_sales`
View your sales history (requires authentication).

**Parameters:**
- `limit` (optional): Max items to return (default: 20)

## Authentication

Authenticated tools (`get_my_listings`, `create_listing`, `get_purchases`, `get_sales`) require an active Mercari session in the Browserbase browser. To authenticate:

1. Use Browserbase's live view to navigate to mercari.com and log in manually
2. The session cookies will persist for subsequent tool calls

## How It Works

This server uses [Playwright](https://playwright.dev) to control a browser via [Browserbase](https://browserbase.com)'s CDP endpoint. Each tool call:
1. Connects to the remote browser via CDP
2. Navigates to the relevant Mercari page
3. Extracts or fills in data using DOM selectors
4. Returns structured JSON results

## License

MIT