
Coupang Product Search
Search Coupang catalog and filter by budget from the agent via a bootstrapped Coupang Partners MCP-compatible CLI.
Overview
coupang-product-search is an agent skill for the Idea phase that bootstraps the Coupang Partners CLI and runs product search and budget-filtered queries.
Install
npx skills add https://github.com/nomadamas/k-skill --skill coupang-product-searchWhat is this skill?
- Bootstraps retention-corp/coupang_partners from approved upstream into user cache on demand
- Delegates to upstream bin/coupang_mcp.py for MCP-compatible local commands
- CLI examples: tools, init, keyword search, and budget search with max-price caps
- Honors upstream environment variables when forwarding to the partners CLI
- k-skill repo does not vendor third-party code—always pulls from the pinned GitHub upstream
- Clones from https://github.com/retention-corp/coupang_partners.git into a user cache by default
Adoption & trust: 2.5k installs on skills.sh; 5.4k GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want Coupang product intel inside your agent session but do not want to manually clone and wire the partners MCP repo every time.
Who is it for?
Solo builders exploring Korean ecommerce niches, affiliate content, or deal pages who need repeatable Coupang search from the terminal.
Skip if: Non-Coupang markets, full storefront builds without separate commerce stack, or teams that forbid cloning third-party repos at runtime.
When should I use this skill?
User needs Coupang product search, budget-bounded listing research, or to init/run the local Coupang Partners MCP-compatible CLI.
What do I get? / Deliverables
You get local MCP-style search results from the approved upstream checkout so you can shortlist niches, price bands, and affiliate candidates before validate-or-build work.
- Coupang search result payloads from upstream CLI
- Initialized local partners toolchain in cache directory
Recommended Skills
Journey fit
Affiliate and merchandising decisions start in Idea when you compare products, prices, and niches before committing to a store or content angle. The wrapper exposes search and budget-style product queries—canonical market research, not checkout or storefront build.
How it compares
Skill-packaged bootstrap to a local Coupang MCP CLI—not a hosted SaaS catalog API or generic web search skill.
Common Questions / FAQ
Who is coupang-product-search for?
Indie makers and affiliate/content builders who target Coupang and want agent-driven product search via the retention-corp/coupang_partners toolchain.
When should I use coupang-product-search?
Use it in Idea (research) to compare keywords and price caps; optionally early Validate when pricing assumptions need live Coupang anchors.
Is coupang-product-search safe to install?
It clones and executes upstream Python from GitHub—review the Security Audits panel on this page and audit the cached repo and partner credentials yourself.
SKILL.md
READMESKILL.md - Coupang Product Search
#!/usr/bin/env python3 """Bootstrap and run retention-corp/coupang_partners Coupang MCP tools. The k-skill repo intentionally does not vendor the third-party implementation. This wrapper keeps the skill pointed at the approved upstream repository, clones it into a user cache when needed, and then delegates to its local MCP-compatible CLI. """ from __future__ import annotations import argparse import os import pathlib import subprocess import sys from typing import Sequence UPSTREAM_REPO_URL = "https://github.com/retention-corp/coupang_partners.git" DEFAULT_MCP_ENDPOINT = "local://coupang-mcp" DEFAULT_REPO_DIR = pathlib.Path(os.getenv("COUPANG_PARTNERS_REPO_DIR", "~/.cache/k-skill/coupang_partners")).expanduser() UPSTREAM_CLI = pathlib.Path("bin") / "coupang_mcp.py" class BootstrapError(RuntimeError): """Raised when the upstream checkout cannot be prepared.""" def parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: parser = argparse.ArgumentParser( description="Run the retention-corp/coupang_partners local Coupang MCP-compatible CLI.", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=( "Examples:\n" " coupang_partners_mcp.py tools\n" " coupang_partners_mcp.py init\n" " coupang_partners_mcp.py search 생수\n" " coupang_partners_mcp.py budget 키보드 --max-price 100000\n" "\n" "Honored upstream environment variables (forwarded as-is):\n" " COUPANG_ACCESS_KEY, COUPANG_SECRET_KEY\n" " Operator Coupang Partners API credentials. When set, upstream\n" " uses the local HMAC-signed Coupang Partners path.\n" " OPENCLAW_SHOPPING_CLIENT_ID\n" " Allowlisted client id for the hosted fallback. upstream sends\n" " openclaw-skill by default, which is the value currently on the\n" " Retention Corp allowlist; k-skill does not override this.\n" " OPENCLAW_SHOPPING_FORCE_HOSTED=1\n" " Force the hosted fallback even when Coupang keys are present.\n" " OPENCLAW_SHOPPING_BASE_URL\n" " Override the hosted backend base URL. Default upstream target\n" " is https://a.retn.kr and /v1/public/assist is the public entry.\n" "\n" "When both COUPANG_ACCESS_KEY and COUPANG_SECRET_KEY are missing,\n" "upstream falls back to the hosted Retention Corp backend so this\n" "skill keeps working without Coupang Partners credentials." ), ) parser.add_argument( "--repo-dir", default=str(DEFAULT_REPO_DIR), help="Checkout directory for retention-corp/coupang_partners (default: %(default)s).", ) parser.add_argument( "--no-clone", action="store_true", help="Do not clone the upstream repository if it is missing; fail with setup guidance instead.", ) parser.add_argument( "--update", action="store_true", help="Run git pull --ff-only in an existing upstream checkout before delegating.", ) parser.add_argument( "upstream_args", nargs=argparse.REMAINDER, help="Arguments passed to bin/coupang_mcp.py, for example: tools, search 생수, rocket 에어팟.", ) args = parser.parse_args(argv) if args.upstream_args and args.upstream_args[0] == "--": args.upstream_args = args.upstream_args[1:] if not args.upstream_args: parser.error("missing upstream command; try: tools, init, search <keyword>, rocket <keyword>, budget <keyword>") return args def upstream_cli_path(repo_dir: pathlib.Path) -> pathlib.Path: return repo_dir / UPSTREAM_CLI def ensure_repo(repo_dir: pathlib.Path, *, clone: bool = True, update: bool = False) -> pathlib.Path: cli_path = upstream_cli_path(repo_dir) if cli_path.exists(): if update: run_checked([