MarketPilot
Korean SMB marketing: browse, pay by card link, track orders. No login to start; OAuth to link.
使うべきか
品質と安全性
検出事項(8)
- LOWget_product 内
- LOWsearch_places 内
- LOWsubmit_inquiry 内
- LOWquote_order 内
- LOWget_point_balance 内
- LOWrequest_point_charge 内
- LOWlist_charge_requests 内
- LOWcancel_charge_request 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"marketpilot": {
"url": "https://api.marketpilot.it/mcp"
}
}
}リモートエンドポイント
https://api.marketpilot.it/mcpstreamable-httpできること
ツール一覧
ツール(18)
🟢whoami
지금 이 연결의 신원과 권한, 쓸 수 있는 툴 전체를 돌려줘요. 회사 데이터를 다루는 작업을 시작하기 전에 한 번 부르면, 서버에 새로 추가된 기능까지 재접속 없이 알 수 있어요. "뭘 할 수 있어?", "권한이 어떻게 돼?" 같은 질문에도 이걸 쓰세요. 어떤 툴이 안 보이면 unavailableGroups 의 reason 에 이유가 적혀 있어요.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_products
주문 가능한 마케팅 상품 목록(상품 ID·이름·분류·단가·최소/최대 수량)을 조회합니다. aiOrderable=false 인 상품은 결제 링크로 주문할 수 없고 웹사이트나 상담(submit_inquiry)으로 안내해야 합니다. 로그인(키) 없이도 쓸 수 있어요.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_product(productId)
상품 1개의 상세(단가·수량 제약)와 집행에 필요한 입력 항목(formFields)을 조회합니다. 결제 링크를 만들기 전에 수량 제약을 확인하세요.
入力スキーマ
{
"type": "object",
"properties": {
"productId": {
"type": "integer",
"description": "상품 ID (list_products 의 productId)"
}
},
"required": [
"productId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_places(keyword)
네이버 플레이스를 업체명·키워드로 검색합니다. 사용자의 매장을 특정해 placeId·업체명·주소를 얻는 용도입니다.
入力スキーマ
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"minLength": 1,
"description": "업체명 또는 검색 키워드 (예: \"강남 OO삼겹살\")"
}
},
"required": [
"keyword"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_checkout(items, customerName, customerPhone, customerEmail, companyName, ...)
카드로 결제할 수 있는 결제 링크를 만듭니다. 상품 ID 와 수량만 넣으면 금액은 서버가 계산해요(단가를 직접 넣을 수 없어요). 응답의 checkoutUrl 을 사용자에게 그대로 보여주세요. 링크를 열면 품목·금액을 확인하고 카드·간편결제로 바로 결제할 수 있고, 회원가입은 필요 없어요. 링크를 만드는 것만으로는 돈이 나가지 않아요(결제는 사용자가 링크에서 직접). 만들기 전에 반드시 상품·수량·예상 금액을 사용자에게 확인받고, 이름(또는 상호)은 사용자에게 직접 물어보세요.
入力スキーマ
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productId": {
"type": "integer",
"description": "상품 ID (list_products 의 productId)"
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "수량 (get_product 의 최소·최대·배수 제약을 지켜야 해요)"
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 10,
"description": "담을 상품 목록"
},
"customerName": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "받는 분 이름 또는 상호 — 사용자에게 직접 물어본 값"
},
"customerPhone": {
"type": "string",
"description": "휴대폰 번호 (선택, 권장) — 결제 후 진행 안내를 받을 연락처"
},
"customerEmail": {
"type": "string",
"description": "이메일 (선택)"
},
"companyName": {
"type": "string",
"maxLength": 100,
"description": "회사·매장명 (선택)"
},
"note": {
"type": "string",
"maxLength": 500,
"description": "요청 메모 (선택) — 매장 주소·원하는 시작일 등"
},
"agentName": {
"type": "string",
"maxLength": 60,
"description": "이 요청을 넣는 AI 이름 (예: Claude, ChatGPT)"
}
},
"required": [
"items",
"customerName"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_checkout_status(checkoutToken)
결제 링크의 상태(결제 대기·결제 완료·만료)와 결제 후 만들어진 주문의 진행 상황을 확인합니다. 사용자가 "결제했어요"라고 하면 이 툴로 확인하고, setupUrl 이 있으면 집행 정보(매장 주소 등) 입력을 안내하세요.
入力スキーマ
{
"type": "object",
"properties": {
"checkoutToken": {
"type": "string",
"minLength": 16,
"maxLength": 64,
"description": "create_checkout 응답의 checkoutToken"
}
},
"required": [
"checkoutToken"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡submit_inquiry(message, contactName, contactEmail, inquiryType, contactPhone, ...)
상담·견적 문의를 접수합니다. 담당자가 영업일 1일 이내에 이메일로 회신해요. aiOrderable=false 인 상품(문의형·복잡한 견적), 원하는 게 카탈로그에 없을 때, 또는 사용자가 사람과 이야기하고 싶어할 때 사용하세요. 이름·이메일은 반드시 사용자에게 직접 물어보고 넣으세요 — 임의로 지어내면 안 돼요.
入力スキーマ
{
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 10,
"description": "문의 내용 — 업종·목표·상황을 사용자 말에서 정리해 10자 이상으로"
},
"contactName": {
"type": "string",
"minLength": 1,
"description": "회신받을 이름 (사용자에게 확인)"
},
"contactEmail": {
"type": "string",
"minLength": 1,
"description": "회신받을 이메일 (사용자에게 확인)"
},
"inquiryType": {
"type": "string",
"enum": [
"consultation",
"quote",
"service",
"partnership",
"support",
"other"
],
"description": "consultation=뭐가 맞는지 상담 / quote=견적 / service=서비스 질문 / partnership=제휴 / support=기존 주문·계정"
},
"contactPhone": {
"type": "string",
"description": "연락처 (선택)"
},
"companyName": {
"type": "string",
"description": "업체명 (선택)"
},
"businessType": {
"type": "string",
"description": "업종 (예: 음식점, 카페, 미용실)"
},
"budget": {
"type": "string",
"description": "예산 (예: 월 30만원)"
},
"interestedServices": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"description": "관심 서비스명 목록"
},
"agentName": {
"type": "string",
"description": "이 문의를 넣는 AI 이름 (예: Claude, ChatGPT)"
}
},
"required": [
"message",
"contactName",
"contactEmail"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_signup_code(phone)
[회원가입 1단계] 사용자의 휴대폰으로 인증번호 문자를 보냅니다. 사용자가 가입을 원한다고 분명히 말했을 때만 호출하세요. 문자를 받은 사용자에게 번호를 물어본 뒤 signup 으로 넘기세요. 결제 링크(create_checkout)는 가입 없이도 쓸 수 있어요.
入力スキーマ
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"minLength": 10,
"maxLength": 20,
"description": "휴대폰 번호 (010 으로 시작)"
}
},
"required": [
"phone"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪signup(phone, code, loginId, password, name, ...)
[회원가입 2단계] 인증번호를 확인하고 계정을 만듭니다. 아이디·비밀번호·이름은 사용자에게 직접 받으세요(임의로 짓지 마세요). 약관 동의는 사람의 의사표시예요 — 사용자에게 이용약관(https://www.marketpilot.it/terms)과 개인정보처리방침(https://www.marketpilot.it/privacy)을 안내하고 동의한다는 답을 받은 경우에만 true 로 넣으세요. 앞서 만든 결제 링크가 있으면 checkoutToken 을 같이 넣어 그 주문을 새 계정에 연결하세요.
入力スキーマ
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"minLength": 10,
"maxLength": 20,
"description": "send_signup_code 에 쓴 휴대폰 번호"
},
"code": {
"type": "string",
"minLength": 4,
"maxLength": 10,
"description": "문자로 받은 인증번호 (사용자에게 물어본 값)"
},
"loginId": {
"type": "string",
"minLength": 4,
"maxLength": 20,
"description": "아이디 (영문 소문자·숫자 4~20자)"
},
"password": {
"type": "string",
"minLength": 8,
"maxLength": 64,
"description": "비밀번호 (8자 이상)"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 15,
"description": "이름"
},
"email": {
"type": "string",
"description": "이메일 (선택)"
},
"companyName": {
"type": "string",
"maxLength": 100,
"description": "회사·매장명 (선택)"
},
"agreedToTerms": {
"type": "boolean",
"description": "이용약관 동의 — 사용자에게 직접 확인받은 경우에만 true"
},
"agreedToPrivacy": {
"type": "boolean",
"description": "개인정보처리방침 동의 — 사용자에게 직접 확인받은 경우에만 true"
},
"agreedToMarketing": {
"type": "boolean",
"description": "마케팅 정보 수신 동의 (선택)"
},
"checkoutToken": {
"type": "string",
"minLength": 16,
"maxLength": 64,
"description": "앞서 만든 결제 링크의 checkoutToken (있으면 새 계정에 연결)"
},
"agentName": {
"type": "string",
"maxLength": 100,
"description": "이 가입을 진행하는 AI 이름"
}
},
"required": [
"phone",
"code",
"loginId",
"password",
"name",
"agreedToTerms",
"agreedToPrivacy"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢quote_order(productId, quantity, formData, templateOption)
[주문 1단계] 견적을 요청합니다. 총액·포인트 잔액·부족분과 15분 유효한 quoteToken을 돌려줍니다. 돈이 나가지 않는 안전한 호출입니다.
入力スキーマ
{
"type": "object",
"properties": {
"productId": {
"type": "integer",
"description": "상품 ID"
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "주문 수량 (단가 × 수량 = 총액)"
},
"formData": {
"type": "object",
"additionalProperties": {},
"description": "get_product의 formFields에 맞춘 입력값 (예: nPlaceRawUrl, targetName, dailyTaskCount 등)"
},
"templateOption": {
"type": "string",
"description": "상품 템플릿 옵션 (필요한 상품만)"
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_order(quoteToken, productId, quantity, formData, templateOption, ...)
[주문 2단계] 견적을 확정해 실제 주문을 생성합니다. 포인트가 즉시 차감되므로, 반드시 사용자에게 상품·수량·금액을 확인받은 뒤 confirm:true로 호출하세요.
入力スキーマ
{
"type": "object",
"properties": {
"quoteToken": {
"type": "string",
"description": "quote_order가 발급한 견적 토큰"
},
"productId": {
"type": "integer",
"description": "견적과 동일한 상품 ID"
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "견적과 동일한 수량"
},
"formData": {
"type": "object",
"additionalProperties": {},
"description": "견적과 동일한 폼 데이터"
},
"templateOption": {
"type": "string"
},
"confirm": {
"type": "boolean",
"description": "사용자에게 최종 확인을 받았으면 true"
}
},
"required": [
"quoteToken",
"productId",
"quantity",
"confirm"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_my_orders(page, limit, status)
내 주문 내역을 조회합니다. status로 필터할 수 있어요 (paid=결제완료, in_progress=진행중, completed=완료, refunded=환불, stopped=중단).
入力スキーマ
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "페이지 (기본 1)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "페이지당 건수 (기본 10)"
},
"status": {
"type": "string",
"description": "상태 필터"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_my_order(orderId)
주문 1건의 진행 상황을 조회합니다. status/statusLabel(결제완료→진행중→완료), phaseLabel(상품별 세부 단계), progress(수량 진행률·결과물 링크·단계 — 제공 상품만), recentLogs(진행 로그 최신순)를 반환해요. "내 주문 어떻게 돼가?" 같은 질문에 이 툴을 쓰고, progress가 null이면 statusLabel과 recentLogs로 안내하세요.
入力スキーマ
{
"type": "object",
"properties": {
"orderId": {
"type": "integer",
"description": "주문 ID (list_my_orders의 orderId)"
}
},
"required": [
"orderId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_point_balance
포인트 잔액을 조회합니다. 1P = 1원이며 주문 결제는 포인트로 이뤄집니다.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪request_point_charge(amount, depositorName, cashReceiptType, cashReceiptMethod, cashReceiptIdNumber, ...)
포인트 충전을 신청합니다. 응답의 transfer(무통장 입금 계좌·입금자명·금액)를 사용자에게 안내하세요. 실제 이체는 사용자가 직접 해야 하며, 입금자명·금액이 일치하면 몇 분 내 자동 충전됩니다.
入力スキーマ
{
"type": "object",
"properties": {
"amount": {
"type": "integer",
"minimum": 1,
"description": "충전할 포인트 (원 단위, 1P=1원)"
},
"depositorName": {
"type": "string",
"minLength": 1,
"description": "입금자명 — 실제 이체 시 사용할 이름과 정확히 일치해야 자동 충전됩니다"
},
"cashReceiptType": {
"type": "string",
"description": "증빙 종류: 세금계산서 | 소득공제 | 지출증빙 (선택)"
},
"cashReceiptMethod": {
"type": "string",
"description": "현금영수증 발급 방법 (소득공제/지출증빙 시)"
},
"cashReceiptIdNumber": {
"type": "string",
"description": "사업자등록번호 또는 현금영수증 발급 번호"
},
"taxInvoiceEmail": {
"type": "string",
"description": "세금계산서 수신 이메일"
}
},
"required": [
"amount",
"depositorName"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_charge_requests(page, limit)
내 포인트 충전 신청 내역을 조회합니다.
入力スキーマ
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_charge_request(chargeRequestId)
충전 신청 1건의 상태를 확인합니다. 입금 후 status가 CONFIRMED(충전 완료)로 바뀌었는지 확인하는 용도입니다.
入力スキーマ
{
"type": "object",
"properties": {
"chargeRequestId": {
"type": "integer",
"description": "충전 신청 ID"
}
},
"required": [
"chargeRequestId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴cancel_charge_request(chargeRequestId)
입금 대기(PENDING) 상태의 충전 신청을 취소합니다.
入力スキーマ
{
"type": "object",
"properties": {
"chargeRequestId": {
"type": "integer",
"description": "충전 신청 ID"
}
},
"required": [
"chargeRequestId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}推奨プロンプト
search_placessearch_placesget_productget_productlist_productsコミュニティ
エビデンス