Skip to main content
Glama
markswendsen-code

Mercari MCP Server

README.md
# @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

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action: viewing own listings, purchases, sales, searching, getting details, and creating listings. No overlap in purpose.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., get_my_listings, search_listings, create_listing), making the set predictable.

Tool Count5/5

With 6 tools covering core marketplace operations (search, view, create), the count is well-scoped and not excessive.

Completeness3/5

Missing update and delete for listings, which are common lifecycle operations. The set covers creation and reading but not full CRUD.

Maintenance

ActivityInactive
ResponsivenessNo issues