MCP stdio server exposing every kiwoom-client REST endpoint as a tool for Kiwoom Securities REST API
Critical gaps across all 14 tools. All tools share identical, generic parameter schemas with no type information beyond 'object' and 'string'. The 'params' field is documented only as 'TR 요청 필드 (키움 API 가이드 참고)', a passthrough to external docs, not actionable for LLMs. Descriptions are present but minimal (20-80 chars), lacking WHEN to use each tool, prerequisites, or return value guidance. No output schemas documented. Tools 5-8 (order operations) have irreversible consequences but no confirmation/dry-run pattern. Tool 11 (condition_list) has empty input schema. No error handling guidance visible. Naming follows module_method pattern but lacks action verbs (e.g., 'account_account_evaluation' vs 'get_account_evaluation'). Parameter descriptions are Korean-only, limiting LLM comprehension. No pagination guidance despite tools accepting cont_yn/next_key. Security: live order tools gated by env var but no per-tool permission declarations.
계좌평가 (Account Evaluation) — query account evaluation status
주식일봉차트 (Stock Daily Chart) — query daily chart data
조건검색 목록조회 — 다른 condition_search 도구를 쓰기 전에 먼저 호출해 seq 값을 얻는다.
조건검색 요청 일반. seq: condition_list 로 얻은 조건검색식 일련번호.
조건검색 실시간 해제. 키움 프로토콜상 ack 프레임이 없어 전송만 하고 반환한다.
조건검색 요청 실시간. 최초 응답 프레임만 반환한다 — 이후 조건 편입/이탈에 따라 계속 도착하는 후속 프레임은 이 도구로 받을 수 없다.
주식호가 (Stock Quote) — query stock quote data
Generic passthrough parameter schema: all 14 tools accept 'params' object documented only as 'TR 요청 필드 (키움 API 가이드 참고)' with no type constraints, field names, or validation rules. LLMs cannot infer valid parameter structure.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., account_id, stock_code) for chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | <=2025-11-25 | v2 |
매수주문 (Buy Order) — place a buy order ⚠️ 실계좌 주문 도구입니다. 이 도구가 노출되어 있다면 opt-in 가드(KIWOOM_MCP_ALLOW_LIVE_ORDERS)가 설정된 상태이며, 호출 시 모의투자가 아닌 실계좌에서 실제로 체결되는 되돌릴 수 없는 주문입니다.
주문취소 (Cancel Order) — cancel an existing order ⚠️ 실계좌 주문 도구입니다. 이 도구가 노출되어 있다면 opt-in 가드(KIWOOM_MCP_ALLOW_LIVE_ORDERS)가 설정된 상태이며, 호출 시 모의투자가 아닌 실계좌에서 실제로 체결되는 되돌릴 수 없는 주문입니다.
주문정정 (Modify Order) — modify an existing order ⚠️ 실계좌 주문 도구입니다. 이 도구가 노출되어 있다면 opt-in 가드(KIWOOM_MCP_ALLOW_LIVE_ORDERS)가 설정된 상태이며, 호출 시 모의투자가 아닌 실계좌에서 실제로 체결되는 되돌릴 수 없는 주문입니다.
매도주문 (Sell Order) — place a sell order ⚠️ 실계좌 주문 도구입니다. 이 도구가 노출되어 있다면 opt-in 가드(KIWOOM_MCP_ALLOW_LIVE_ORDERS)가 설정된 상태이며, 호출 시 모의투자가 아닌 실계좌에서 실제로 체결되는 되돌릴 수 없는 주문입니다.
거래량상위 (Top Volume Today) — query top volume ranking
전업종지수 (All Industry Index) — query all sector indices
종목기본정보 (Basic Stock Information) — query basic stock information
Irreversible order tools (buy, sell, modify, cancel) lack confirmation/dry-run pattern. No guidance on recovery if agent makes a mistake. Description warns of live orders but provides no mitigation.
Tool names lack action verbs. 'account_account_evaluation' and 'stock_info_basic_stock_info' are module_method patterns, not verb_noun. LLMs cannot infer intent from names alone.
Parameter descriptions are Korean-only (e.g., '연속조회 여부', '연속조회 키'). English-speaking LLMs cannot parse intent. Descriptions under 20 chars for most tools.