Skip to main content
Glama
hanjoonchoe

coupang-browser-mcp

by hanjoonchoe

coupang-browser-mcp

npm license: MIT Node >= 18 personal use

English · 한국어

Personal-use MCP server that searches Coupang through your own Chrome browser (CDP). No API key, no Partners account — and it can see what the official API can't: ratings, review text, your orders, your cart.

⚠️ Read this first

  • This is a personal tool, not a service. It remote-controls the Chrome you launched, logged in as you, on your IP. Nothing is hosted, collected, or redistributed.

  • It does not bypass bot protection — it drives a real browser session you own.

  • Coupang's ToS may restrict automation tools; use at your own responsibility. Do not use for bulk or commercial data collection.

  • Coupang markup changes can break extraction — use the built-in debug_page_structure tool to diagnose and update.

  • Payment is never automated. proceed_to_checkout stops at the order sheet; the final pay click is always yours.

  • Unofficial project — not affiliated with Coupang.

Related MCP server: MCP JobSearch

Quick Start

1. Launch Chrome with remote debugging (quit Chrome completely first):

# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222

Log into coupang.com in that Chrome if you want order/cart tools.

Don't want a browser window in your face? (macOS) Use the bundled wrapper instead of step 1 — it starts a separate Chrome on its own profile (port 9223), hides its window, and keeps it hidden. Point your MCP client at run-mcp-hidden.sh instead of npx coupang-browser-mcp:

claude mcp add coupang-browser -- \
  "$(npm root -g)/coupang-browser-mcp/scripts/run-mcp-hidden.sh"

Headless Chrome is not used: Coupang serves "Access Denied" to it, and this project does not evade bot detection. The window is real, just hidden. Run scripts/show-chrome.sh to bring it back for login or checkout (rm ~/.coupang-chrome/keep-visible re-hides it).

2. Add the server to your MCP client:

claude mcp add coupang-browser -- npx -y coupang-browser-mcp

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "coupang-browser": { "command": "npx", "args": ["-y", "coupang-browser-mcp"] }
  }
}

Add to ~/.codex/config.toml:

[mcp_servers.coupang-browser]
command = "npx"
args = ["-y", "coupang-browser-mcp"]

Add to opencode.json (project) or ~/.config/opencode/opencode.json (global):

{
  "mcp": {
    "coupang-browser": {
      "type": "local",
      "command": ["npx", "-y", "coupang-browser-mcp"],
      "enabled": true
    }
  }
}

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global), or via Settings → MCP → Add new global MCP server:

{
  "mcpServers": {
    "coupang-browser": { "command": "npx", "args": ["-y", "coupang-browser-mcp"] }
  }
}

Architecture

┌─────────────────┐  stdio (JSON-RPC)  ┌──────────────────────┐
│   MCP client    │◄──────────────────►│  coupang-browser-mcp │
│  (Claude Code,  │                    │                      │
│   Cursor, ...)  │                    │  index.ts   9 tools  │
└─────────────────┘                    │  throttle.ts ≥5s gap │
                                       │  extract.ts  parsers │
                                       └──────────┬───────────┘
                                                  │ CDP (playwright-core)
                                                  │ localhost:9222
                                                  ▼
                                       ┌──────────────────────┐
                                       │   YOUR own Chrome    │
                                       │  (your session, your │
                                       │   login, your IP)    │
                                       └──────────┬───────────┘
                                                  │ real browser traffic
                                                  ▼
                                       ┌──────────────────────┐
                                       │     coupang.com      │
                                       │  search / product /  │
                                       │  reviews / orders /  │
                                       │        cart          │
                                       └──────────────────────┘

Per tool call:  navigate the shared tab → extract (embedded JSON ▸ DOM fallback) → reset to about:blank
Calls are serialized over ONE reused tab: opening a tab makes macOS un-hide Chrome,
which would pop a window on every call.

Example Prompts

You say

Tool used

"쿠팡에서 에어팟 검색해줘"

search_products

"이 상품 평점이랑 리뷰 수 알려줘"

get_product_detail

"이 상품 리뷰 좀 읽어줘"

get_product_reviews

"내 주문 배송 어디까지 왔어?"

get_my_orders

"장바구니에 뭐 들어있지?"

get_cart

"이거 장바구니에 담아줘"

add_to_cart (preview → confirm)

"주문할게, 결제 페이지 열어줘"

proceed_to_checkout (stops before payment)

Tools

Tool

Parameters

Description

search_products

keyword*, limit (≤36), rocketOnly, sortBy

Extract products from the search page (embedded JSON first, DOM fallback)

get_product_detail

url*

Price, rating, review count from a product page — data the official API can't provide

get_product_reviews

url*, limit (≤10), maxTextLength

Individual reviews (author, date, rating, purchased option, text) — scrolls the lazy-loaded review section into view

debug_page_structure

url*

Skeleton of embedded JSON blobs on a page — self-diagnosis when markup drifts

get_my_orders

Order history + delivery status (read-only, needs login)

get_cart

Cart contents (read-only, needs login)

add_to_cart

url*, quantity, confirm

Two-step: preview first, executes only with confirm=true

remove_from_cart

productName*, confirm

Two-step; removes only when exactly one item matches

proceed_to_checkout

confirm

Two-step; on confirm=true opens the order sheet and stops — clicks only on the cart page, never a pay button, tab left open

Output format

Tools return TOON (Token-Oriented Object Notation) rather than JSON. These payloads are mostly uniform arrays — products, reviews, cart items, orders — and TOON states the keys once in a header instead of repeating them on every element:

items[2]{productName,price,quantity}:
  에어팟 프로 3,369000,1
  충전 케이스,8900,2

That cart is 56% smaller than the equivalent JSON. Savings shrink as rows get more string-heavy: a real 60-product search result is only ~18% smaller, because it is dominated by long product and image URLs that no encoding can compress. The server advertises the format in its MCP instructions, so the model knows how to read it. Set COUPANG_MCP_FORMAT=json to get JSON back.

Safety model

  1. Reads are free, writes confirm. Cart mutations and checkout return a preview and require an explicit confirm=true second call.

  2. Money never moves automatically — and this is enforced, not just promised. openCheckout() clicks only while the URL is still cart.coupang.com, refuses any button whose label reads like payment (결제, 바로구매, pay), and once the order sheet is open it stops touching the page. No code path clicks a pay button.

  3. Polite self-throttle: ≥5s between page loads, ≤60 loads/hour (configurable). There's no contractual limit here, so we impose our own.

Configuration

Env var

Default

Description

COUPANG_CDP_URL

http://localhost:9222

Chrome DevTools endpoint

COUPANG_MIN_GAP_MS

5000

Minimum gap between page loads

COUPANG_HOURLY_CEILING

60

Max page loads per hour

COUPANG_MCP_FORMAT

toon

Tool output encoding; set to json to opt out of TOON

Troubleshooting

Symptom

Fix

"Chrome CDP에 연결할 수 없습니다"

Chrome isn't running with --remote-debugging-port=9222, or an older non-debug Chrome instance is holding the profile — quit Chrome fully and relaunch with the flag

Browser context management is not supported

Stale debug instance — kill it and relaunch Chrome cleanly

Empty results / "추출 실패"

Coupang markup changed — run debug_page_structure on the same URL and file an issue with its output

"쿠팡 로그인이 필요합니다"

Log into coupang.com in the debug Chrome (order/cart tools only)

A Chrome window pops up on every call

You're on an older version — 0.2.1 and earlier opened a new tab per call. Upgrade, and use run-mcp-hidden.sh if you want the window hidden entirely

Development

npm install
npm run lint                      # eslint (type-checked)
npm test                          # extraction unit tests (no browser needed)
npm run build                     # tsc → dist/
npx tsx scripts/tool-output.ts    # live check → test-output/*.txt (uses your Chrome if running)

License

MIT

Available Tools

9 tools
add_to_cartAdd to cartA

Add a product to the cart. With confirm=false (default) it does NOT add — it returns a preview of the target product for the user to verify; call again with confirm=true to actually add. Products requiring option selection are added with the default option, or an explanation is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
confirmNoOnly adds when true; false returns a preview
quantityNo

TDQS

A4.6/5.0
Behavior5/5

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

The description reveals the critical behavioral trait: the tool is read-only when confirm=false and mutating when confirm=true, going beyond the annotations which only indicate global readOnlyHint=false. It also addresses handling of products requiring option selection.

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?

Two well-structured sentences cover the main action, the two-phase behavior, and an edge case. Every sentence is necessary and no redundant information.

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

Completeness4/5

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

For a tool with 3 parameters, no output schema, and partial annotations, the description covers core behavior and an important edge case (options). It could optionally describe the preview return format, but overall it is sufficiently complete for correct invocation.

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

Parameters4/5

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

With only 33% schema coverage, the description adds meaning to url (the product to add), clarifies confirm's role (preview vs add), and explains quantity's default and max. The mention of 'default option' for products with options provides additional context not in the schema.

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 tool adds a product to the cart, with a two-step process using confirm flag. It distinguishes from sibling tools like get_cart, remove_from_cart, and proceed_to_checkout by focusing on adding and previewing.

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

Usage Guidelines4/5

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

The description explicitly explains when to use confirm=false (preview) and confirm=true (actual add). It doesn't explicitly mention alternatives like using get_cart after adding, but the context is clear enough for an AI agent.

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

debug_page_structureDebug page structureA
Read-only

Summarize which embedded JSON blobs (NEXT_DATA, preloaded state, JSON-LD) exist on a Coupang page and their key skeleton. Use when extraction breaks (markup drift) to find the new keys/selectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds that it summarizes embedded JSON blobs and their key skeleton, adding behavioral context beyond the annotations.

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 two sentences: first states the function, second states usage context. No wasted words, highly efficient.

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

Completeness4/5

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

For a simple one-param tool with no output schema and read-only annotations, the description explains purpose and usage adequately. Could mention what 'key skeleton' entails, but overall sufficient.

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?

The schema has one parameter (url) with 0% description coverage. The description implies the url is the page to debug, but does not explicitly describe it. For a single obvious parameter, this is adequate but adds minimal value beyond the schema.

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 tool summarizes embedded JSON blobs on a Coupang page and their key skeleton, used when extraction breaks. It distinguishes from sibling tools which are all e-commerce actions.

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

Usage Guidelines4/5

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

The description explicitly says 'Use when extraction breaks (markup drift) to find the new keys/selectors.' This provides clear context for when to use, though no alternative tools are mentioned.

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

get_cartView cartA
Read-only

Read the user's Coupang cart contents (read-only; requires a logged-in Chrome session).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint; the description adds the session requirement, which is useful beyond annotations.

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, front-loaded with purpose, no wasted words.

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

Completeness4/5

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

Tool is simple with no parameters; description covers purpose, prerequisites, and read-only nature. Could specify return format but sufficient given context.

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

Parameters4/5

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

No parameters exist; schema coverage is 100%. The description does not need to add parameter details but hints at returning cart contents.

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 (Read) and resource (cart contents), distinguishing it from sibling tools like add_to_cart and remove_from_cart.

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

Usage Guidelines4/5

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

It mentions a prerequisite (logged-in Chrome session) but does not explicitly compare with alternatives. The context of sibling tools makes when-to-use clear.

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

get_my_ordersMy ordersA
Read-only

Read the user's Coupang order history and delivery status (read-only; requires a logged-in Chrome session).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint, and the description adds the prerequisite of a logged-in Chrome session. This goes beyond annotations by specifying an environmental requirement, though the read-only aspect is redundant.

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, front-loaded sentence with no unnecessary words. It efficiently conveys the core function, constraints, and prerequisite.

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

Completeness5/5

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

For a tool with no parameters and no output schema, the description provides all essential context: what it does, read-only nature, and a critical prerequisite. It is completely adequate for the complexity.

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

Parameters4/5

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

There are no parameters (0), so the baseline for parameter semantics is 4. The description adds no parameter-specific information, which is appropriate given the schema is fully covered.

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 tool reads order history and delivery status, specifies it's read-only, and mentions the prerequisite of a logged-in Chrome session. This distinguishes it from sibling tools which involve cart, product details, or checkout operations.

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

Usage Guidelines4/5

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

The description includes a usage condition ('requires a logged-in Chrome session') but does not explicitly mention when not to use it or compare to alternatives. However, given the distinct purpose and no similar tools, this is sufficient.

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

get_product_detailProduct detail (own browser)A
Read-only

Open a Coupang product page and extract price, rating, review count, and delivery info (JSON-LD / embedded data first). Gives details the official API cannot provide.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds value by revealing the extraction method (JSON-LD/embedded data first, implying web scraping) and that it opens a product page. This context goes beyond annotations without contradicting them.

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?

Two sentences, front-loaded with purpose and key data points. Every word earns its place; no fluff or repetition. Highly efficient.

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 no output schema and a web scraping tool, the description lists extracted fields but does not describe the output format or structure. It also does not mention potential limitations (e.g., failure modes, rate limiting). Adequate but could be more complete.

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

Parameters2/5

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

The sole parameter 'url' has 0% schema description coverage. The description only says 'Open a Coupang product page,' which implies the url should be a product page, but it does not specify the expected URL format, whether relative/absolute, or what happens with invalid URLs. This provides little additional meaning beyond the schema.

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 tool opens a product page and extracts specific details (price, rating, review count, delivery info), distinguishing it from sibling tools like search_products or get_product_reviews. The verb 'open' and 'extract' combined with the specific data points make the purpose highly unambiguous.

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 obtaining details the official API cannot provide, but it does not explicitly state when to use this tool versus alternatives like get_product_reviews for reviews only. No 'when not to use' or prerequisite guidance is given.

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

get_product_reviewsProduct reviews (own browser)A
Read-only

Open a Coupang product page, scroll to the review section, and extract individual reviews (author, date, rating, text). Returns the first review page (up to 10).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
limitNo
maxTextLengthNo

TDQS

A3.8/5.0
Behavior4/5

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

Adds context beyond annotations: opens browser, scrolls, extracts up to 10 reviews. No contradiction with readOnlyHint and openWorldHint.

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?

Two sentences, no fluff. Front-loaded with action and return info.

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?

No output schema; description mentions return of author, date, rating, text but not structure or pagination. Adequate for basic understanding but incomplete.

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

Parameters2/5

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

Schema has 0% coverage for parameter descriptions. Description only clarifies the 'limit' parameter (up to 10) but does not explain 'url' or 'maxTextLength'.

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 states verb 'extract' and resource 'individual reviews' from a product page. It distinguishes from siblings like 'get_product_detail' and 'search_products'.

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?

Implied usage for getting reviews but no explicit when-not or alternatives. Could mention sibling tools like 'get_product_detail' for product info.

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

proceed_to_checkoutOpen checkout (payment is human-only)A

Open the order sheet (pre-payment page) from the cart and STOP. The tab is left open in the user's browser. This tool NEVER clicks the pay button — the final payment is always done by the human. Two-step like the other write tools: call without confirm to see what is in the cart, then confirm=true to open the order sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNofalse previews the cart; true clicks 구매하기 and opens the order sheet

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations (openWorldHint: true, readOnlyHint: false), the description adds critical behavioral details: 'The tab is left open in the user's browser' and 'This tool NEVER clicks the pay button — the final payment is always done by the human.' No contradictions with annotations.

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 three sentences, each serving a purpose: action, constraint, usage pattern. It is front-loaded with the core action and contains no redundant information.

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

Completeness4/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 parameter and no output schema, the description explains the outcome (order sheet opened, tab left open) and the two-step process. It could mention error conditions (e.g., empty cart), but completeness is high given low complexity.

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 good description of the 'confirm' parameter. The description reiterates the two-step pattern but adds no new semantic information beyond the schema. Baseline 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 tool's purpose: 'Open the order sheet (pre-payment page) from the cart and STOP.' It uses a specific verb ('Open') and resource ('order sheet'), and distinguishes itself from all sibling tools as the only one dealing with checkout.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: call without 'confirm' to preview the cart, then with 'confirm=true' to open the order sheet. It also states the tool NEVER clicks the pay button, clarifying when the human must act. It does not explicitly list when NOT to use it, but the sibling list contains no other checkout tool, so the guidance is clear.

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

remove_from_cartRemove from cartA
Destructive

Remove an item from the cart. With confirm=false (default) it only returns items matching the name — narrow to exactly one match, then call again with confirm=true to remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
productNameYesProduct name to remove (partial match)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, but the description adds valuable context: the confirm parameter controls preview vs actual removal, and the tool returns matching items when confirm=false. No contradictions with annotations.

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?

Two sentences with no redundant information. Critical behavior is front-loaded. Every sentence serves a purpose.

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

Completeness4/5

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

Given the tool has only two parameters and no output schema, the description sufficiently covers the essential workflow. It could mention the return format of the preview step, but overall completeness is high.

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

Parameters4/5

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

Schema describes productName with partial match, but lacks description for confirm. The description compensates by explaining confirm's role (preview vs removal). This adds essential meaning beyond the schema.

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 explicitly states the action ('Remove an item from the cart') and distinguishes itself from siblings like add_to_cart (adds) and get_cart (reads). The two-step process with confirm parameter is clearly explained.

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

Usage Guidelines4/5

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

The description provides clear usage guidance: use confirm=false to preview matching items, then narrow to one match and call again with confirm=true to remove. It does not explicitly state when not to use, but the two-step pattern is well-defined.

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

search_productsSearch Coupang products (own browser)A
Read-only

Search Coupang by opening the search page in the USER'S OWN Chrome (CDP). No API key needed. Personal-use tool — Chrome must be running with --remote-debugging-port=9222.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sortByNorelevance
keywordYes
rocketOnlyNo

TDQS

A3.8/5.0
Behavior4/5

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

The description adds behavioral context beyond the readOnlyHint and openWorldHint annotations by specifying that the tool opens the search page in the user's own Chrome and requires a remote debugging port. This clarifies the non-API nature and the reliance on the user's browser state.

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 extremely concise with three sentences, each adding essential information: the action, the no-API-key note, and the prerequisite. There is no redundancy or filler text.

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 the lack of an output schema, the description should ideally mention what the tool returns (e.g., search results or product list). It covers usage context and prerequisites but not the result format or pagination behavior, leaving a notable gap.

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

Parameters2/5

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

The schema has 0% description coverage, and the description does not explain any of the four parameters (keyword, limit, sortBy, rocketOnly). The agent must infer meaning from parameter names and type/enum constraints, which are somewhat self-explanatory but lack explicit guidance.

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 tool searches Coupang by opening the search page in the user's own Chrome browser, which is a specific verb-resource combination. The title also mentions 'products', and the description distinguishes it from sibling tools like add_to_cart and get_product_detail by focusing on the search function.

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 explains that no API key is needed and that Chrome must be running with a specific debugging port, providing prerequisites. However, it does not explicitly state when to use this tool versus alternatives, such as API-based searches, 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.

  1. 9 tool updatesv0.2.3
    • First observedadd_to_cart
    • First observeddebug_page_structure
    • First observedget_cart
    • First observedget_my_orders
    • First observedget_product_detail
    • First observedget_product_reviews
    • First observedproceed_to_checkout
    • First observedremove_from_cart
    • First observedsearch_products

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct action or resource: search, product details, reviews, cart operations (add/remove/view), checkout initiation, order history, and page debugging. No two tools have overlapping purposes.

Naming Consistency5/5

All tools use consistent snake_case naming with imperative verbs (search_, get_, add_, remove_, proceed_, debug_). The pattern is uniform and predictable.

Tool Count5/5

9 tools cover the core workflows of a Coupang browser automation server (search, product info, reviews, cart management, checkout, orders, debugging). The count is well-scoped and each tool serves a clear purpose.

Completeness4/5

The tool set covers the main shopping lifecycle: search, details, reviews, cart add/remove/view, checkout initiation, and order history. Minor gaps include no tool to update cart item quantities or apply coupons, but core functionality is present.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Personal job posting management MCP server that fetches job postings from multiple Korean job sites and stores them for LLM analysis, enabling timeline tracking and cover letter draft management.
    1
    -
  • F
    license
    A
    quality
    C
    maintenance
    A local AI shopping MCP server for Amazon.co.jp that searches products, adds them to cart, and opens the review page without automating purchase confirmation. It keeps your Amazon login confined to your machine's Chrome profile.
    5
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server that automates Coupang Supplier Hub Private Label fulfillment workflows, including order lookup, confirmation, courier registration, waybill printing, and shipment document output, with a local dashboard and 16-step tools.
    -