Skip to main content
Glama
markswendsen-code

Mercari MCP Server

@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.

Related MCP server: mcp-amazon

Requirements

  • Node.js >= 18

  • A Browserbase account with CDP URL

  • Mercari account (for authenticated operations)

Installation

npm install @striderlabs/mcp-mercari

Or from tarball:

npm install ./striderlabs-mcp-mercari-1.0.0.tgz

Configuration

Set the following environment variable:

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:

{
  "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:

{
  "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:

{
  "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:

{
  "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 to control a browser via Browserbase'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

Available Tools

6 tools
create_listingB

Create a new listing on Mercari

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesListing price in USD
titleYesItem title
imagesNoLocal file paths or URLs of item images
categoryNoItem category
conditionYesItem condition
descriptionYesItem description
shipping_fromNoShip from state code (e.g. 'CA')

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full burden. It only says 'Create', implying a write operation, but gives no details about side effects, authorization needs, or success/error behavior. More context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and front-loaded. However, it is so brief that it feels under-specified rather than efficiently written. Slightly more detail would improve it without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, 4 required, and an enum for condition, the description is too sparse. It does not explain what happens upon creation (e.g., returns listing ID), any constraints, or required setup. Lacks completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters. The description adds no extra information about parameters, hence baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new listing on Mercari', with a specific verb and resource. It distinguishes well from sibling tools like get_my_listings or search_listings which are read operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or restrictions. It lacks explicit when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_listing_detailsB

Get detailed information about a specific Mercari listing

ParametersJSON Schema
NameRequiredDescriptionDefault
listing_idYesMercari listing ID or full URL

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'detailed information' without specifying what that includes (e.g., price, condition, seller info). No mention of authentication needs, rate limits, or side effects. For a read operation, the lack of detail on return behavior is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no superfluous words. It is efficient and front-loaded. However, it could include a bit more context without losing conciseness, such as what 'detailed information' means.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is incomplete. It does not describe the response format or list the fields returned. For a complete understanding, an AI agent would need to guess or rely on prior knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the parameter 'listing_id' is described as 'Mercari listing ID or full URL'). The tool description adds no further semantics beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('get detailed information') and the resource ('specific Mercari listing'), with a verb+resource structure. It distinguishes from sibling tools like get_my_listings, get_purchases, and search_listings, which operate on different scopes (user-specific lists, purchases, or search queries).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. For example, it does not mention that this tool retrieves a single listing by ID, while search_listings is for broad queries. The description lacks context about prerequisites or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_listingsA

Get listings the authenticated user is currently selling

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by listing status (default: on_sale)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It accurately states the function but lacks details on pagination, rate limits, or authentication requirements. The description is honest but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no filler words. Front-loaded and to the point. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description is adequate. However, it could add context like 'returns only listings owned by the user' and 'default filters' to improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (the optional status parameter is described). Description adds no extra meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it retrieves listings the authenticated user is selling. The verb 'get' and resource 'my listings' are specific and distinguish from sibling tools like get_purchases (buyer perspective) and search_listings (general search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the user wants their own active listings, but no explicit guidance on when to use vs alternatives like search_listings or get_listing_details. No exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_purchasesA

View purchase history for the authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax purchases to return (default 20)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully convey behavior. It only states 'View' (implies read-only) but lacks details on authorization beyond 'authenticated user', pagination, rate limits, or what data is returned (e.g., refunded purchases).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that directly states the tool's purpose without extraneous words, earning high marks for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple tool with one optional parameter, the description is minimally adequate. However, it omits potential details like sorting, pagination mechanics, or return value structure, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'limit' described as 'Max purchases to return (default 20)'. The description adds no additional meaning, meeting the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (View) and resource (purchase history) and clearly distinguishes from sibling tools like get_sales (seller view), establishing it's for the buyer's perspective.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing own purchase history but does not explicitly state when to use this versus alternatives like get_sales or search tools. No guidance on prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_salesA

View sales history for the authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax sales to return (default 20)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description only implies a read operation ('View') but does not disclose pagination, caching, or authentication requirements beyond 'authenticated user'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words, sharply focused on the tool's core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple list tool with one optional parameter, but lacking description of the return format or content of sales history, which would benefit an agent without output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (only one parameter with description). The description adds no additional meaning beyond what the schema already provides for the 'limit' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'View' and resource 'sales history', with scope 'for the authenticated user'. This distinguishes it from siblings like get_purchases and get_my_listings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing one's own sales but does not explicitly contrast with alternatives like get_purchases or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_listingsC

Search Mercari listings by keyword, category, and price range

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 20)
keywordYesSearch keyword
categoryNoCategory filter (e.g. 'Electronics', 'Clothing')
conditionNoItem condition filter
max_priceNoMaximum price in USD
min_priceNoMinimum price in USD

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It does not mention that it is a read-only operation, any rate limits, pagination behavior, or that it searches public listings only. The limit parameter is present but no pagination details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Could be more structured with separate sentences for scope or behavior, but adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no output schema, and no annotations, the description is too sparse. It omits return format, pagination, default behavior, and search scope (public vs private).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 6 parameters described in schema). The description paraphrases some parameters (keyword, category, price range) but adds no new semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches listings by keyword, category, and price range. However, it does not distinguish from sibling tools like 'get_my_listings' (which searches user's own listings) or 'get_listing_details'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., get_my_listings, get_listing_details). The description only states what it does, not when or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedcreate_listing
    • First observedget_listing_details
    • First observedget_my_listings
    • First observedget_purchases
    • First observedget_sales
    • First observedsearch_listings

TDQS

A3.5/5.0
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
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-mercari'

If you have feedback or need assistance with the MCP directory API, please join our Discord server