@nhnpayco-dev/mcp-devcenter 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
# @nhnpayco-dev/mcp-devcenter
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@nhnpayco-dev/mcp-devcenter)
|
|
4
|
+

|
|
5
|
+
[](https://nodejs.org)
|
|
6
|
+
|
|
3
7
|
> PAYCO 개발자센터 가이드(온라인결제·자동결제·오프라인결제·오더클라우드·멤버십클라우드·결제정산대사)를
|
|
4
|
-
> AI
|
|
8
|
+
> AI 개발 도구(Claude·Cursor·VS Code 등)에서 바로 조회·검색할 수 있게 해주는
|
|
5
9
|
> MCP(Model Context Protocol) 서버.
|
|
6
10
|
|
|
7
11
|
외부 가맹점/제휴사 개발자가 PAYCO 결제 연동을 진행할 때, 가이드 페이지를 일일이 뒤지지 않고
|
|
8
|
-
AI
|
|
12
|
+
AI 개발 도구에 자연어로 물어 즉시 정확한 답을 받을 수 있게 해줍니다.
|
|
9
13
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
14
|
+
AI 개발 도구에 이렇게 물어보면 됩니다.
|
|
15
|
+
|
|
16
|
+
- "PAYCO 자동결제 빌링키 발급부터 결제까지 흐름 알려줘"
|
|
17
|
+
- "결제 승인 API 에 필수로 보내야 하는 파라미터가 뭐야?"
|
|
18
|
+
- "에러코드 4802 무슨 뜻이야?"
|
|
19
|
+
- "BC카드 코드값은 PAYCO 에서 어떻게 표기해?"
|
|
16
20
|
|
|
17
21
|
---
|
|
18
22
|
|
|
19
23
|
## 요구사항
|
|
20
24
|
|
|
21
25
|
- **Node.js 20 LTS 이상** (`node --version` 으로 확인)
|
|
22
|
-
- 지원 클라이언트: Claude Desktop · Cursor · VS Code(Continue 등) · Windsurf 등 **MCP
|
|
26
|
+
- 지원 클라이언트: Claude Desktop · Cursor · VS Code(Continue 등) · Windsurf 등 **MCP 표준을 지원하는 AI 개발 도구**
|
|
23
27
|
|
|
24
28
|
설치는 자동입니다(`npx` 가 알아서 받습니다). 별도 빌드·환경 설정 불필요.
|
|
25
29
|
|
|
@@ -83,7 +87,7 @@ AI 에디터에 자연어로 물어 즉시 정확한 답을 받을 수 있게
|
|
|
83
87
|
| `get_guide(slug)` | 특정 카테고리 가이드 전체를 Markdown 으로 반환 |
|
|
84
88
|
| `list_apis()` | 28개 카테고리 + 단계 목록 일람 |
|
|
85
89
|
| `get_api_spec(category)` | 특정 카테고리(easypay, autopay …)의 API 명세·파라미터 표가 담긴 가이드 반환 |
|
|
86
|
-
| `get_sample_code(slug, language?)` | 가이드
|
|
90
|
+
| `get_sample_code(slug, language?)` | 가이드 본문의 코드 블록(주로 요청·응답 JSON 예시)만 추출. 언어별 소스코드 샘플은 포함하지 않음 |
|
|
87
91
|
| `get_error_code(code)` | API 응답코드·결제수단·은행·카드사 등 모든 코드 카테고리에서 일치 항목 조회 |
|
|
88
92
|
|
|
89
93
|
### 자동 검수 (5개)
|
|
@@ -96,57 +100,91 @@ AI 에디터에 자연어로 물어 즉시 정확한 답을 받을 수 있게
|
|
|
96
100
|
| `export_validation_excel(path?, clearAfter?)` | 누적된 검수 결과를 xlsx로 추출. **3개 시트**: 검수요약 / 항목별 상세 / 공통검수체크리스트 |
|
|
97
101
|
| `clear_validation_buffer()` | 누적된 검수 결과를 모두 초기화 (새 세션 시작 시) |
|
|
98
102
|
|
|
99
|
-
|
|
103
|
+
### 검증 도구 사용 예시 (외부 제휴사 시점)
|
|
104
|
+
|
|
105
|
+
**① 페이로드를 붙여넣고 검수를 요청합니다.**
|
|
106
|
+
|
|
107
|
+
> 이 페이로드 검수해줘. API는 `online-easypay-01`.
|
|
100
108
|
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"sellerKey": "S0FSJE",
|
|
112
|
+
"sellerOrderReferenceKey": "ORD-001",
|
|
113
|
+
"totalPaymentAmt": "15000",
|
|
114
|
+
"orderMethod": "EASYPAY"
|
|
115
|
+
}
|
|
101
116
|
```
|
|
102
|
-
사용자> 이 페이로드 검수해줘. API는 online-easypay-01.
|
|
103
|
-
{"sellerKey":"S0FSJE", "sellerOrderReferenceKey":"ORD-001",
|
|
104
|
-
"totalPaymentAmt": "15000", "orderMethod":"EASYPAY", ...}
|
|
105
117
|
|
|
106
|
-
|
|
107
|
-
[POST] /outseller/order/reserve | 주문 예약 API로 결제창 호출하기
|
|
108
|
-
서비스: 온라인결제 | 자동실패 1개
|
|
118
|
+
**② 검수 결과가 돌아옵니다.**
|
|
109
119
|
|
|
110
|
-
|
|
111
|
-
|
|
120
|
+
> **✗ FAIL — online-easypay-01**
|
|
121
|
+
> `[POST] /outseller/order/reserve` · 주문 예약 API로 결제창 호출하기
|
|
122
|
+
> 서비스: 온라인결제 · 자동실패 1개
|
|
123
|
+
>
|
|
124
|
+
> **검수 체크리스트 — 온라인결제 (22개)**
|
|
125
|
+
> ✓ 개인정보 파라미터 미포함 · ✓ orderMethod 유효값 · ⬜ PAYCO 방화벽 등록 · …
|
|
126
|
+
>
|
|
127
|
+
> **API 명세 문제 (1개)**
|
|
128
|
+
> ✗ `totalPaymentAmt` — 명세 `number` / 실제 `string`
|
|
112
129
|
|
|
113
|
-
|
|
114
|
-
✗ totalPaymentAmt: 명세 'number' / 실제 'string'
|
|
130
|
+
**③ 엑셀로 추출합니다.**
|
|
115
131
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
132
|
+
> 엑셀로 추출해줘.
|
|
133
|
+
|
|
134
|
+
> ✅ `~/Downloads/payco-validation-20260522-180000.xlsx` 생성 완료
|
|
135
|
+
> 시트: 검수요약 / 항목별 상세 / 공통검수체크리스트
|
|
120
136
|
|
|
121
137
|
⚠️ **운영 로그(실제 카드번호·주민번호·고객 연락처 포함)는 그대로 붙여넣지 말 것.**
|
|
122
138
|
테스트 환경 로그 또는 마스킹된 로그를 사용하세요. 본 MCP 서버는 입력을 검증만 하고 저장하지 않지만,
|
|
123
139
|
검증 단계에서 Claude/Cursor 등 AI 측으로 텍스트가 전달됩니다.
|
|
124
140
|
|
|
125
|
-
사용 가능한 카테고리 슬러그 (28개)
|
|
141
|
+
### 사용 가능한 카테고리 슬러그 (28개)
|
|
126
142
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
143
|
+
**online** — 온라인 결제
|
|
144
|
+
`online-start` · `online-easypay` · `online-autopay` · `online-etc` · `online-extra` ·
|
|
145
|
+
`online-extradata` 🆕 · `online-code` · `online-check` · `online-sample`
|
|
146
|
+
|
|
147
|
+
**offline** — 오프라인 결제
|
|
148
|
+
`offline-start` · `offline-vcat` · `offline-api` · `offline-authapi` 🆕 ·
|
|
149
|
+
`offline-code` · `offline-check` · `offline-sample`
|
|
150
|
+
|
|
151
|
+
**order** — 오더 클라우드
|
|
152
|
+
`order-start` · `order-vorder` · `order-code` · `order-check` · `order-sample`
|
|
134
153
|
|
|
135
|
-
|
|
154
|
+
**membership** — 멤버십 클라우드
|
|
155
|
+
`membership-start` · `membership-vmem` · `membership-api` ·
|
|
156
|
+
`membership-code` · `membership-check` · `membership-sample`
|
|
157
|
+
|
|
158
|
+
**calculate** — 결제/정산 대사
|
|
159
|
+
`calculate`
|
|
160
|
+
|
|
161
|
+
🆕 표시는 PAYCO 개발자센터에는 없는 사내 문서 기반 가이드입니다.
|
|
136
162
|
|
|
137
163
|
### 자동 검증 가능한 API 슬러그 (35개)
|
|
138
164
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
165
|
+
**온라인 — reserve / 승인 / 취소**
|
|
166
|
+
`online-easypay-01`~`04` · `online-autopay-01`~`04`/`06` ·
|
|
167
|
+
`online-etc-01`/`03`/`04` · `online-extra-02`/`03`
|
|
168
|
+
(자동결제 ⑤ 결제 취소는 일반 결제 취소 API와 같아 `online-easypay-04`로 검증)
|
|
169
|
+
|
|
170
|
+
**온라인 — reserve 변형 (합성)**
|
|
171
|
+
`online-easypay-nonmember` (비회원결제) · `online-easypay-checkout` (바로구매) ·
|
|
172
|
+
`online-easypay-ordersheet` (주문서결제)
|
|
173
|
+
|
|
174
|
+
**부가정보 스키마**
|
|
175
|
+
`online-extradata` — reserve API 의 extraData JSON 내부 26개 필드
|
|
176
|
+
|
|
177
|
+
**오프라인**
|
|
178
|
+
심플형 `offline-api-02`~`05`
|
|
179
|
+
인증승인형 🆕 `offline-authapi-posauth` · `-auth` · `-approval` · `-cancel` · `-netcancel`
|
|
180
|
+
VCAT (DLL) `offline-vcat-setpaycodata` · `-getpaycodata`
|
|
181
|
+
|
|
182
|
+
**오더**
|
|
183
|
+
VORDER (DLL) `order-vorder-setdata` · `-senddata`
|
|
184
|
+
|
|
185
|
+
**멤버십**
|
|
186
|
+
API `membership-api-05`
|
|
187
|
+
VMEM (DLL) `membership-vmem-execasyncapproval` · `-execcomplete` · `-execcancel`
|
|
150
188
|
|
|
151
189
|
---
|
|
152
190
|
|
|
@@ -154,19 +192,19 @@ AI 에디터에 자연어로 물어 즉시 정확한 답을 받을 수 있게
|
|
|
154
192
|
|
|
155
193
|
본 패키지에 포함된 가이드 정보:
|
|
156
194
|
- [PAYCO 개발자센터](https://devcenter.payco.com)의 **연동하기 > 온라인/오프라인/오더/멤버십** 전 섹션 + **결제/정산 대사**
|
|
157
|
-
- 사내
|
|
195
|
+
- 사내 문서 기반 가이드 2종: 오프라인 POS **인증승인형 연동 가이드**, **부가정보(extraData) 명세**
|
|
158
196
|
|
|
159
|
-
- 가이드 본문 카테고리: **28개** (devcenter 크롤 26개 + 사내
|
|
197
|
+
- 가이드 본문 카테고리: **28개** (devcenter 크롤 26개 + 사내 문서 2개)
|
|
160
198
|
- 에러코드/코드값 표 항목: **500+ 개** (4개 root 의 API 응답코드, 결제수단, 카드사, 은행, VAN사, 결제수단 코드 등 통합)
|
|
161
199
|
- 자동 검증 가능한 API 명세: **35개**
|
|
162
|
-
- REST API
|
|
200
|
+
- REST API 25개 (easypay/autopay/etc/extra/offline-api/authapi 등)
|
|
163
201
|
- DLL 함수 7개 (offline-vcat, order-vorder, membership-vmem)
|
|
164
202
|
- 합성 변형 슬러그 3개 (`online-easypay-nonmember`/`-checkout`/`-ordersheet`)
|
|
165
203
|
|
|
166
204
|
**검증 가이드 사항 (자동 검증 한계):**
|
|
167
205
|
- 조건부 필수 파라미터 (예: `extraData.appUrl` — iOS App 호출 시에만 필수)는 단순 "필수"로 표시될 수 있음
|
|
168
206
|
- `returnUrl` 등 URL 검사는 prefix(`http://`/`https://`)만 확인. URL 내부 공백·인코딩 오류는 감지 불가
|
|
169
|
-
- 배열 안
|
|
207
|
+
- 배열 안 객체의 필수값은 원소 하나라도 값이 있으면 통과로 처리. 원소별 누락(예: 두 번째 원소의 `id` 누락)은 검출하지 못함
|
|
170
208
|
|
|
171
209
|
**제외 범위:**
|
|
172
210
|
- 보안사항 확인하기 (USERTrust 루트 인증서 설치 가이드)
|
|
@@ -179,19 +217,19 @@ AI 에디터에 자연어로 물어 즉시 정확한 답을 받을 수 있게
|
|
|
179
217
|
PAYCO 개발자센터가 갱신될 경우 본 패키지도 주기적으로 재배포됩니다.
|
|
180
218
|
항상 최신을 받으려면 설정에서 `@latest` 태그를 유지하세요.
|
|
181
219
|
|
|
182
|
-
특정 시점에 고정하고 싶다면 `@
|
|
220
|
+
특정 시점에 고정하고 싶다면 `@1.0.1` 같이 버전을 명시할 수 있습니다.
|
|
183
221
|
|
|
184
222
|
---
|
|
185
223
|
|
|
186
224
|
## 문의 / 이슈
|
|
187
225
|
|
|
188
226
|
- PAYCO 가이드 자체 문의: <dl_payco_ts@nhn.com>
|
|
189
|
-
- 본 MCP 서버 동작 문의:
|
|
227
|
+
- 본 MCP 서버 동작 문의: <dl_payco_ts@nhn.com>
|
|
190
228
|
|
|
191
229
|
---
|
|
192
230
|
|
|
193
231
|
## 라이선스 / 출처
|
|
194
232
|
|
|
233
|
+
- 라이선스: **MIT** (패키지에 포함된 `LICENSE` 파일 참조)
|
|
195
234
|
- 가이드 본문 원본 저작권: NHN PAYCO Corp.
|
|
196
235
|
- 패키지 형태로 가공·배포: PAYCO 개발팀
|
|
197
|
-
- 라이선스: TBD (사내 협의 진행 중)
|
package/dist/data/api-specs.json
CHANGED
|
@@ -1915,13 +1915,13 @@
|
|
|
1915
1915
|
"name": "includePaymentMethodCodes",
|
|
1916
1916
|
"required": false,
|
|
1917
1917
|
"type": "List<String>",
|
|
1918
|
-
"description": "가능한
|
|
1918
|
+
"description": "가능한 결제수단(online-code 가이드의 「결제수단 코드」 참고) - includePaymentMethodCodes 중 가능한 결제수단 제공 : 동일한 결제수단이 excludePaymentMethodCodes 에도 포함된 경우 결제수단에서 제외 | 예: \"includePaymentMethodCodes\" : [\"31, \"01\"]"
|
|
1919
1919
|
},
|
|
1920
1920
|
{
|
|
1921
1921
|
"name": "excludePaymentMethodCodes",
|
|
1922
1922
|
"required": false,
|
|
1923
1923
|
"type": "List<String>",
|
|
1924
|
-
"description": "제외 할
|
|
1924
|
+
"description": "제외 할 결제수단(online-code 가이드의 「결제수단 코드」 참고) - 가능한 결제수단 중 excludePaymentMethodCodes 제외 | 예: \"excludePaymentMethodCodes\" : [\"31, \"01\"]"
|
|
1925
1925
|
},
|
|
1926
1926
|
{
|
|
1927
1927
|
"name": "paymentMethodOptions",
|
|
@@ -1981,7 +1981,7 @@
|
|
|
1981
1981
|
"name": "paymentMethodOptions.paymentMethodCode",
|
|
1982
1982
|
"required": true,
|
|
1983
1983
|
"type": "String",
|
|
1984
|
-
"description": "
|
|
1984
|
+
"description": "결제수단(online-code 가이드의 「결제수단 코드」 참고)코드 | 예: 예 : 신용카드 간편결제의 경우-> 31"
|
|
1985
1985
|
},
|
|
1986
1986
|
{
|
|
1987
1987
|
"name": "paymentMethodOptions.message",
|
|
@@ -2095,6 +2095,12 @@
|
|
|
2095
2095
|
"type": "string",
|
|
2096
2096
|
"description": "사업자 등록번호, ‘-’ 문자 제거하여 전달"
|
|
2097
2097
|
},
|
|
2098
|
+
{
|
|
2099
|
+
"name": "vanCorpCode",
|
|
2100
|
+
"required": true,
|
|
2101
|
+
"type": "string",
|
|
2102
|
+
"description": "VAN사 코드"
|
|
2103
|
+
},
|
|
2098
2104
|
{
|
|
2099
2105
|
"name": "vanPosTid",
|
|
2100
2106
|
"required": true,
|
|
@@ -2147,8 +2153,8 @@
|
|
|
2147
2153
|
}
|
|
2148
2154
|
],
|
|
2149
2155
|
"param_counts": {
|
|
2150
|
-
"request_total":
|
|
2151
|
-
"request_required":
|
|
2156
|
+
"request_total": 7,
|
|
2157
|
+
"request_required": 4,
|
|
2152
2158
|
"response_total": 4
|
|
2153
2159
|
}
|
|
2154
2160
|
},
|
|
@@ -2189,6 +2195,12 @@
|
|
|
2189
2195
|
"type": "string",
|
|
2190
2196
|
"description": "PAYCO POS 터미널 번호"
|
|
2191
2197
|
},
|
|
2198
|
+
{
|
|
2199
|
+
"name": "vanCorpCode",
|
|
2200
|
+
"required": true,
|
|
2201
|
+
"type": "string",
|
|
2202
|
+
"description": "VAN사 코드"
|
|
2203
|
+
},
|
|
2192
2204
|
{
|
|
2193
2205
|
"name": "vanPosTid",
|
|
2194
2206
|
"required": true,
|
|
@@ -2261,6 +2273,12 @@
|
|
|
2261
2273
|
"type": "string",
|
|
2262
2274
|
"description": "상품명. 예)아메리카노 외 1건"
|
|
2263
2275
|
},
|
|
2276
|
+
{
|
|
2277
|
+
"name": "productInfoList",
|
|
2278
|
+
"required": false,
|
|
2279
|
+
"type": "list",
|
|
2280
|
+
"description": "상품 목록"
|
|
2281
|
+
},
|
|
2264
2282
|
{
|
|
2265
2283
|
"name": "installmentPeriod",
|
|
2266
2284
|
"required": false,
|
|
@@ -2291,6 +2309,18 @@
|
|
|
2291
2309
|
"type": "string",
|
|
2292
2310
|
"description": "단말기 타입. 예) KIOSK, POS, CAT"
|
|
2293
2311
|
},
|
|
2312
|
+
{
|
|
2313
|
+
"name": "extras",
|
|
2314
|
+
"required": false,
|
|
2315
|
+
"type": "object",
|
|
2316
|
+
"description": "추가정보"
|
|
2317
|
+
},
|
|
2318
|
+
{
|
|
2319
|
+
"name": "sign",
|
|
2320
|
+
"required": true,
|
|
2321
|
+
"type": "object",
|
|
2322
|
+
"description": "van 사별 sign 정보(5만원 초과결제시 필수)"
|
|
2323
|
+
},
|
|
2294
2324
|
{
|
|
2295
2325
|
"name": "productInfoList.productCode",
|
|
2296
2326
|
"required": true,
|
|
@@ -2581,6 +2611,18 @@
|
|
|
2581
2611
|
"type": "double",
|
|
2582
2612
|
"description": "컵보증금"
|
|
2583
2613
|
},
|
|
2614
|
+
{
|
|
2615
|
+
"name": "approvalResultList",
|
|
2616
|
+
"required": false,
|
|
2617
|
+
"type": "list",
|
|
2618
|
+
"description": "결제 승인 시 결제수단별 정보"
|
|
2619
|
+
},
|
|
2620
|
+
{
|
|
2621
|
+
"name": "extras",
|
|
2622
|
+
"required": false,
|
|
2623
|
+
"type": "object",
|
|
2624
|
+
"description": "추가정보"
|
|
2625
|
+
},
|
|
2584
2626
|
{
|
|
2585
2627
|
"name": "membershipCardNo",
|
|
2586
2628
|
"required": false,
|
|
@@ -2599,6 +2641,12 @@
|
|
|
2599
2641
|
"type": "string",
|
|
2600
2642
|
"description": "주 오프라인 결제수단코드"
|
|
2601
2643
|
},
|
|
2644
|
+
{
|
|
2645
|
+
"name": "approvalResultList.paymentMethodCode",
|
|
2646
|
+
"required": false,
|
|
2647
|
+
"type": "string",
|
|
2648
|
+
"description": "오프라인 결제수단코드"
|
|
2649
|
+
},
|
|
2602
2650
|
{
|
|
2603
2651
|
"name": "approvalResultList.paymentMethodName",
|
|
2604
2652
|
"required": false,
|
|
@@ -2623,6 +2671,12 @@
|
|
|
2623
2671
|
"type": "double",
|
|
2624
2672
|
"description": "승인금액"
|
|
2625
2673
|
},
|
|
2674
|
+
{
|
|
2675
|
+
"name": "approvalResultList.approvalCompanyCode",
|
|
2676
|
+
"required": false,
|
|
2677
|
+
"type": "string",
|
|
2678
|
+
"description": "승인사코드"
|
|
2679
|
+
},
|
|
2626
2680
|
{
|
|
2627
2681
|
"name": "approvalResultList.approvalCompanyName",
|
|
2628
2682
|
"required": false,
|
|
@@ -2635,6 +2689,12 @@
|
|
|
2635
2689
|
"type": "string",
|
|
2636
2690
|
"description": "승인카드번호 예시) 490620******6536"
|
|
2637
2691
|
},
|
|
2692
|
+
{
|
|
2693
|
+
"name": "approvalResultList.sourcePaymentMethdCode",
|
|
2694
|
+
"required": false,
|
|
2695
|
+
"type": "string",
|
|
2696
|
+
"description": "결제수단코드"
|
|
2697
|
+
},
|
|
2638
2698
|
{
|
|
2639
2699
|
"name": "approvalResultList.taxfreeAmount",
|
|
2640
2700
|
"required": false,
|
|
@@ -2709,9 +2769,9 @@
|
|
|
2709
2769
|
}
|
|
2710
2770
|
],
|
|
2711
2771
|
"param_counts": {
|
|
2712
|
-
"request_total":
|
|
2713
|
-
"request_required":
|
|
2714
|
-
"response_total":
|
|
2772
|
+
"request_total": 65,
|
|
2773
|
+
"request_required": 47,
|
|
2774
|
+
"response_total": 35
|
|
2715
2775
|
}
|
|
2716
2776
|
},
|
|
2717
2777
|
{
|
|
@@ -2787,6 +2847,12 @@
|
|
|
2787
2847
|
"type": "string",
|
|
2788
2848
|
"description": "PAYCO POS 터미널 번호"
|
|
2789
2849
|
},
|
|
2850
|
+
{
|
|
2851
|
+
"name": "vanCorpCode",
|
|
2852
|
+
"required": true,
|
|
2853
|
+
"type": "string",
|
|
2854
|
+
"description": "VAN사 코드"
|
|
2855
|
+
},
|
|
2790
2856
|
{
|
|
2791
2857
|
"name": "vanPosTid",
|
|
2792
2858
|
"required": true,
|
|
@@ -2840,13 +2906,153 @@
|
|
|
2840
2906
|
"required": false,
|
|
2841
2907
|
"type": "string",
|
|
2842
2908
|
"description": "단말기 타입. 예) KIOSK, POS, CAT"
|
|
2909
|
+
},
|
|
2910
|
+
{
|
|
2911
|
+
"name": "extras",
|
|
2912
|
+
"required": false,
|
|
2913
|
+
"type": "object",
|
|
2914
|
+
"description": "추가정보"
|
|
2915
|
+
},
|
|
2916
|
+
{
|
|
2917
|
+
"name": "sign",
|
|
2918
|
+
"required": true,
|
|
2919
|
+
"type": "object",
|
|
2920
|
+
"description": "van 사별 sign 정보(5만원 초과결제시 필수)"
|
|
2921
|
+
}
|
|
2922
|
+
],
|
|
2923
|
+
"response_params": [
|
|
2924
|
+
{
|
|
2925
|
+
"name": "tradeNo",
|
|
2926
|
+
"required": false,
|
|
2927
|
+
"type": "string",
|
|
2928
|
+
"description": "PG/VAN사 거래번호"
|
|
2929
|
+
},
|
|
2930
|
+
{
|
|
2931
|
+
"name": "tradeDatetime",
|
|
2932
|
+
"required": false,
|
|
2933
|
+
"type": "string",
|
|
2934
|
+
"description": "PG/VAN사 거래일시(yyyyMMddHHmmss)"
|
|
2935
|
+
},
|
|
2936
|
+
{
|
|
2937
|
+
"name": "totalTaxfreeAmount",
|
|
2938
|
+
"required": false,
|
|
2939
|
+
"type": "double",
|
|
2940
|
+
"description": "면세금액"
|
|
2941
|
+
},
|
|
2942
|
+
{
|
|
2943
|
+
"name": "totalTaxableAmount",
|
|
2944
|
+
"required": false,
|
|
2945
|
+
"type": "double",
|
|
2946
|
+
"description": "과세금액"
|
|
2947
|
+
},
|
|
2948
|
+
{
|
|
2949
|
+
"name": "totalVatAmount",
|
|
2950
|
+
"required": false,
|
|
2951
|
+
"type": "double",
|
|
2952
|
+
"description": "부가세"
|
|
2953
|
+
},
|
|
2954
|
+
{
|
|
2955
|
+
"name": "totalServiceAmount",
|
|
2956
|
+
"required": false,
|
|
2957
|
+
"type": "double",
|
|
2958
|
+
"description": "봉사료"
|
|
2959
|
+
},
|
|
2960
|
+
{
|
|
2961
|
+
"name": "totalGreenDepositAmount",
|
|
2962
|
+
"required": false,
|
|
2963
|
+
"type": "double",
|
|
2964
|
+
"description": "컵보증금"
|
|
2965
|
+
},
|
|
2966
|
+
{
|
|
2967
|
+
"name": "cancelResultList",
|
|
2968
|
+
"required": false,
|
|
2969
|
+
"type": "list",
|
|
2970
|
+
"description": "취소 결과 목록"
|
|
2971
|
+
},
|
|
2972
|
+
{
|
|
2973
|
+
"name": "extras",
|
|
2974
|
+
"required": false,
|
|
2975
|
+
"type": "object",
|
|
2976
|
+
"description": "추가정보"
|
|
2977
|
+
},
|
|
2978
|
+
{
|
|
2979
|
+
"name": "originalPinCode",
|
|
2980
|
+
"required": false,
|
|
2981
|
+
"type": "string",
|
|
2982
|
+
"description": "실제 결제에 사용된 OTC(협의 시 정보 전달)"
|
|
2983
|
+
},
|
|
2984
|
+
{
|
|
2985
|
+
"name": "cancelResultList.paymentMethodCode",
|
|
2986
|
+
"required": false,
|
|
2987
|
+
"type": "string",
|
|
2988
|
+
"description": "오프라인 결제수단코드"
|
|
2989
|
+
},
|
|
2990
|
+
{
|
|
2991
|
+
"name": "cancelResultList.paymentMethodName",
|
|
2992
|
+
"required": false,
|
|
2993
|
+
"type": "string",
|
|
2994
|
+
"description": "결제수단명"
|
|
2995
|
+
},
|
|
2996
|
+
{
|
|
2997
|
+
"name": "cancelResultList.cancelAmount",
|
|
2998
|
+
"required": false,
|
|
2999
|
+
"type": "double",
|
|
3000
|
+
"description": "취소금액"
|
|
3001
|
+
},
|
|
3002
|
+
{
|
|
3003
|
+
"name": "cancelResultList.cancelDatetime",
|
|
3004
|
+
"required": false,
|
|
3005
|
+
"type": "string",
|
|
3006
|
+
"description": "취소일시(yyyyMMddHHmmss)"
|
|
3007
|
+
},
|
|
3008
|
+
{
|
|
3009
|
+
"name": "cancelResultList.sourcePaymentMethdCode",
|
|
3010
|
+
"required": false,
|
|
3011
|
+
"type": "string",
|
|
3012
|
+
"description": "결제수단코드"
|
|
3013
|
+
},
|
|
3014
|
+
{
|
|
3015
|
+
"name": "cancelResultList.taxfreeAmount",
|
|
3016
|
+
"required": false,
|
|
3017
|
+
"type": "double",
|
|
3018
|
+
"description": "면세금액"
|
|
3019
|
+
},
|
|
3020
|
+
{
|
|
3021
|
+
"name": "cancelResultList.taxableAmount",
|
|
3022
|
+
"required": false,
|
|
3023
|
+
"type": "double",
|
|
3024
|
+
"description": "과세금액"
|
|
3025
|
+
},
|
|
3026
|
+
{
|
|
3027
|
+
"name": "cancelResultList.vatAmount",
|
|
3028
|
+
"required": false,
|
|
3029
|
+
"type": "double",
|
|
3030
|
+
"description": "부가세"
|
|
3031
|
+
},
|
|
3032
|
+
{
|
|
3033
|
+
"name": "cancelResultList.serviceAmount",
|
|
3034
|
+
"required": false,
|
|
3035
|
+
"type": "double",
|
|
3036
|
+
"description": "봉사료"
|
|
3037
|
+
},
|
|
3038
|
+
{
|
|
3039
|
+
"name": "cancelResultList.greenDepositAmount",
|
|
3040
|
+
"required": false,
|
|
3041
|
+
"type": "double",
|
|
3042
|
+
"description": "컵보증금"
|
|
3043
|
+
},
|
|
3044
|
+
{
|
|
3045
|
+
"name": "cancelResultList.nocvmYN",
|
|
3046
|
+
"required": false,
|
|
3047
|
+
"type": "string",
|
|
3048
|
+
"description": "NoCVM 거래 여부"
|
|
2843
3049
|
}
|
|
2844
3050
|
],
|
|
2845
|
-
"response_params": [],
|
|
2846
3051
|
"param_counts": {
|
|
2847
|
-
"request_total":
|
|
2848
|
-
"request_required":
|
|
2849
|
-
"response_total": 0
|
|
3052
|
+
"request_total": 23,
|
|
3053
|
+
"request_required": 14,
|
|
3054
|
+
"response_total": 0,
|
|
3055
|
+
"response": 21
|
|
2850
3056
|
}
|
|
2851
3057
|
},
|
|
2852
3058
|
{
|
|
@@ -2906,12 +3112,30 @@
|
|
|
2906
3112
|
"type": "double",
|
|
2907
3113
|
"description": "컵보증금"
|
|
2908
3114
|
},
|
|
3115
|
+
{
|
|
3116
|
+
"name": "cancelResultList",
|
|
3117
|
+
"required": false,
|
|
3118
|
+
"type": "list",
|
|
3119
|
+
"description": "취소 결과 목록"
|
|
3120
|
+
},
|
|
3121
|
+
{
|
|
3122
|
+
"name": "extras",
|
|
3123
|
+
"required": false,
|
|
3124
|
+
"type": "object",
|
|
3125
|
+
"description": "추가정보"
|
|
3126
|
+
},
|
|
2909
3127
|
{
|
|
2910
3128
|
"name": "originalPinCode",
|
|
2911
3129
|
"required": false,
|
|
2912
3130
|
"type": "string",
|
|
2913
3131
|
"description": "실제 결제에 사용된 OTC(협의 시 정보 전달)"
|
|
2914
3132
|
},
|
|
3133
|
+
{
|
|
3134
|
+
"name": "cancelResultList.paymentMethodCode",
|
|
3135
|
+
"required": false,
|
|
3136
|
+
"type": "string",
|
|
3137
|
+
"description": "오프라인 결제수단코드"
|
|
3138
|
+
},
|
|
2915
3139
|
{
|
|
2916
3140
|
"name": "cancelResultList.paymentMethodName",
|
|
2917
3141
|
"required": false,
|
|
@@ -2930,6 +3154,12 @@
|
|
|
2930
3154
|
"type": "string",
|
|
2931
3155
|
"description": "취소일시(yyyyMMddHHmmss)"
|
|
2932
3156
|
},
|
|
3157
|
+
{
|
|
3158
|
+
"name": "cancelResultList.sourcePaymentMethdCode",
|
|
3159
|
+
"required": false,
|
|
3160
|
+
"type": "string",
|
|
3161
|
+
"description": "결제수단코드"
|
|
3162
|
+
},
|
|
2933
3163
|
{
|
|
2934
3164
|
"name": "cancelResultList.taxfreeAmount",
|
|
2935
3165
|
"required": false,
|
|
@@ -2970,7 +3200,7 @@
|
|
|
2970
3200
|
"param_counts": {
|
|
2971
3201
|
"request_total": 1,
|
|
2972
3202
|
"request_required": 1,
|
|
2973
|
-
"response_total":
|
|
3203
|
+
"response_total": 21
|
|
2974
3204
|
}
|
|
2975
3205
|
},
|
|
2976
3206
|
{
|
|
@@ -2980,12 +3210,6 @@
|
|
|
2980
3210
|
"url": "SetPaycoData",
|
|
2981
3211
|
"method": "DLL",
|
|
2982
3212
|
"request_params": [
|
|
2983
|
-
{
|
|
2984
|
-
"name": "KEY",
|
|
2985
|
-
"required": false,
|
|
2986
|
-
"type": "unknown",
|
|
2987
|
-
"description": "설명"
|
|
2988
|
-
},
|
|
2989
3213
|
{
|
|
2990
3214
|
"name": "RegistrationNumber",
|
|
2991
3215
|
"required": true,
|
|
@@ -3052,6 +3276,12 @@
|
|
|
3052
3276
|
"type": "unknown",
|
|
3053
3277
|
"description": "대표 상품명 입니다. 고객에게 상품정보 노출하기 위해 값을 설정해 주세요. 상품이 2건 이상인 경우 대표상품명 외 @건으로 표기해 주세요. ex) 아메리카노 외1건"
|
|
3054
3278
|
},
|
|
3279
|
+
{
|
|
3280
|
+
"name": "ProductList",
|
|
3281
|
+
"required": true,
|
|
3282
|
+
"type": "unknown",
|
|
3283
|
+
"description": "상품 상세 LIST 입니다.(시작 구분 값:0x02, 상품 구분 값:0x01, 종료 구분 값:0x03 ex) (0x02)20124(0x01)라떼(0x01)3500(0x01)2(0x01)Y(0x03)"
|
|
3284
|
+
},
|
|
3055
3285
|
{
|
|
3056
3286
|
"name": "ProductListFieldCount",
|
|
3057
3287
|
"required": true,
|
|
@@ -3142,12 +3372,6 @@
|
|
|
3142
3372
|
"type": "unknown",
|
|
3143
3373
|
"description": "취소거래 시 포인트 및 쿠폰 금액을 제외한 신용카드 결제금액을 설정해 주세요. ex) 500"
|
|
3144
3374
|
},
|
|
3145
|
-
{
|
|
3146
|
-
"name": "KEY",
|
|
3147
|
-
"required": false,
|
|
3148
|
-
"type": "unknown",
|
|
3149
|
-
"description": "설명"
|
|
3150
|
-
},
|
|
3151
3375
|
{
|
|
3152
3376
|
"name": "MerchantCode",
|
|
3153
3377
|
"required": false,
|
|
@@ -3160,12 +3384,6 @@
|
|
|
3160
3384
|
"type": "unknown",
|
|
3161
3385
|
"description": "PEM ex) 0"
|
|
3162
3386
|
},
|
|
3163
|
-
{
|
|
3164
|
-
"name": "KEY",
|
|
3165
|
-
"required": false,
|
|
3166
|
-
"type": "unknown",
|
|
3167
|
-
"description": "설명"
|
|
3168
|
-
},
|
|
3169
3387
|
{
|
|
3170
3388
|
"name": "MerchantPosNo",
|
|
3171
3389
|
"required": false,
|
|
@@ -3175,8 +3393,8 @@
|
|
|
3175
3393
|
],
|
|
3176
3394
|
"response_params": [],
|
|
3177
3395
|
"param_counts": {
|
|
3178
|
-
"request_total":
|
|
3179
|
-
"request_required":
|
|
3396
|
+
"request_total": 30,
|
|
3397
|
+
"request_required": 15,
|
|
3180
3398
|
"response_total": 0
|
|
3181
3399
|
}
|
|
3182
3400
|
},
|
|
@@ -3187,12 +3405,6 @@
|
|
|
3187
3405
|
"url": "GetPaycoData",
|
|
3188
3406
|
"method": "DLL",
|
|
3189
3407
|
"request_params": [
|
|
3190
|
-
{
|
|
3191
|
-
"name": "KEY",
|
|
3192
|
-
"required": false,
|
|
3193
|
-
"type": "unknown",
|
|
3194
|
-
"description": "설명"
|
|
3195
|
-
},
|
|
3196
3408
|
{
|
|
3197
3409
|
"name": "ResCd",
|
|
3198
3410
|
"required": false,
|
|
@@ -3460,7 +3672,7 @@
|
|
|
3460
3672
|
],
|
|
3461
3673
|
"response_params": [],
|
|
3462
3674
|
"param_counts": {
|
|
3463
|
-
"request_total":
|
|
3675
|
+
"request_total": 44,
|
|
3464
3676
|
"request_required": 0,
|
|
3465
3677
|
"response_total": 0
|
|
3466
3678
|
}
|
|
@@ -5069,12 +5281,6 @@
|
|
|
5069
5281
|
"url": "SetData",
|
|
5070
5282
|
"method": "DLL",
|
|
5071
5283
|
"request_params": [
|
|
5072
|
-
{
|
|
5073
|
-
"name": "KEY",
|
|
5074
|
-
"required": false,
|
|
5075
|
-
"type": "unknown",
|
|
5076
|
-
"description": "설명"
|
|
5077
|
-
},
|
|
5078
5284
|
{
|
|
5079
5285
|
"name": "registernumber",
|
|
5080
5286
|
"required": false,
|
|
@@ -5096,7 +5302,7 @@
|
|
|
5096
5302
|
],
|
|
5097
5303
|
"response_params": [],
|
|
5098
5304
|
"param_counts": {
|
|
5099
|
-
"request_total":
|
|
5305
|
+
"request_total": 3,
|
|
5100
5306
|
"request_required": 0,
|
|
5101
5307
|
"response_total": 0
|
|
5102
5308
|
}
|
|
@@ -5108,12 +5314,6 @@
|
|
|
5108
5314
|
"url": "SendData",
|
|
5109
5315
|
"method": "DLL",
|
|
5110
5316
|
"request_params": [
|
|
5111
|
-
{
|
|
5112
|
-
"name": "KEY",
|
|
5113
|
-
"required": false,
|
|
5114
|
-
"type": "unknown",
|
|
5115
|
-
"description": "설명"
|
|
5116
|
-
},
|
|
5117
5317
|
{
|
|
5118
5318
|
"name": "ACCEPTED",
|
|
5119
5319
|
"required": false,
|
|
@@ -5165,7 +5365,7 @@
|
|
|
5165
5365
|
],
|
|
5166
5366
|
"response_params": [],
|
|
5167
5367
|
"param_counts": {
|
|
5168
|
-
"request_total":
|
|
5368
|
+
"request_total": 8,
|
|
5169
5369
|
"request_required": 0,
|
|
5170
5370
|
"response_total": 0
|
|
5171
5371
|
}
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
| | | | | |
|
|
34
34
|
| --- | --- | --- | --- | --- |
|
|
35
35
|
| **Column** | **Java Type** | **필수여부** | **Description** | **example** |
|
|
36
|
-
| includePayment MethodCodes | List<String> | N | 가능한
|
|
37
|
-
| excludePayment MethodCodes | List<String> | N | 제외 할
|
|
36
|
+
| includePayment MethodCodes | List<String> | N | 가능한 결제수단(online-code 가이드의 「결제수단 코드」 참고) - includePaymentMethodCodes 중 가능한 결제수단 제공 : 동일한 결제수단이 excludePaymentMethodCodes 에도 포함된 경우 결제수단에서 제외 | "includePaymentMethodCodes" : ["31, "01"] |
|
|
37
|
+
| excludePayment MethodCodes | List<String> | N | 제외 할 결제수단(online-code 가이드의 「결제수단 코드」 참고) - 가능한 결제수단 중 excludePaymentMethodCodes 제외 | "excludePaymentMethodCodes" : ["31, "01"] |
|
|
38
38
|
| **paymentMetho dOptions** | List<payme ntMethodO ption> | N | 결제수단별 결제옵션 | "paymentMethodOptions" : [ { "paymentMethodCode": "05", "message": "핸드폰으로 결제하시면 수수료가 부과됩니다." }, { "paymentMethodCode": "31", "useCardList" : ["CCBC", "CCSS"] }, { "paymentMethodCode": "02", "message": "추가 무통장 입금취소 시 결제 불가 합니다." }, |
|
|
39
39
|
|
|
40
40
|
시 총
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
| | | | | |
|
|
67
67
|
| --- | --- | --- | --- | --- |
|
|
68
68
|
| **Column** | **Java Type** | **필수여 부** | **Description** | **example** |
|
|
69
|
-
| paymentMethodCode | String | Y |
|
|
69
|
+
| paymentMethodCode | String | Y | 결제수단(online-code 가이드의 「결제수단 코드」 참고)코드 | 예 : 신용카드 간편결제의 경우-> 31 |
|
|
70
70
|
| message | String | N | 해당 결제수단을 선택했을 때 노출할 메시지 (결제창 내에 노출됨) | |
|
|
71
71
|
| useCardList | | N | 사용카드 목록 | ["CCBC", "CCSS"] |
|
|
72
72
|
| compositePaymentPos sibleYn | String | N | 복합결제 가능 여부 (기본값: Y) - 일반결제수단만 적용 가능(신용카드, 휴대폰, 무통장입금...) | Y |
|
package/dist/data/index.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schema_version": "1.0",
|
|
3
3
|
"source_site": "https://devcenter.payco.com",
|
|
4
4
|
"scope": "PAYCO 가이드 전체 (온라인결제·자동결제·오프라인결제·오더클라우드·멤버십클라우드·결제정산대사)",
|
|
5
|
-
"generated_at": "2026-
|
|
5
|
+
"generated_at": "2026-10-13T02:11:44+00:00",
|
|
6
6
|
"category_count": 28,
|
|
7
7
|
"categories": [
|
|
8
8
|
{
|
|
@@ -625,7 +625,7 @@
|
|
|
625
625
|
],
|
|
626
626
|
"table_count": 56,
|
|
627
627
|
"code_block_count": 0,
|
|
628
|
-
"text_length":
|
|
628
|
+
"text_length": 6586
|
|
629
629
|
},
|
|
630
630
|
{
|
|
631
631
|
"slug": "online-sample",
|
package/dist/tools.js
CHANGED
|
@@ -447,7 +447,7 @@ export function registerAllTools(server, store) {
|
|
|
447
447
|
// 1) search_devcenter ----------------------------------------------------
|
|
448
448
|
server.registerTool("search_devcenter", {
|
|
449
449
|
title: "개발자센터 검색",
|
|
450
|
-
description: "PAYCO 개발자센터 가이드(
|
|
450
|
+
description: "PAYCO 개발자센터 가이드 28개(온라인·오프라인·오더·멤버십·결제정산)를 키워드로 검색. " +
|
|
451
451
|
"제목·섹션·본문 텍스트에서 매칭되는 가이드와 발췌를 반환.",
|
|
452
452
|
inputSchema: {
|
|
453
453
|
query: z.string().min(1).describe("검색어 (예: '결제 승인', 'orderProducts')"),
|
|
@@ -533,7 +533,7 @@ export function registerAllTools(server, store) {
|
|
|
533
533
|
// 5) get_sample_code ----------------------------------------------------
|
|
534
534
|
server.registerTool("get_sample_code", {
|
|
535
535
|
title: "샘플 코드 조회",
|
|
536
|
-
description: "특정 가이드의 코드
|
|
536
|
+
description: "특정 가이드의 코드 블록(주로 요청·응답 JSON 예시)만 추출해 반환. 언어별 소스코드 샘플은 포함하지 않음.",
|
|
537
537
|
inputSchema: {
|
|
538
538
|
slug: z
|
|
539
539
|
.string()
|
|
@@ -541,7 +541,7 @@ export function registerAllTools(server, store) {
|
|
|
541
541
|
language: z
|
|
542
542
|
.string()
|
|
543
543
|
.optional()
|
|
544
|
-
.describe("필터할 언어
|
|
544
|
+
.describe("필터할 언어 태그. 현재 가이드 코드 블록 대부분에 언어 표시가 없어 지정해도 결과가 거의 같음. 미지정 시 모든 코드 블록 반환."),
|
|
545
545
|
},
|
|
546
546
|
}, async ({ slug, language }) => {
|
|
547
547
|
const md = store.guides.get(slug);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nhnpayco-dev/mcp-devcenter",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "PAYCO 개발자센터 가이드 전체(온라인·오프라인·오더·멤버십·결제정산) 를 AI
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "PAYCO 개발자센터 가이드 전체(온라인·오프라인·오더·멤버십·결제정산) 를 AI 개발 도구에서 바로 조회·검색할 수 있게 해주는 MCP 서버 (PAYCO Developer Center integration guide MCP server for Claude, Cursor and AI agents)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"payco-mcp-devcenter": "dist/index.js"
|