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