coupang-browser-mcp
This server remote-controls your own Chrome browser to interact with Coupang (Korean e-commerce), providing capabilities the official API cannot — no API key required.
Search products: Search by keyword with filters for Rocket delivery, sort order, and result limit (up to 36).
Get product details: Extract price, rating, review count, and delivery info from a product page URL.
Read product reviews: Fetch reviews including author, date, rating, purchased option, and review text (up to 10 reviews).
Debug page structure: Inspect embedded JSON on any Coupang page to diagnose extraction issues caused by markup changes.
View order history: Read your order history and delivery status (requires logged-in Chrome session).
View cart: Read the current contents of your cart (requires logged-in Chrome session).
Add to cart: Two-step process — preview the product first, then confirm to add it (up to quantity 10).
Remove from cart: Two-step process — preview matching items first, then confirm removal.
Proceed to checkout: Two-step process — preview cart, then open the order sheet in your browser. Payment is never automated and must always be completed manually.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@coupang-browser-mcp search for wireless headphones on Coupang"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
coupang-browser-mcp
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_structuretool to diagnose and update.Payment is never automated.
proceed_to_checkoutstops 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=9222Log 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.shinstead ofnpx 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.shto bring it back for login or checkout (rm ~/.coupang-chrome/keep-visiblere-hides it).
2. Add the server to your MCP client:
claude mcp add coupang-browser -- npx -y coupang-browser-mcpAdd 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 |
"쿠팡에서 에어팟 검색해줘" |
|
"이 상품 평점이랑 리뷰 수 알려줘" |
|
"이 상품 리뷰 좀 읽어줘" |
|
"내 주문 배송 어디까지 왔어?" |
|
"장바구니에 뭐 들어있지?" |
|
"이거 장바구니에 담아줘" |
|
"주문할게, 결제 페이지 열어줘" |
|
Tools
Tool | Parameters | Description |
|
| Extract products from the search page (embedded JSON first, DOM fallback) |
|
| Price, rating, review count from a product page — data the official API can't provide |
|
| Individual reviews (author, date, rating, purchased option, text) — scrolls the lazy-loaded review section into view |
|
| Skeleton of embedded JSON blobs on a page — self-diagnosis when markup drifts |
| — | Order history + delivery status (read-only, needs login) |
| — | Cart contents (read-only, needs login) |
|
| Two-step: preview first, executes only with |
|
| Two-step; removes only when exactly one item matches |
|
| Two-step; on |
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,2That 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
Reads are free, writes confirm. Cart mutations and checkout return a preview and require an explicit
confirm=truesecond call.Money never moves automatically — and this is enforced, not just promised.
openCheckout()clicks only while the URL is stillcart.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.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 |
|
| Chrome DevTools endpoint |
|
| Minimum gap between page loads |
|
| Max page loads per hour |
|
| Tool output encoding; set to |
Troubleshooting
Symptom | Fix |
"Chrome CDP에 연결할 수 없습니다" | Chrome isn't running with |
| Stale debug instance — kill it and relaunch Chrome cleanly |
Empty results / "추출 실패" | Coupang markup changed — run |
"쿠팡 로그인이 필요합니다" | 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 |
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
Available Tools
9 toolsadd_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.
Inputs: url (required), confirm, quantity.
debug_page_structureDebug page structureARead-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.
Inputs: url (required).
get_cartView cartARead-only
Read the user's Coupang cart contents (read-only; requires a logged-in Chrome session).
Inputs: no named parameters.
get_my_ordersMy ordersARead-only
Read the user's Coupang order history and delivery status (read-only; requires a logged-in Chrome session).
Inputs: no named parameters.
get_product_detailProduct detail (own browser)ARead-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.
Inputs: url (required).
get_product_reviewsProduct reviews (own browser)ARead-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).
Inputs: url (required), limit, maxTextLength.
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.
Inputs: confirm.
remove_from_cartRemove from cartADestructive
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.
Inputs: productName (required), confirm.
search_productsSearch Coupang products (own browser)ARead-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.
Inputs: keyword (required), limit, sortBy, rocketOnly.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
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.
All tools use consistent snake_case naming with imperative verbs (search_, get_, add_, remove_, proceed_, debug_). The pattern is uniform and predictable.
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.
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
Related MCP Connectors
Hosted Shopify MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Hosted Web Crawler MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Related MCP Servers
- AlicenseCqualityDmaintenance한국 택배 배송 조회를 위한 MCP 서버 MCP Server for Korean Shipment Tracking21MIT
- FlicenseNot gradedqualityCmaintenancePersonal 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-
- AlicenseAqualityDmaintenanceA 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.5MIT
- FlicenseNot gradedqualityCmaintenanceMCP 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.-