Skip to main content
Glama

wholesale-mcp

AI 코딩 어시스턴트(Claude Code, Cursor 등)에서 도매 사이트를 직접 탐색/분석/주문할 수 있는 MCP 서버.

기능

브라우저 탐색 (Playwright)

도구

설명

open_site(url)

브라우저에서 URL 열기 + 네트워크 로그 초기화

snapshot_page()

현재 페이지의 모든 버튼/링크/입력/폼/iframe 목록 추출

snapshot_iframe(selector)

iframe 내부 요소 목록 추출

click_element(selector)

CSS 셀렉터로 요소 클릭

fill_input(selector, value)

입력 필드에 값 채우기

submit_form(selector)

폼 제출 + 네트워크 요청 캡처

get_network_log(filter)

캡처된 HTTP 요청/응답 목록

get_page_html(selector)

페이지 HTML (전체 또는 특정 영역)

screenshot()

현재 화면 캡처

execute_js(code)

JavaScript 실행

레시피 기반 HTTP 실행 (SiteExecutor)

도구

설명

list_sites()

등록된 도매사이트 목록

get_recipe(site_id)

레시피 JSON 조회

recipe_login(site_id, user, pass)

HTTP 로그인

recipe_search(site_id, keyword)

HTTP 검색

recipe_add_to_cart(site_id, code, qty)

HTTP 장바구니 추가

세션 관리

도구

설명

get_cookies()

브라우저 쿠키 목록

set_cookies(json)

쿠키 주입

get_session_info(site_id)

HTTP 세션 상태

close_browser()

브라우저 종료

설치

pip install -r requirements.txt
playwright install chromium

설정

프로젝트 루트에 .mcp.json 생성:

{
  "mcpServers": {
    "wholesale-tools": {
      "command": "python",
      "args": ["path/to/wholesale-mcp/server.py"],
      "cwd": "path/to/wholesale-mcp"
    }
  }
}

레시피 추가

recipes/ 폴더에 사이트별 JSON 파일을 추가합니다:

{
  "recipe_version": 1,
  "site_id": "example_com",
  "site_name": "예시 도매",
  "site_url": "https://example.com",
  "encoding": "utf-8",
  "login": {
    "method": "POST",
    "url": "https://example.com/login",
    "payload": {
      "user_id": "{USERNAME}",
      "user_pw": "{PASSWORD}"
    },
    "success_indicator": {
      "type": "cookie",
      "key": "session_id"
    }
  },
  "search": {
    "method": "GET",
    "url": "https://example.com/search",
    "params": { "keyword": "{KEYWORD}" },
    "response_type": "html",
    "parsing": {
      "selector": "tr.product-row",
      "fields": {
        "product_name": { "selector": "td.name", "attribute": "text" },
        "product_code": { "selector": "input[name='code']", "attribute": "value" },
        "unit_price": { "selector": "td.price", "attribute": "text" }
      }
    }
  },
  "cart_add": {
    "method": "POST",
    "url": "https://example.com/cart/add",
    "payload": {
      "product_code": "{PRODUCT_CODE}",
      "quantity": "{QUANTITY}"
    }
  }
}

사용 예시

새 사이트 분석

AI: open_site("https://새도매사이트.com")
AI: snapshot_page()         → 로그인 폼, 버튼, 링크 발견
AI: fill_input("#id", "사용자")
AI: fill_input("#pw", "비번")
AI: submit_form("#loginForm")
AI: get_network_log()       → POST /login 요청 캡처 → 레시피 작성
AI: snapshot_page()         → 메뉴 구조 파악
AI: click_element("약품주문 링크")
AI: get_network_log()       → 검색 API 엔드포인트 발견

레시피 검증

AI: recipe_login("example_com", "user", "pass")  → 성공/실패
AI: recipe_search("example_com", "타이레놀")     → 검색 결과
AI: recipe_add_to_cart("example_com", "P001", 1) → 장바구니 추가

워크플로우

1. 분석:  브라우저로 사이트 열기 → 모든 버튼/폼/API 발견
2. 작성:  캡처된 네트워크 로그 기반 → 레시피 JSON 작성
3. 검증:  recipe_login/search/add_to_cart로 즉시 실행
4. 반복:  안 되면 브라우저로 다시 분석 → 레시피 수정

라이선스

MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/symphonyno10/wholesale-mcp'

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