apick-mcp 3.2.1 → 3.3.0
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/CHANGELOG.md +15 -1
- package/README.md +21 -1
- package/TOOLS.md +166 -91
- package/package.json +89 -89
- package/src/index.js +92 -92
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
# 변경 기록
|
|
1
|
+
# 변경 기록
|
|
2
|
+
|
|
3
|
+
## 3.3.0 — 2026-09-14
|
|
4
|
+
|
|
5
|
+
- Seedance 참조 소재의 이미지·영상·오디오 파일 인자를 문서화했습니다.
|
|
6
|
+
- Add video generation version selection documentation and compatibility tests.
|
|
7
|
+
- 영상 생성 버전 선택, 버전별 옵션·요금 안내와 호환 검증을 추가했습니다.
|
|
8
|
+
- Pass version and tier through the existing bridge; no transport change.
|
|
9
|
+
- Document and verify Seedance 2.0 Fast and Mini tier pass-through.
|
|
10
|
+
|
|
11
|
+
## 3.2.2 - 2026-09-14
|
|
12
|
+
|
|
13
|
+
- 운전면허 `ghost_num`의 생략·빈값·임의 문자열 허용과 판정 미사용 계약을 한영 문서에 명시했습니다.
|
|
14
|
+
- 운전면허 불일치와 무과금 처리 실패를 구분하고, 응답에 조회 페이지 HTML을 포함하지 않는 계약을 안내합니다.
|
|
15
|
+
- Clarify optional driver-license serial input, match semantics, safe messages, and uncharged processing failures.
|
|
2
16
|
|
|
3
17
|
## 3.2.1 - 2026-09-14
|
|
4
18
|
|
package/README.md
CHANGED
|
@@ -267,7 +267,9 @@ Built for phishing and copycat-site investigation: resolve the host, trace its I
|
|
|
267
267
|
`veo_jobs_create` → `veo_jobs_status`
|
|
268
268
|
|
|
269
269
|
Video generation (`seedance_jobs_create`, `veo_jobs_create`, `kling_jobs_create`) is asynchronous — submit a job, poll status, then download once it's `completed` via the status result's `result_url`. Billed per second (`duration × per-second points`), refunded in full on failure or timeout.
|
|
270
|
-
영상 생성(`seedance_jobs_create`, `veo_jobs_create`, `kling_jobs_create`)은 비동기입니다 — 접수 후 상태를 조회하다가 `completed`가 되면 상태 결과의 `result_url`로 다운로드합니다. 초당 포인트 × 길이(초)로 과금되며 실패·시간 초과 시 전액 환불됩니다.
|
|
270
|
+
영상 생성(`seedance_jobs_create`, `veo_jobs_create`, `kling_jobs_create`)은 비동기입니다 — 접수 후 상태를 조회하다가 `completed`가 되면 상태 결과의 `result_url`로 다운로드합니다. 초당 포인트 × 길이(초)로 과금되며 실패·시간 초과 시 전액 환불됩니다.
|
|
271
|
+
|
|
272
|
+
Seedance 참조 소재 모드는 지원 버전에서 참조 이미지·영상·오디오(MP3·WAV) URL을 함께 받을 수 있습니다.
|
|
271
273
|
|
|
272
274
|
---
|
|
273
275
|
|
|
@@ -402,3 +404,21 @@ MIT — [LICENSE](LICENSE) 참고. 이 저장소(문서와 stdio 브릿지)에
|
|
|
402
404
|
`tts_jobs_retry` takes `job_id`, `utterance_ids` (such as `["u002"]`), and `idempotency_key`. Reuse the same key and IDs after a lost response. Technical recovery does not add a charge. This tool changes job state (`readOnlyHint: false`).
|
|
403
405
|
|
|
404
406
|
`tts_jobs_quality`는 작업 ID로 발화 검수와 후보 이력을 조회합니다. `tts_jobs_candidate_audio`는 작업 ID·후보 ID로 WAV를 조회하며 최종 다운로드를 소비하지 않습니다. 후보는 종료 후 72시간 보존됩니다. `tts_jobs_retry`는 발화 ID 목록과 멱등 키로 같은 작업을 추가 과금 없이 재개합니다. 응답 단절 시 동일한 키와 목록을 재사용하세요.
|
|
407
|
+
|
|
408
|
+
## Video model versions
|
|
409
|
+
|
|
410
|
+
Omitting `version` preserves Seedance 2.5, Veo 3.1 and Kling 3.0. Set `version` and `tier` explicitly to select a generation; jobs are never silently switched to another version. Submission and status responses include `version`.
|
|
411
|
+
|
|
412
|
+
Available generations: Seedance 1.0/1.5/2.0/2.5, including Seedance 2.0 Standard/Fast/Mini; Veo 3.1 (Standard/Fast/Lite); Kling 1.6/2.0/2.1/2.5/2.6/3.0/O1/O3. Veo 3.0 is unavailable. Modes, tiers, resolutions, durations, audio, file limits and prices vary by combination. See the [Seedance](https://apick.app/dev_guide/seedancejobs), [Veo](https://apick.app/dev_guide/veojobs) and [Kling](https://apick.app/dev_guide/klingjobs) version tables. Unsupported combinations are rejected before submission.
|
|
413
|
+
|
|
414
|
+
## 영상 모델 버전 선택
|
|
415
|
+
|
|
416
|
+
`version`을 생략하면 Seedance 2.5, Veo 3.1, Kling 3.0을 사용합니다. 버전과 등급을 명시하면 해당 조합으로 생성하며 다른 모델로 자동 대체하지 않습니다. 생성과 상태 응답의 `version`으로 확인할 수 있습니다.
|
|
417
|
+
|
|
418
|
+
| 제품 | 제공 버전 | 제약과 요금 |
|
|
419
|
+
|---|---|---|
|
|
420
|
+
| Seedance | 2.5, 2.0(Standard·Fast·Mini), 1.5, 1.0 | [버전별 지원표](https://apick.app/dev_guide/seedancejobs) |
|
|
421
|
+
| Veo | 3.1 (Standard, Fast, Lite) | [버전별 지원표](https://apick.app/dev_guide/veojobs) |
|
|
422
|
+
| Kling | 3.0, O3, O1, 2.6, 2.5, 2.1, 2.0, 1.6 | [버전별 지원표](https://apick.app/dev_guide/klingjobs) |
|
|
423
|
+
|
|
424
|
+
등급·해상도·길이·오디오·파일 개수와 초당 포인트는 선택 조합별로 다릅니다. Seedance 2.0은 Standard·Fast·Mini를 제공하며 Mini는 480p·720p와 4~15초를 지원합니다. 무음 전용 모델은 `audio=false`, 오디오 필수 모델은 `audio=true`만 허용합니다. Veo 3.0은 현재 제공하지 않습니다. 지원하지 않는 조합은 접수 전에 거절됩니다.
|
package/TOOLS.md
CHANGED
|
@@ -434,9 +434,13 @@ Verify the authenticity of a Korean resident registration card (jumin-deungnokje
|
|
|
434
434
|
|
|
435
435
|
### `identi_card2` — [Text] 운전면허증 진위 확인
|
|
436
436
|
|
|
437
|
-
|
|
437
|
+
Check Korean driver license number and personal details. `ghost_num` is optional: omit it, send an empty string, or send any string. Its content is not used in the match decision. This tool does not verify the serial number itself or the physical document's authenticity.
|
|
438
438
|
|
|
439
|
-
|
|
439
|
+
운전면허번호와 인적사항의 일치 여부를 조회합니다. birth_y, birth_m, birth_d, name과 면허번호 4구획(licen_no0~licen_no3)은 필수입니다. ghost_num(식별번호)은 생략·빈값·임의 문자열 모두 허용하며 전달값은 판정에 사용하지 않습니다. rrn1, rrn2도 선택 입력입니다. 암호일련번호 자체나 실물 면허증의 위·변조 여부는 검증하지 않습니다. 정보주체의 동의 등 적법한 처리 근거를 확보한 경우에만 사용하십시오.
|
|
440
|
+
|
|
441
|
+
`result=0` means a mismatch and `result=1` means a match. An unconfirmed result returns HTTP 424 (`result=2`); a timeout returns HTTP 408 (`result=3`). These processing failures are not charged. Responses contain short public messages, never source-page HTML.
|
|
442
|
+
|
|
443
|
+
`result=0`은 불일치, `result=1`은 일치입니다. 판정 확인 실패는 HTTP 424(`result=2`), 시간 초과는 HTTP 408(`result=3`)이며 과금되지 않습니다. 응답에는 짧은 안내 문구만 포함되고 조회 페이지 HTML은 포함되지 않습니다.
|
|
440
444
|
|
|
441
445
|
> 읽기 전용 / read-only · 외부 데이터 조회 / external lookup · server `identity`
|
|
442
446
|
|
|
@@ -450,7 +454,7 @@ Verify the authenticity of a Korean driver license using text input.
|
|
|
450
454
|
| `licen_no1` | `string` | **필수 / required** | 면허번호 2구획 (예: 19) |
|
|
451
455
|
| `licen_no2` | `string` | **필수 / required** | 면허번호 3구획 (예: 174133) |
|
|
452
456
|
| `licen_no3` | `string` | **필수 / required** | 면허번호 4구획 (예: 01) |
|
|
453
|
-
| `ghost_num` | `string` | 선택 / optional |
|
|
457
|
+
| `ghost_num` | `string` | 선택 / optional | 생략·빈값 허용, 전달값은 판정에 사용하지 않음 / May be omitted or empty; not used in the match decision |
|
|
454
458
|
| `rrn1` | `string` | 선택 / optional | 주민등록번호 앞 6자리 (선택) |
|
|
455
459
|
| `rrn2` | `string` | 선택 / optional | 주민등록번호 뒤 7자리 (선택) |
|
|
456
460
|
|
|
@@ -1837,34 +1841,81 @@ Polish a text (up to 100,000 characters) by fixing grammar, spelling, and awkwar
|
|
|
1837
1841
|
|
|
1838
1842
|
<a id="seedance-jobs-create"></a>
|
|
1839
1843
|
|
|
1840
|
-
### `seedance_jobs_create` — Seedance 영상 작업 접수
|
|
1841
|
-
|
|
1842
|
-
Submit an asynchronous Seedance video generation job
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
|
1849
|
-
|
|
|
1850
|
-
| `
|
|
1851
|
-
| `
|
|
1852
|
-
| `
|
|
1853
|
-
| `
|
|
1854
|
-
| `
|
|
1855
|
-
| `
|
|
1856
|
-
| `
|
|
1857
|
-
| `
|
|
1858
|
-
| `
|
|
1859
|
-
| `
|
|
1860
|
-
| `
|
|
1861
|
-
| `
|
|
1862
|
-
| `
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1844
|
+
### `seedance_jobs_create` — Seedance 영상 작업 접수
|
|
1845
|
+
|
|
1846
|
+
Submit an asynchronous Seedance video generation job. Select version and tier; supported modes, durations and prices depend on the selected version. Seedance 영상 생성 작업을 비동기로 접수합니다. text/image/reference 세 가지 mode를 지원하며, seedance_jobs_status Tool로 상태를 조회하고 완료되면 응답의 result_url(REST 다운로드 주소, 7일 이내 유효)로 다운로드합니다. 접수 시 duration × 초당 포인트(해상도별로 다름, resolution 참고)가 예약 차감되고 완료 시 확정, 실패·시간 초과 시 전액 환불됩니다.
|
|
1847
|
+
|
|
1848
|
+
기본 버전 기준: 초당 480p 560P·720p 1,250P·1080p 2,810P × duration(초). 다른 버전은 개발가이드의 버전별 요금표 참고.
|
|
1849
|
+
|
|
1850
|
+
| Parameter | Type | Required | Description 설명 |
|
|
1851
|
+
| --- | --- | --- | --- |
|
|
1852
|
+
| `version` | `string` | 선택 / optional | 영상 모델 버전. 생략 시 2.5. 등급·해상도·길이·오디오·파일 제약과 요금은 선택 버전별 개발가이드 표를 확인하세요. `2.5`, `2.0`, `1.5`, `1.0` |
|
|
1853
|
+
| `prompt` | `string` | 필수 / required | 영상 생성 프롬프트, 최대 2,000자 |
|
|
1854
|
+
| `mode` | `string` | 선택 / optional | 입력 방식 — 'text'(텍스트만) \| 'image'(첫 프레임 이미지 지정) \| 'reference'(참조 이미지·영상으로 주체 지정). 기본 text `text`, `image`, `reference` |
|
|
1855
|
+
| `duration` | `integer` | 선택 / optional | 영상 길이(초), 전체 버전 범위 2~30. 허용 값과 기본값은 버전·등급별로 다릅니다. |
|
|
1856
|
+
| `aspect_ratio` | `string` | 선택 / optional | 출력 화면 비율. 선택 버전·등급·모드에서 허용하는 값만 사용하세요. `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`, `adaptive` |
|
|
1857
|
+
| `resolution` | `string` | 선택 / optional | 출력 해상도. 전체 버전의 값 목록이며 허용 조합·기본값·요금은 버전별 개발가이드를 따릅니다. `480p`, `720p`, `1080p` |
|
|
1858
|
+
| `audio` | `boolean` | 선택 / optional | 오디오 생성 여부. 선택 가능한 버전은 기본 true, 무음 전용 버전은 false, 오디오 필수 버전은 true만 허용합니다. |
|
|
1859
|
+
| `tier` | `string` | 선택 / optional | 품질·속도 등급. 지원 등급과 생략 시 기본값은 version과 mode에 따라 다릅니다. `standard`, `fast`, `mini`, `pro` |
|
|
1860
|
+
| `seed` | `integer` | 선택 / optional | 재현성을 위한 시드 값 |
|
|
1861
|
+
| `idempotency_key` | `string` | 선택 / optional | 같은 요청의 재전송으로 인한 중복 접수·과금을 막는 고유 키 |
|
|
1862
|
+
| `image_url` | `string (file)` | 선택 / optional | image 모드에서 사용할 첫 프레임 이미지 URL |
|
|
1863
|
+
| `last_image_url` | `string (file)` | 선택 / optional | image 모드에서 사용할 마지막 프레임 이미지 URL(선택) |
|
|
1864
|
+
| `reference_image_url` | `string (file)` | 선택 / optional | reference 모드에서 주체를 지정할 참조 이미지 URL |
|
|
1865
|
+
| `reference_image_url_2` | `string (file)` | 선택 / optional | reference 모드 참조 이미지 URL(2번째) |
|
|
1866
|
+
| `reference_image_url_3` | `string (file)` | 선택 / optional | reference 모드 참조 이미지 URL(3번째) |
|
|
1867
|
+
| `reference_video_url` | `string (file)` | 선택 / optional | reference 모드에서 동작을 참조할 영상 URL |
|
|
1868
|
+
| `reference_image_url_4` | `string (file)` | 선택 / optional | 참조 이미지 URL(4번째). 버전별 최대 개수를 확인하세요. |
|
|
1869
|
+
| `reference_image_url_5` | `string (file)` | 선택 / optional | 참조 이미지 URL(5번째). 버전별 최대 개수를 확인하세요. |
|
|
1870
|
+
| `reference_image_url_6` | `string (file)` | 선택 / optional | 참조 이미지 URL(6번째). 버전별 최대 개수를 확인하세요. |
|
|
1871
|
+
| `reference_image_url_7` | `string (file)` | 선택 / optional | 참조 이미지 URL(7번째). 버전별 최대 개수를 확인하세요. |
|
|
1872
|
+
| `reference_image_url_8` | `string (file)` | 선택 / optional | 참조 이미지 URL(8번째). 버전별 최대 개수를 확인하세요. |
|
|
1873
|
+
| `reference_image_url_9` | `string (file)` | 선택 / optional | 참조 이미지 URL(9번째). 버전별 최대 개수를 확인하세요. |
|
|
1874
|
+
| `reference_image_url_10` | `string (file)` | 선택 / optional | 참조 이미지 URL(10번째). 버전별 최대 개수를 확인하세요. |
|
|
1875
|
+
| `reference_image_url_11` | `string (file)` | 선택 / optional | 참조 이미지 URL(11번째). 버전별 최대 개수를 확인하세요. |
|
|
1876
|
+
| `reference_image_url_12` | `string (file)` | 선택 / optional | 참조 이미지 URL(12번째). 버전별 최대 개수를 확인하세요. |
|
|
1877
|
+
| `reference_image_url_13` | `string (file)` | 선택 / optional | 참조 이미지 URL(13번째). 버전별 최대 개수를 확인하세요. |
|
|
1878
|
+
| `reference_image_url_14` | `string (file)` | 선택 / optional | 참조 이미지 URL(14번째). 버전별 최대 개수를 확인하세요. |
|
|
1879
|
+
| `reference_image_url_15` | `string (file)` | 선택 / optional | 참조 이미지 URL(15번째). 버전별 최대 개수를 확인하세요. |
|
|
1880
|
+
| `reference_image_url_16` | `string (file)` | 선택 / optional | 참조 이미지 URL(16번째). 버전별 최대 개수를 확인하세요. |
|
|
1881
|
+
| `reference_image_url_17` | `string (file)` | 선택 / optional | 참조 이미지 URL(17번째). 버전별 최대 개수를 확인하세요. |
|
|
1882
|
+
| `reference_image_url_18` | `string (file)` | 선택 / optional | 참조 이미지 URL(18번째). 버전별 최대 개수를 확인하세요. |
|
|
1883
|
+
| `reference_image_url_19` | `string (file)` | 선택 / optional | 참조 이미지 URL(19번째). 버전별 최대 개수를 확인하세요. |
|
|
1884
|
+
| `reference_image_url_20` | `string (file)` | 선택 / optional | 참조 이미지 URL(20번째). 버전별 최대 개수를 확인하세요. |
|
|
1885
|
+
| `reference_image_url_21` | `string (file)` | 선택 / optional | 참조 이미지 URL(21번째). 버전별 최대 개수를 확인하세요. |
|
|
1886
|
+
| `reference_image_url_22` | `string (file)` | 선택 / optional | 참조 이미지 URL(22번째). 버전별 최대 개수를 확인하세요. |
|
|
1887
|
+
| `reference_image_url_23` | `string (file)` | 선택 / optional | 참조 이미지 URL(23번째). 버전별 최대 개수를 확인하세요. |
|
|
1888
|
+
| `reference_image_url_24` | `string (file)` | 선택 / optional | 참조 이미지 URL(24번째). 버전별 최대 개수를 확인하세요. |
|
|
1889
|
+
| `reference_image_url_25` | `string (file)` | 선택 / optional | 참조 이미지 URL(25번째). 버전별 최대 개수를 확인하세요. |
|
|
1890
|
+
| `reference_image_url_26` | `string (file)` | 선택 / optional | 참조 이미지 URL(26번째). 버전별 최대 개수를 확인하세요. |
|
|
1891
|
+
| `reference_image_url_27` | `string (file)` | 선택 / optional | 참조 이미지 URL(27번째). 버전별 최대 개수를 확인하세요. |
|
|
1892
|
+
| `reference_image_url_28` | `string (file)` | 선택 / optional | 참조 이미지 URL(28번째). 버전별 최대 개수를 확인하세요. |
|
|
1893
|
+
| `reference_image_url_29` | `string (file)` | 선택 / optional | 참조 이미지 URL(29번째). 버전별 최대 개수를 확인하세요. |
|
|
1894
|
+
| `reference_image_url_30` | `string (file)` | 선택 / optional | 참조 이미지 URL(30번째). 버전별 최대 개수를 확인하세요. |
|
|
1895
|
+
| `reference_video_url_2` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1896
|
+
| `reference_video_url_3` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1897
|
+
| `reference_video_url_4` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1898
|
+
| `reference_video_url_5` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1899
|
+
| `reference_video_url_6` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1900
|
+
| `reference_video_url_7` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1901
|
+
| `reference_video_url_8` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1902
|
+
| `reference_video_url_9` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1903
|
+
| `reference_video_url_10` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1904
|
+
| `reference_audio_url` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1905
|
+
| `reference_audio_url_2` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1906
|
+
| `reference_audio_url_3` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1907
|
+
| `reference_audio_url_4` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1908
|
+
| `reference_audio_url_5` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1909
|
+
| `reference_audio_url_6` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1910
|
+
| `reference_audio_url_7` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1911
|
+
| `reference_audio_url_8` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1912
|
+
| `reference_audio_url_9` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1913
|
+
| `reference_audio_url_10` | `string (file)` | 선택 / optional | 참조 오디오 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
1914
|
+
|
|
1915
|
+
```json
|
|
1916
|
+
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"seedance_jobs_create","arguments":{"prompt":"A red sports car racing through a rainy city","version":"2.0","tier":"mini","duration":4,"resolution":"480p"}}}
|
|
1917
|
+
```
|
|
1918
|
+
|
|
1868
1919
|
<a id="seedance-jobs-status"></a>
|
|
1869
1920
|
|
|
1870
1921
|
### `seedance_jobs_status` — Seedance 영상 작업 상태
|
|
@@ -1885,36 +1936,35 @@ Seedance 영상 작업의 진행 상태를 조회합니다. 완료되면 응답
|
|
|
1885
1936
|
|
|
1886
1937
|
<a id="veo-jobs-create"></a>
|
|
1887
1938
|
|
|
1888
|
-
### `veo_jobs_create` — Veo 영상 작업 접수
|
|
1889
|
-
|
|
1890
|
-
Submit an asynchronous Veo video generation job
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
|
1897
|
-
|
|
|
1898
|
-
| `
|
|
1899
|
-
| `
|
|
1900
|
-
| `
|
|
1901
|
-
| `
|
|
1902
|
-
| `
|
|
1903
|
-
| `
|
|
1904
|
-
| `
|
|
1905
|
-
| `
|
|
1906
|
-
| `
|
|
1907
|
-
| `
|
|
1908
|
-
| `
|
|
1909
|
-
| `
|
|
1910
|
-
| `
|
|
1911
|
-
| `
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1939
|
+
### `veo_jobs_create` — Veo 영상 작업 접수
|
|
1940
|
+
|
|
1941
|
+
Submit an asynchronous Veo video generation job. Select version and tier; supported modes, durations and prices depend on the selected version. Veo 영상 생성 작업을 비동기로 접수합니다. text/image/reference 세 가지 mode를 지원하며, veo_jobs_status Tool로 상태를 조회하고 완료되면 응답의 result_url(REST 다운로드 주소, 7일 이내 유효)로 다운로드합니다. 접수 시 duration × 초당 900포인트가 예약 차감되고 완료 시 확정, 실패·시간 초과 시 전액 환불됩니다.
|
|
1942
|
+
|
|
1943
|
+
기본 버전 기준: 초당 900포인트 × duration(초). 다른 버전은 개발가이드의 버전별 요금표 참고.
|
|
1944
|
+
|
|
1945
|
+
| Parameter | Type | Required | Description 설명 |
|
|
1946
|
+
| --- | --- | --- | --- |
|
|
1947
|
+
| `version` | `string` | 선택 / optional | 영상 모델 버전. 생략 시 3.1. 등급·해상도·길이·오디오·파일 제약과 요금은 선택 버전별 개발가이드 표를 확인하세요. `3.1` |
|
|
1948
|
+
| `prompt` | `string` | 필수 / required | 영상 생성 프롬프트, 최대 2,000자 |
|
|
1949
|
+
| `mode` | `string` | 선택 / optional | 입력 방식 — 'text'(텍스트만) \| 'image'(첫 프레임 이미지 지정) \| 'reference'(참조 이미지·영상으로 주체 지정). 기본 text `text`, `image`, `reference` |
|
|
1950
|
+
| `duration` | `integer` | 선택 / optional | 영상 길이(초), 전체 버전 범위 4~8. 허용 값과 기본값은 버전·등급별로 다릅니다. |
|
|
1951
|
+
| `aspect_ratio` | `string` | 선택 / optional | 출력 화면 비율. 선택 버전·등급·모드에서 허용하는 값만 사용하세요. `16:9`, `9:16` |
|
|
1952
|
+
| `resolution` | `string` | 선택 / optional | 출력 해상도. 전체 버전의 값 목록이며 허용 조합·기본값·요금은 버전별 개발가이드를 따릅니다. `720p`, `1080p`, `4k` |
|
|
1953
|
+
| `audio` | `boolean` | 선택 / optional | 오디오 생성 여부. 선택 가능한 버전은 기본 true, 무음 전용 버전은 false, 오디오 필수 버전은 true만 허용합니다. |
|
|
1954
|
+
| `tier` | `string` | 선택 / optional | 품질·속도 등급. 지원 등급과 생략 시 기본값은 version과 mode에 따라 다릅니다. `standard`, `fast`, `lite` |
|
|
1955
|
+
| `negative_prompt` | `string` | 선택 / optional | 제외할 요소를 설명하는 텍스트 |
|
|
1956
|
+
| `seed` | `integer` | 선택 / optional | 재현성을 위한 시드 값 |
|
|
1957
|
+
| `idempotency_key` | `string` | 선택 / optional | 같은 요청의 재전송으로 인한 중복 접수·과금을 막는 고유 키 |
|
|
1958
|
+
| `image_url` | `string (file)` | 선택 / optional | image 모드에서 사용할 첫 프레임 이미지 URL |
|
|
1959
|
+
| `last_image_url` | `string (file)` | 선택 / optional | image 모드에서 사용할 마지막 프레임 이미지 URL(선택) |
|
|
1960
|
+
| `reference_image_url` | `string (file)` | 선택 / optional | reference 모드에서 주체를 지정할 참조 이미지 URL |
|
|
1961
|
+
| `reference_image_url_2` | `string (file)` | 선택 / optional | reference 모드 참조 이미지 URL(2번째) |
|
|
1962
|
+
| `reference_image_url_3` | `string (file)` | 선택 / optional | reference 모드 참조 이미지 URL(3번째) |
|
|
1963
|
+
|
|
1964
|
+
```json
|
|
1965
|
+
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"veo_jobs_create","arguments":{"prompt":"A boat crossing the sea","version":"3.1"}}}
|
|
1966
|
+
```
|
|
1967
|
+
|
|
1918
1968
|
<a id="veo-jobs-status"></a>
|
|
1919
1969
|
|
|
1920
1970
|
### `veo_jobs_status` — Veo 영상 작업 상태
|
|
@@ -1935,36 +1985,43 @@ Veo 영상 작업의 진행 상태를 조회합니다. 완료되면 응답의 `r
|
|
|
1935
1985
|
|
|
1936
1986
|
<a id="kling-jobs-create"></a>
|
|
1937
1987
|
|
|
1938
|
-
### `kling_jobs_create` — Kling 영상 작업 접수
|
|
1939
|
-
|
|
1940
|
-
Submit an asynchronous Kling video generation job
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
|
1947
|
-
|
|
|
1948
|
-
| `
|
|
1949
|
-
| `
|
|
1950
|
-
| `
|
|
1951
|
-
| `
|
|
1952
|
-
| `
|
|
1953
|
-
| `
|
|
1954
|
-
| `
|
|
1955
|
-
| `
|
|
1956
|
-
| `
|
|
1957
|
-
| `
|
|
1958
|
-
| `
|
|
1959
|
-
| `
|
|
1960
|
-
| `
|
|
1961
|
-
| `
|
|
1962
|
-
| `
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1988
|
+
### `kling_jobs_create` — Kling 영상 작업 접수
|
|
1989
|
+
|
|
1990
|
+
Submit an asynchronous Kling video generation job. Select version and tier; supported modes, durations and prices depend on the selected version. Kling 영상 생성 작업을 비동기로 접수합니다. text/image/reference 세 가지 mode를 지원하며, kling_jobs_status Tool로 상태를 조회하고 완료되면 응답의 result_url(REST 다운로드 주소, 7일 이내 유효)로 다운로드합니다. 접수 시 duration × 초당 410포인트가 예약 차감되고 완료 시 확정, 실패·시간 초과 시 전액 환불됩니다.
|
|
1991
|
+
|
|
1992
|
+
기본 버전 기준: 초당 410포인트 × duration(초). 다른 버전은 개발가이드의 버전별 요금표 참고.
|
|
1993
|
+
|
|
1994
|
+
| Parameter | Type | Required | Description 설명 |
|
|
1995
|
+
| --- | --- | --- | --- |
|
|
1996
|
+
| `version` | `string` | 선택 / optional | 영상 모델 버전. 생략 시 3.0. 등급·해상도·길이·오디오·파일 제약과 요금은 선택 버전별 개발가이드 표를 확인하세요. `3.0`, `o3`, `o1`, `2.6`, `2.5`, `2.1`, `2.0`, `1.6` |
|
|
1997
|
+
| `prompt` | `string` | 필수 / required | 영상 생성 프롬프트, 최대 2,000자 |
|
|
1998
|
+
| `mode` | `string` | 선택 / optional | 입력 방식 — 'text'(텍스트만) \| 'image'(첫 프레임 이미지 지정) \| 'reference'(참조 이미지·영상으로 주체 지정). 기본 text `text`, `image`, `reference` |
|
|
1999
|
+
| `duration` | `integer` | 선택 / optional | 영상 길이(초), 전체 버전 범위 3~15. 허용 값과 기본값은 버전·등급별로 다릅니다. |
|
|
2000
|
+
| `aspect_ratio` | `string` | 선택 / optional | 출력 화면 비율. 선택 버전·등급·모드에서 허용하는 값만 사용하세요. `16:9`, `9:16`, `1:1` |
|
|
2001
|
+
| `resolution` | `string` | 선택 / optional | 출력 해상도. 전체 버전의 값 목록이며 허용 조합·기본값·요금은 버전별 개발가이드를 따릅니다. `720p`, `1080p`, `720P`, `1080P-SR`, `1440P-SR`, `1080P` |
|
|
2002
|
+
| `audio` | `boolean` | 선택 / optional | 오디오 생성 여부. 선택 가능한 버전은 기본 true, 무음 전용 버전은 false, 오디오 필수 버전은 true만 허용합니다. |
|
|
2003
|
+
| `tier` | `string` | 선택 / optional | 품질·속도 등급. 지원 등급과 생략 시 기본값은 version과 mode에 따라 다릅니다. `std`, `pro`, `turbo`, `4k`, `standard`, `master` |
|
|
2004
|
+
| `negative_prompt` | `string` | 선택 / optional | 제외할 요소를 설명하는 텍스트 |
|
|
2005
|
+
| `cfg_scale` | `number` | 선택 / optional | 프롬프트 반영 강도(0~1), 기본 0.5 |
|
|
2006
|
+
| `idempotency_key` | `string` | 선택 / optional | 같은 요청의 재전송으로 인한 중복 접수·과금을 막는 고유 키 |
|
|
2007
|
+
| `image_url` | `string (file)` | 선택 / optional | image 모드에서 사용할 첫 프레임 이미지 URL |
|
|
2008
|
+
| `last_image_url` | `string (file)` | 선택 / optional | image 모드에서 사용할 마지막 프레임 이미지 URL(선택) |
|
|
2009
|
+
| `reference_image_url` | `string (file)` | 선택 / optional | reference 모드에서 주체를 지정할 참조 이미지 URL |
|
|
2010
|
+
| `reference_image_url_2` | `string (file)` | 선택 / optional | reference 모드 참조 이미지 URL(2번째) |
|
|
2011
|
+
| `reference_image_url_3` | `string (file)` | 선택 / optional | reference 모드 참조 이미지 URL(3번째) |
|
|
2012
|
+
| `reference_image_url_4` | `string (file)` | 선택 / optional | 참조 이미지 URL(4번째). 버전별 최대 개수를 확인하세요. |
|
|
2013
|
+
| `reference_image_url_5` | `string (file)` | 선택 / optional | 참조 이미지 URL(5번째). 버전별 최대 개수를 확인하세요. |
|
|
2014
|
+
| `reference_image_url_6` | `string (file)` | 선택 / optional | 참조 이미지 URL(6번째). 버전별 최대 개수를 확인하세요. |
|
|
2015
|
+
| `reference_image_url_7` | `string (file)` | 선택 / optional | 참조 이미지 URL(7번째). 버전별 최대 개수를 확인하세요. |
|
|
2016
|
+
| `reference_video_url` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
2017
|
+
| `reference_video_url_2` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
2018
|
+
| `reference_video_url_3` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
2019
|
+
| `reference_video_url_4` | `string (file)` | 선택 / optional | 참조 영상 URL. 지원 버전과 개수 제한은 개발가이드를 확인하세요. |
|
|
2020
|
+
|
|
2021
|
+
```json
|
|
2022
|
+
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"kling_jobs_create","arguments":{"prompt":"A boat crossing the sea","version":"3.0"}}}
|
|
2023
|
+
```
|
|
2024
|
+
|
|
1968
2025
|
<a id="kling-jobs-status"></a>
|
|
1969
2026
|
|
|
1970
2027
|
### `kling_jobs_status` — Kling 영상 작업 상태
|
|
@@ -2015,3 +2072,21 @@ Video generation is billed per second of output (`duration × per-second points`
|
|
|
2015
2072
|
`tts_jobs_retry` takes `job_id`, `utterance_ids` (such as `["u002"]`), and `idempotency_key`. Reuse the same key and IDs after a lost response. Technical recovery does not add a charge. This tool changes job state (`readOnlyHint: false`).
|
|
2016
2073
|
|
|
2017
2074
|
`tts_jobs_quality`는 작업 ID로 발화 검수와 후보 이력을 조회합니다. `tts_jobs_candidate_audio`는 작업 ID·후보 ID로 WAV를 조회하며 최종 다운로드를 소비하지 않습니다. 후보는 종료 후 72시간 보존됩니다. `tts_jobs_retry`는 발화 ID 목록과 멱등 키로 같은 작업을 추가 과금 없이 재개합니다. 응답 단절 시 동일한 키와 목록을 재사용하세요.
|
|
2075
|
+
|
|
2076
|
+
## Video model versions
|
|
2077
|
+
|
|
2078
|
+
Omitting `version` preserves Seedance 2.5, Veo 3.1 and Kling 3.0. Set `version` and `tier` explicitly to select a generation; jobs are never silently switched to another version. Submission and status responses include `version`.
|
|
2079
|
+
|
|
2080
|
+
Available generations: Seedance 1.0/1.5/2.0/2.5, including Seedance 2.0 Standard/Fast/Mini; Veo 3.1 (Standard/Fast/Lite); Kling 1.6/2.0/2.1/2.5/2.6/3.0/O1/O3. Veo 3.0 is unavailable. Seedance 2.0 Mini supports 480p/720p and 4–15 seconds. Modes, tiers, resolutions, durations, audio, file limits and prices vary by combination. See the [Seedance](https://apick.app/dev_guide/seedancejobs), [Veo](https://apick.app/dev_guide/veojobs) and [Kling](https://apick.app/dev_guide/klingjobs) version tables. Unsupported combinations are rejected before submission.
|
|
2081
|
+
|
|
2082
|
+
## 영상 모델 버전 선택
|
|
2083
|
+
|
|
2084
|
+
`version`을 생략하면 Seedance 2.5, Veo 3.1, Kling 3.0을 사용합니다. 버전과 등급을 명시하면 해당 조합으로 생성하며 다른 모델로 자동 대체하지 않습니다. 생성과 상태 응답의 `version`으로 확인할 수 있습니다.
|
|
2085
|
+
|
|
2086
|
+
| 제품 | 제공 버전 | 제약과 요금 |
|
|
2087
|
+
|---|---|---|
|
|
2088
|
+
| Seedance | 2.5, 2.0(Standard·Fast·Mini), 1.5, 1.0 | [버전별 지원표](https://apick.app/dev_guide/seedancejobs) |
|
|
2089
|
+
| Veo | 3.1 (Standard, Fast, Lite) | [버전별 지원표](https://apick.app/dev_guide/veojobs) |
|
|
2090
|
+
| Kling | 3.0, O3, O1, 2.6, 2.5, 2.1, 2.0, 1.6 | [버전별 지원표](https://apick.app/dev_guide/klingjobs) |
|
|
2091
|
+
|
|
2092
|
+
등급·해상도·길이·오디오·파일 개수와 초당 포인트는 선택 조합별로 다릅니다. Seedance 2.0은 Standard·Fast·Mini를 제공하며 Mini는 480p·720p와 4~15초를 지원합니다. 무음 전용 모델은 `audio=false`, 오디오 필수 모델은 `audio=true`만 허용합니다. Veo 3.0은 현재 제공하지 않습니다. 지원하지 않는 조합은 접수 전에 거절됩니다.
|
package/package.json
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "apick-mcp",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "APICK MCP — 97 Korean data, AI, image & video tools for AI agents. 사업자조회·신분증·OCR·배송조회·이미지 생성·편집·영상 생성·파일변환·검색·LLM.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"author": "APICK",
|
|
8
|
-
"homepage": "https://apick.app/dev_guide/mcp",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/lead788/apick-mcp.git"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/lead788/apick-mcp/issues"
|
|
15
|
-
},
|
|
16
|
-
"mcpName": "app.apick/all",
|
|
17
|
-
"bin": {
|
|
18
|
-
"apick-mcp": "src/index.js"
|
|
19
|
-
},
|
|
20
|
-
"exports": {
|
|
21
|
-
".": "./src/bridge.js"
|
|
22
|
-
},
|
|
23
|
-
"files": [
|
|
24
|
-
"src",
|
|
25
|
-
"README.md",
|
|
26
|
-
"TOOLS.md",
|
|
27
|
-
"CHANGELOG.md",
|
|
28
|
-
"LICENSE"
|
|
29
|
-
],
|
|
30
|
-
"engines": {
|
|
31
|
-
"node": ">=18"
|
|
32
|
-
},
|
|
33
|
-
"scripts": {
|
|
34
|
-
"test": "node --test"
|
|
35
|
-
},
|
|
36
|
-
"keywords": [
|
|
37
|
-
"mcp",
|
|
38
|
-
"modelcontextprotocol",
|
|
39
|
-
"model-context-protocol",
|
|
40
|
-
"mcp-server",
|
|
41
|
-
"mcp-tools",
|
|
42
|
-
"claude",
|
|
43
|
-
"claude-code",
|
|
44
|
-
"claude-desktop",
|
|
45
|
-
"cursor",
|
|
46
|
-
"cline",
|
|
47
|
-
"windsurf",
|
|
48
|
-
"ai-agent",
|
|
49
|
-
"llm",
|
|
50
|
-
"apick",
|
|
51
|
-
"korea",
|
|
52
|
-
"korean",
|
|
53
|
-
"korea-api",
|
|
54
|
-
"business-registry",
|
|
55
|
-
"business-registration-number",
|
|
56
|
-
"identity-verification",
|
|
57
|
-
"kyc",
|
|
58
|
-
"kyb",
|
|
59
|
-
"id-card-verification",
|
|
60
|
-
"pii-masking",
|
|
61
|
-
"ocr",
|
|
62
|
-
"korean-ocr",
|
|
63
|
-
"parcel-tracking",
|
|
64
|
-
"delivery-tracking",
|
|
65
|
-
"shipment-tracking",
|
|
66
|
-
"bank-account-verification",
|
|
67
|
-
"account-holder-lookup",
|
|
68
|
-
"real-estate-price",
|
|
69
|
-
"address-search",
|
|
70
|
-
"holiday-api",
|
|
71
|
-
"whois",
|
|
72
|
-
"dns-lookup",
|
|
73
|
-
"ip-geolocation",
|
|
74
|
-
"web-scraping",
|
|
75
|
-
"screenshot-api",
|
|
76
|
-
"google-search",
|
|
77
|
-
"pdf-conversion",
|
|
78
|
-
"docx",
|
|
79
|
-
"excel",
|
|
80
|
-
"watermark",
|
|
81
|
-
"speech-to-text",
|
|
82
|
-
"face-detection",
|
|
83
|
-
"face-blur",
|
|
84
|
-
"nsfw-detection",
|
|
85
|
-
"image-similarity",
|
|
86
|
-
"image-generation",
|
|
87
|
-
"image-editing"
|
|
88
|
-
]
|
|
89
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "apick-mcp",
|
|
3
|
+
"version": "3.3.0",
|
|
4
|
+
"description": "APICK MCP — 97 Korean data, AI, image & video tools for AI agents. 사업자조회·신분증·OCR·배송조회·이미지 생성·편집·영상 생성·파일변환·검색·LLM.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "APICK",
|
|
8
|
+
"homepage": "https://apick.app/dev_guide/mcp",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/lead788/apick-mcp.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/lead788/apick-mcp/issues"
|
|
15
|
+
},
|
|
16
|
+
"mcpName": "app.apick/all",
|
|
17
|
+
"bin": {
|
|
18
|
+
"apick-mcp": "src/index.js"
|
|
19
|
+
},
|
|
20
|
+
"exports": {
|
|
21
|
+
".": "./src/bridge.js"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"src",
|
|
25
|
+
"README.md",
|
|
26
|
+
"TOOLS.md",
|
|
27
|
+
"CHANGELOG.md",
|
|
28
|
+
"LICENSE"
|
|
29
|
+
],
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=18"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"test": "node --test"
|
|
35
|
+
},
|
|
36
|
+
"keywords": [
|
|
37
|
+
"mcp",
|
|
38
|
+
"modelcontextprotocol",
|
|
39
|
+
"model-context-protocol",
|
|
40
|
+
"mcp-server",
|
|
41
|
+
"mcp-tools",
|
|
42
|
+
"claude",
|
|
43
|
+
"claude-code",
|
|
44
|
+
"claude-desktop",
|
|
45
|
+
"cursor",
|
|
46
|
+
"cline",
|
|
47
|
+
"windsurf",
|
|
48
|
+
"ai-agent",
|
|
49
|
+
"llm",
|
|
50
|
+
"apick",
|
|
51
|
+
"korea",
|
|
52
|
+
"korean",
|
|
53
|
+
"korea-api",
|
|
54
|
+
"business-registry",
|
|
55
|
+
"business-registration-number",
|
|
56
|
+
"identity-verification",
|
|
57
|
+
"kyc",
|
|
58
|
+
"kyb",
|
|
59
|
+
"id-card-verification",
|
|
60
|
+
"pii-masking",
|
|
61
|
+
"ocr",
|
|
62
|
+
"korean-ocr",
|
|
63
|
+
"parcel-tracking",
|
|
64
|
+
"delivery-tracking",
|
|
65
|
+
"shipment-tracking",
|
|
66
|
+
"bank-account-verification",
|
|
67
|
+
"account-holder-lookup",
|
|
68
|
+
"real-estate-price",
|
|
69
|
+
"address-search",
|
|
70
|
+
"holiday-api",
|
|
71
|
+
"whois",
|
|
72
|
+
"dns-lookup",
|
|
73
|
+
"ip-geolocation",
|
|
74
|
+
"web-scraping",
|
|
75
|
+
"screenshot-api",
|
|
76
|
+
"google-search",
|
|
77
|
+
"pdf-conversion",
|
|
78
|
+
"docx",
|
|
79
|
+
"excel",
|
|
80
|
+
"watermark",
|
|
81
|
+
"speech-to-text",
|
|
82
|
+
"face-detection",
|
|
83
|
+
"face-blur",
|
|
84
|
+
"nsfw-detection",
|
|
85
|
+
"image-similarity",
|
|
86
|
+
"image-generation",
|
|
87
|
+
"image-editing"
|
|
88
|
+
]
|
|
89
|
+
}
|
package/src/index.js
CHANGED
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// apick-mcp - run the APICK MCP server over stdio.
|
|
3
|
-
//
|
|
4
|
-
// Usage:
|
|
5
|
-
// apick-mcp [--server <name>]
|
|
6
|
-
//
|
|
7
|
-
// Environment:
|
|
8
|
-
// APICK_API_KEY APICK license key. Optional: tools/list works without one,
|
|
9
|
-
// tools/call needs it.
|
|
10
|
-
// APICK_MCP_SERVER Which server to expose (default: all).
|
|
11
|
-
// APICK_MCP_URL Base URL override (default: https://apick.app/mcp).
|
|
12
|
-
|
|
13
|
-
import { readFileSync } from 'node:fs';
|
|
14
|
-
import { fileURLToPath } from 'node:url';
|
|
15
|
-
import { createBridge, DEFAULT_ENDPOINT, SERVERS } from './bridge.js';
|
|
16
|
-
|
|
17
|
-
const HELP = `apick-mcp - APICK MCP server over stdio
|
|
18
|
-
|
|
19
|
-
apick-mcp [--server <name>]
|
|
20
|
-
|
|
21
|
-
Options
|
|
22
|
-
--server, -s <name> ${SERVERS.join(', ')} (default: all)
|
|
23
|
-
--version, -v print version
|
|
24
|
-
--help, -h print this message
|
|
25
|
-
|
|
26
|
-
Environment
|
|
27
|
-
APICK_API_KEY APICK license key (get one at https://apick.app)
|
|
28
|
-
APICK_MCP_SERVER same as --server
|
|
29
|
-
APICK_MCP_URL base URL override (default: ${DEFAULT_ENDPOINT})
|
|
30
|
-
|
|
31
|
-
Clients that support remote MCP can skip this bridge and connect straight to
|
|
32
|
-
${DEFAULT_ENDPOINT}/all with an Authorization: Bearer header.
|
|
33
|
-
Docs: https://apick.app/dev_guide/mcp
|
|
34
|
-
`;
|
|
35
|
-
|
|
36
|
-
function parseArgs(argv) {
|
|
37
|
-
const args = { server: process.env.APICK_MCP_SERVER || 'all' };
|
|
38
|
-
for (let i = 0; i < argv.length; i++) {
|
|
39
|
-
const arg = argv[i];
|
|
40
|
-
if (arg === '--help' || arg === '-h') args.help = true;
|
|
41
|
-
else if (arg === '--version' || arg === '-v') args.version = true;
|
|
42
|
-
else if (arg === '--server' || arg === '-s') args.server = argv[++i];
|
|
43
|
-
else if (arg.startsWith('--server=')) args.server = arg.slice('--server='.length);
|
|
44
|
-
else args.unknown = arg;
|
|
45
|
-
}
|
|
46
|
-
return args;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
async function main() {
|
|
50
|
-
const args = parseArgs(process.argv.slice(2));
|
|
51
|
-
|
|
52
|
-
if (args.help) {
|
|
53
|
-
process.stdout.write(HELP);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (args.version) {
|
|
57
|
-
const pkgPath = fileURLToPath(new URL('../package.json', import.meta.url));
|
|
58
|
-
process.stdout.write(JSON.parse(readFileSync(pkgPath, 'utf8')).version + '\n');
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
if (args.unknown) {
|
|
62
|
-
process.stderr.write('apick-mcp: unknown argument ' + args.unknown + '\n\n' + HELP);
|
|
63
|
-
process.exitCode = 2;
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (!SERVERS.includes(args.server)) {
|
|
67
|
-
process.stderr.write(
|
|
68
|
-
'apick-mcp: unknown server "' + args.server + '". Available: ' + SERVERS.join(', ') + '\n'
|
|
69
|
-
);
|
|
70
|
-
process.exitCode = 2;
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const bridge = createBridge({
|
|
75
|
-
server: args.server,
|
|
76
|
-
apiKey: process.env.APICK_API_KEY,
|
|
77
|
-
endpoint: process.env.APICK_MCP_URL
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
if (!process.env.APICK_API_KEY) {
|
|
81
|
-
process.stderr.write(
|
|
82
|
-
'apick-mcp: no APICK_API_KEY set - tool discovery works, tool calls will ask you to sign in at https://apick.app\n'
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
await bridge.attach(process.stdin);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
main().catch((err) => {
|
|
90
|
-
process.stderr.write('apick-mcp: ' + err.message + '\n');
|
|
91
|
-
process.exitCode = 1;
|
|
92
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// apick-mcp - run the APICK MCP server over stdio.
|
|
3
|
+
//
|
|
4
|
+
// Usage:
|
|
5
|
+
// apick-mcp [--server <name>]
|
|
6
|
+
//
|
|
7
|
+
// Environment:
|
|
8
|
+
// APICK_API_KEY APICK license key. Optional: tools/list works without one,
|
|
9
|
+
// tools/call needs it.
|
|
10
|
+
// APICK_MCP_SERVER Which server to expose (default: all).
|
|
11
|
+
// APICK_MCP_URL Base URL override (default: https://apick.app/mcp).
|
|
12
|
+
|
|
13
|
+
import { readFileSync } from 'node:fs';
|
|
14
|
+
import { fileURLToPath } from 'node:url';
|
|
15
|
+
import { createBridge, DEFAULT_ENDPOINT, SERVERS } from './bridge.js';
|
|
16
|
+
|
|
17
|
+
const HELP = `apick-mcp - APICK MCP server over stdio
|
|
18
|
+
|
|
19
|
+
apick-mcp [--server <name>]
|
|
20
|
+
|
|
21
|
+
Options
|
|
22
|
+
--server, -s <name> ${SERVERS.join(', ')} (default: all)
|
|
23
|
+
--version, -v print version
|
|
24
|
+
--help, -h print this message
|
|
25
|
+
|
|
26
|
+
Environment
|
|
27
|
+
APICK_API_KEY APICK license key (get one at https://apick.app)
|
|
28
|
+
APICK_MCP_SERVER same as --server
|
|
29
|
+
APICK_MCP_URL base URL override (default: ${DEFAULT_ENDPOINT})
|
|
30
|
+
|
|
31
|
+
Clients that support remote MCP can skip this bridge and connect straight to
|
|
32
|
+
${DEFAULT_ENDPOINT}/all with an Authorization: Bearer header.
|
|
33
|
+
Docs: https://apick.app/dev_guide/mcp
|
|
34
|
+
`;
|
|
35
|
+
|
|
36
|
+
function parseArgs(argv) {
|
|
37
|
+
const args = { server: process.env.APICK_MCP_SERVER || 'all' };
|
|
38
|
+
for (let i = 0; i < argv.length; i++) {
|
|
39
|
+
const arg = argv[i];
|
|
40
|
+
if (arg === '--help' || arg === '-h') args.help = true;
|
|
41
|
+
else if (arg === '--version' || arg === '-v') args.version = true;
|
|
42
|
+
else if (arg === '--server' || arg === '-s') args.server = argv[++i];
|
|
43
|
+
else if (arg.startsWith('--server=')) args.server = arg.slice('--server='.length);
|
|
44
|
+
else args.unknown = arg;
|
|
45
|
+
}
|
|
46
|
+
return args;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async function main() {
|
|
50
|
+
const args = parseArgs(process.argv.slice(2));
|
|
51
|
+
|
|
52
|
+
if (args.help) {
|
|
53
|
+
process.stdout.write(HELP);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (args.version) {
|
|
57
|
+
const pkgPath = fileURLToPath(new URL('../package.json', import.meta.url));
|
|
58
|
+
process.stdout.write(JSON.parse(readFileSync(pkgPath, 'utf8')).version + '\n');
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (args.unknown) {
|
|
62
|
+
process.stderr.write('apick-mcp: unknown argument ' + args.unknown + '\n\n' + HELP);
|
|
63
|
+
process.exitCode = 2;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!SERVERS.includes(args.server)) {
|
|
67
|
+
process.stderr.write(
|
|
68
|
+
'apick-mcp: unknown server "' + args.server + '". Available: ' + SERVERS.join(', ') + '\n'
|
|
69
|
+
);
|
|
70
|
+
process.exitCode = 2;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const bridge = createBridge({
|
|
75
|
+
server: args.server,
|
|
76
|
+
apiKey: process.env.APICK_API_KEY,
|
|
77
|
+
endpoint: process.env.APICK_MCP_URL
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
if (!process.env.APICK_API_KEY) {
|
|
81
|
+
process.stderr.write(
|
|
82
|
+
'apick-mcp: no APICK_API_KEY set - tool discovery works, tool calls will ask you to sign in at https://apick.app\n'
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
await bridge.attach(process.stdin);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
main().catch((err) => {
|
|
90
|
+
process.stderr.write('apick-mcp: ' + err.message + '\n');
|
|
91
|
+
process.exitCode = 1;
|
|
92
|
+
});
|