krx-cli 1.3.1 → 1.5.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/README.md CHANGED
@@ -8,6 +8,12 @@ Claude Code, GPT, Cursor 등의 AI 에이전트가 Bash tool을 통해 한국
8
8
 
9
9
  - **Agent-Native**: JSON 출력 기본, 시맨틱 exit code, 스키마 인트로스펙션
10
10
  - **전체 시장 커버리지**: 지수, 주식, ETF/ETN/ELW, 채권, 파생상품, 일반상품, ESG (31개 엔드포인트)
11
+ - **종목 검색**: 종목명으로 검색 후 코드 조회 (`krx stock search`)
12
+ - **시장 요약**: 한 번의 호출로 지수/상승·하락/Top movers 확인 (`krx market summary`)
13
+ - **워치리스트**: 관심 종목 저장 및 일괄 시세 조회 (`krx watchlist`)
14
+ - **기간 조회**: `--from/--to`로 여러 날짜 데이터 병렬 조회
15
+ - **데이터 파이프라인**: `--sort`, `--limit`, `--code` 로 서버 사이드 필터링
16
+ - **파일 캐싱**: 과거 데이터 자동 캐싱으로 rate limit 절약
11
17
  - **안전한 사용**: 입력 검증, rate limit 추적, dry-run 지원
12
18
  - **서비스 승인 관리**: API별 승인 상태 자동 확인
13
19
 
@@ -70,6 +76,53 @@ krx index list --date 20260310 --market kosdaq
70
76
  krx stock list --date 20260310 --market kospi
71
77
  krx stock list --date 20260310 --market kosdaq
72
78
  krx stock info --market kospi
79
+ krx stock search 삼성전자 # 종목 검색
80
+ ```
81
+
82
+ ### 시장 요약
83
+
84
+ ```bash
85
+ krx market summary # 최근 거래일 시장 요약
86
+ krx market summary --date 20260310 # 특정 날짜
87
+ ```
88
+
89
+ ### 기간 조회
90
+
91
+ ```bash
92
+ krx index list --market kospi --from 20260301 --to 20260310
93
+ krx stock list --market kospi --from 20260301 --to 20260305 --code KR7005930003
94
+ ```
95
+
96
+ ### 정렬 및 제한
97
+
98
+ ```bash
99
+ krx stock list --date 20260310 --market kospi --sort FLUC_RT --limit 10
100
+ krx stock list --date 20260310 --market kospi --sort ACC_TRDVAL --asc --limit 5
101
+ ```
102
+
103
+ ### 워치리스트
104
+
105
+ ```bash
106
+ krx watchlist add 삼성전자 # 종목 검색 후 워치리스트 추가
107
+ krx watchlist remove 삼성전자 # 정확한 이름으로 제거
108
+ krx watchlist remove KR7005930003 # 종목코드로 제거
109
+ krx watchlist list # 워치리스트 조회
110
+ krx watchlist show # 워치리스트 종목 시세 조회
111
+ krx watchlist show --date 20260310 # 특정 날짜 시세
112
+ ```
113
+
114
+ ### 캐시 관리
115
+
116
+ ```bash
117
+ krx cache status # 캐시 현황 조회
118
+ krx cache clear # 캐시 전체 삭제
119
+ ```
120
+
121
+ ### 버전 관리
122
+
123
+ ```bash
124
+ krx version # 현재 버전 확인 및 최신 버전 비교
125
+ krx update # 최신 버전으로 업데이트
73
126
  ```
74
127
 
75
128
  ### ETF/ETN/ELW 조회
@@ -91,6 +144,10 @@ krx bond list --date 20260310 --market general
91
144
  ```bash
92
145
  krx derivative list --date 20260310 --type futures
93
146
  krx derivative list --date 20260310 --type options
147
+ krx derivative list --date 20260310 --type futures-kospi
148
+ krx derivative list --date 20260310 --type futures-kosdaq
149
+ krx derivative list --date 20260310 --type options-kospi
150
+ krx derivative list --date 20260310 --type options-kosdaq
94
151
  ```
95
152
 
96
153
  ### 일반상품 조회
@@ -116,12 +173,22 @@ krx schema stock.stk_bydd_trd
116
173
 
117
174
  ## 글로벌 옵션
118
175
 
119
- | 옵션 | 설명 | 기본값 |
120
- | ----------------------- | ------------------------------ | ------------------------------ |
121
- | `-o, --output <format>` | 출력 형식: json, table, ndjson | json (파이프) / table (터미널) |
122
- | `-f, --fields <fields>` | 출력 필드 필터 (쉼표 구분) | 전체 |
123
- | `--dry-run` | API 호출 없이 요청 내용 출력 | - |
124
- | `-v, --verbose` | 상세 로그 (stderr) | - |
176
+ | 옵션 | 설명 | 기본값 |
177
+ | ----------------------- | ----------------------------------- | ------------------------------ |
178
+ | `-o, --output <format>` | 출력 형식: json, table, ndjson, csv | json (파이프) / table (터미널) |
179
+ | `-f, --fields <fields>` | 출력 필드 필터 (쉼표 구분) | 전체 |
180
+ | `--code <isuCd>` | 종목코드 필터 (ISU_CD) | - |
181
+ | `--sort <field>` | 결과 정렬 기준 필드 | - |
182
+ | `--asc` | 오름차순 정렬 (기본: 내림차순) | - |
183
+ | `--limit <n>` | 결과 개수 제한 | - |
184
+ | `--from <date>` | 기간 조회 시작일 (YYYYMMDD) | - |
185
+ | `--to <date>` | 기간 조회 종료일 (YYYYMMDD) | - |
186
+ | `--no-cache` | 캐시 무시하고 새로 조회 | - |
187
+ | `--filter <expression>` | 필터 표현식 (예: "FLUC_RT > 5") | - |
188
+ | `--save <path>` | 결과를 파일로 저장 | - |
189
+ | `--retries <n>` | 네트워크 에러 시 재시도 (기본: 3) | - |
190
+ | `--dry-run` | API 호출 없이 요청 내용 출력 | - |
191
+ | `-v, --verbose` | 상세 로그 (stderr) | - |
125
192
 
126
193
  ## Exit Codes
127
194
 
@@ -271,17 +338,30 @@ API 키는 `krx auth set <key>`로 등록한 것이 자동으로 사용됩니다
271
338
 
272
339
  ### 제공 Tool
273
340
 
274
- | Tool | 설명 |
275
- | ---------------- | ------------------------------------------ |
276
- | `krx_index` | 지수 일별시세 (KOSPI/KOSDAQ/KRX/채권/파생) |
277
- | `krx_stock` | 주식 일별매매정보 + 종목 기본정보 |
278
- | `krx_etp` | ETF/ETN/ELW 일별매매정보 |
279
- | `krx_bond` | 채권 일별매매정보 (국채/일반/소액) |
280
- | `krx_derivative` | 선물/옵션 일별매매정보 |
281
- | `krx_commodity` | 금/석유/배출권 일별매매정보 |
282
- | `krx_esg` | ESG 지수/채권/ETP 정보 |
283
- | `krx_schema` | 엔드포인트 응답 필드 스키마 조회 |
284
- | `krx_rate_limit` | 일일 API 호출 현황 조회 |
341
+ | Tool | 설명 |
342
+ | -------------------- | -------------------------------------------- |
343
+ | `krx_index` | 지수 일별시세 (KOSPI/KOSDAQ/KRX/채권/파생) |
344
+ | `krx_stock` | 주식 일별매매정보 + 종목 기본정보 |
345
+ | `krx_etp` | ETF/ETN/ELW 일별매매정보 |
346
+ | `krx_bond` | 채권 일별매매정보 (국채/일반/소액) |
347
+ | `krx_derivative` | 선물/옵션 일별매매정보 |
348
+ | `krx_commodity` | 금/석유/배출권 일별매매정보 |
349
+ | `krx_esg` | ESG 지수/채권/ETP 정보 |
350
+ | `krx_search` | 종목명 검색 (KOSPI + KOSDAQ) |
351
+ | `krx_market_summary` | 시장 요약 (지수/상승·하락/Top movers/거래량) |
352
+ | `krx_watchlist` | 관심종목 관리 (추가/제거/조회/시세) |
353
+ | `krx_schema` | 엔드포인트 응답 필드 스키마 조회 |
354
+ | `krx_rate_limit` | 일일 API 호출 현황 조회 |
355
+
356
+ ### 제공 Resource
357
+
358
+ MCP Resource로 읽기 전용 상태 데이터를 노출합니다.
359
+
360
+ | Resource | 설명 |
361
+ | ---------------------- | ---------------------------------- |
362
+ | `krx://watchlist` | 워치리스트 종목 목록 (JSON) |
363
+ | `krx://rate-limit` | 일일 API 호출 현황 (JSON) |
364
+ | `krx://service-status` | 카테고리별 서비스 승인 상태 (JSON) |
285
365
 
286
366
  ### 사용 예시
287
367
 
@@ -304,6 +384,7 @@ MCP 클라이언트에서 자연어로 요청하면 됩니다:
304
384
  pnpm install
305
385
  pnpm build
306
386
  pnpm test
387
+ pnpm test:e2e
307
388
  pnpm typecheck
308
389
  pnpm lint
309
390
  ```
package/SKILL.md CHANGED
@@ -7,7 +7,7 @@ install: npm install -g krx-cli
7
7
  binary: krx
8
8
  metadata:
9
9
  author: kyo504
10
- version: "1.3.1"
10
+ version: "1.5.0"
11
11
  invariants:
12
12
  - Always use YYYYMMDD format for --date (e.g., 20260310)
13
13
  - Data is T-1 (previous trading day), available from 2010 onwards
@@ -118,6 +118,47 @@ krx esg list --date 20260310 --type etp # ESG ETP
118
118
  krx esg list --date 20260310 --type sri-bond # SRI bonds
119
119
  ```
120
120
 
121
+ ### Stock Search (종목 검색)
122
+
123
+ ```bash
124
+ krx stock search 삼성전자 # Search by name (KOSPI + KOSDAQ)
125
+ krx stock search SK # Partial match
126
+ ```
127
+
128
+ ### Market Summary (시장 요약)
129
+
130
+ ```bash
131
+ krx market summary # Today's market overview
132
+ krx market summary --date 20260310 # Specific date
133
+ ```
134
+
135
+ Returns: KOSPI/KOSDAQ indices, top 5 gainers/losers, advancing/declining/unchanged counts, total volume/value.
136
+
137
+ ### Watchlist (관심종목)
138
+
139
+ ```bash
140
+ krx watchlist add 삼성전자 # Search and add to watchlist
141
+ krx watchlist remove 삼성전자 # Remove by exact name
142
+ krx watchlist remove KR7005930003 # Remove by ISU_CD
143
+ krx watchlist list # List all watchlist entries
144
+ krx watchlist show # Show prices for watchlist stocks
145
+ krx watchlist show --date 20260310 # Specific date
146
+ ```
147
+
148
+ ### Cache Management
149
+
150
+ ```bash
151
+ krx cache status # Show cache size, files, dates
152
+ krx cache clear # Clear all cached data
153
+ ```
154
+
155
+ ### Version & Update
156
+
157
+ ```bash
158
+ krx version # Show current version and check for updates
159
+ krx update # Update to the latest version (npm install -g krx-cli)
160
+ ```
161
+
121
162
  ### Schema (introspection)
122
163
 
123
164
  ```bash
@@ -128,9 +169,19 @@ krx schema index.kospi_dd_trd # Specific endpoint schema
128
169
  ## Global Flags
129
170
 
130
171
  ```
131
- --output, -o <format> json (default) | table | ndjson
172
+ --output, -o <format> json (default) | table | ndjson | csv
132
173
  --fields, -f <fields> Filter output fields: --fields ISU_NM,TDD_CLSPRC,FLUC_RT
174
+ --code <isuCd> Filter by stock code (ISU_CD)
175
+ --sort <field> Sort results by field name
176
+ --asc Sort ascending (default: descending)
177
+ --limit <n> Limit number of results
178
+ --from <date> Start date for range query (YYYYMMDD)
179
+ --to <date> End date for range query (YYYYMMDD)
180
+ --no-cache Bypass cache and fetch fresh data
181
+ --filter <expression> Filter results (e.g. "FLUC_RT > 5", "MKT_NM == KOSPI")
133
182
  --dry-run Show request details without calling API
183
+ --save <path> Save output to file instead of stdout
184
+ --retries <n> Max retries on network error (default: 3)
134
185
  --verbose, -v Verbose logging to stderr
135
186
  ```
136
187
 
@@ -154,10 +205,36 @@ krx schema index.kospi_dd_trd # Specific endpoint schema
154
205
  krx index list --date 20260310 --market kospi --fields IDX_NM,CLSPRC_IDX,FLUC_RT
155
206
  ```
156
207
 
157
- ### Get Samsung Electronics stock price
208
+ ### Get Samsung Electronics stock price (by search)
209
+
210
+ ```bash
211
+ krx stock search 삼성전자 # Find ISU_CD first
212
+ krx stock list --date 20260310 --market kospi --code KR7005930003
213
+ ```
214
+
215
+ ### Top 5 gainers
216
+
217
+ ```bash
218
+ krx stock list --date 20260310 --market kospi --sort FLUC_RT --limit 5 --fields ISU_NM,TDD_CLSPRC,FLUC_RT
219
+ ```
220
+
221
+ ### Date range query (multi-day)
222
+
223
+ ```bash
224
+ krx index list --market kospi --from 20260301 --to 20260310 --fields IDX_NM,BAS_DD,CLSPRC_IDX
225
+ ```
226
+
227
+ ### Quick market overview
228
+
229
+ ```bash
230
+ krx market summary --date 20260310
231
+ ```
232
+
233
+ ### Track and monitor stocks
158
234
 
159
235
  ```bash
160
- krx stock list --date 20260310 --market kospi --fields ISU_NM,TDD_CLSPRC,FLUC_RT | jq '.[] | select(.ISU_NM == "삼성전자")'
236
+ krx watchlist add 삼성전자 # Add to watchlist
237
+ krx watchlist show --date 20260310 # View prices for all watchlist stocks
161
238
  ```
162
239
 
163
240
  ### Check API availability before querying
@@ -294,3 +371,13 @@ krx schema index.kospi_dd_trd # Shows params + responseFields
294
371
  krx schema stock.stk_bydd_trd # Stock endpoint fields
295
372
  krx schema --all # All 31 endpoints
296
373
  ```
374
+
375
+ ## MCP Resources
376
+
377
+ Read-only state data exposed as MCP Resources (for MCP clients):
378
+
379
+ | Resource | Description |
380
+ | ---------------------- | ----------------------------------- |
381
+ | `krx://watchlist` | Watchlist entries (JSON) |
382
+ | `krx://rate-limit` | Daily API call status (JSON) |
383
+ | `krx://service-status` | Per-category approval status (JSON) |