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-mcpsearch 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| confirm | No | Only adds when true; false returns a preview | |
| quantity | No |
TDQS
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.
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.
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.
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.
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.
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 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
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.
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.
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.
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.
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.
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 cartARead-only
Read the user's Coupang cart contents (read-only; requires a logged-in Chrome session).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 ordersARead-only
Read the user's Coupang order history and delivery status (read-only; requires a logged-in Chrome session).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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)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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
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.
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.
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.
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.
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.
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)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).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| limit | No | ||
| maxTextLength | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | false previews the cart; true clicks 구매하기 and opens the order sheet |
TDQS
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.
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.
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.
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.
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.
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 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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| productName | Yes | Product name to remove (partial match) |
TDQS
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.
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.
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.
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.
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.
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)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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sortBy | No | relevance | |
| keyword | Yes | ||
| rocketOnly | No |
TDQS
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.
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.
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.
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.
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.
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.
9 tool updates
v0.2.3- First observed
add_to_cart - First observed
debug_page_structure - First observed
get_cart - First observed
get_my_orders - First observed
get_product_detail - First observed
get_product_reviews - First observed
proceed_to_checkout - First observed
remove_from_cart - First observed
search_products
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
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.
Google Shopping products, prices, sellers, and deals as structured data via a hosted MCP server.
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Related MCP Servers
- AlicenseCqualityDmaintenance한국 택배 배송 조회를 위한 MCP 서버 MCP Server for Korean Shipment Tracking21MIT
- FlicenseNot gradedqualityAmaintenancePersonal 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-
- FlicenseAqualityCmaintenanceA 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-
- 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.-