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

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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